Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Uma classe para trabalhar com arrays de tipo e dimensão arbitrários.
Sintaxe
class COleSafeArray : public tagVARIANT
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| COleSafeArray::COleSafeArray | Constrói um COleSafeArray objeto. |
Métodos Públicos
| Nome | Description |
|---|---|
| COleSafeArray::AccessData | Recupera um ponteiro para os dados do array. |
| COleSafeArray::AllocData | Aloca memória para o array. |
| COleSafeArray::AllocDescriptor | Aloca memória para o descritor safe array. |
| COleSafeArray::Anexar | Dá controlo do array existente VARIANT ao COleSafeArray objeto. |
| ColeSafeArray::Limpar | Liberta todos os dados no subjacente VARIANT. |
| COleSafeArray::Copiado | Cria uma cópia de um array existente. |
| COleSafeArray::Create | Cria um array seguro. |
| COleSafeArray::CreateOneDim | Cria um objeto unidimensional COleSafeArray . |
| COleSafeArray::D estroy | Destrói um array existente. |
| COleSafeArray::D estroyData | Destrói dados num array seguro. |
| COleSafeArray::D estroyDescriptor | Destrói um termo de matriz segura. |
| COleSafeArray::D etach | Desanexa o array VARIANT do COleSafeArray objeto (para que os dados não sejam libertados). |
| COleSafeArray::GetByteArray | Copia o conteúdo do array seguro para um CByteArray. |
| COleSafeArray::GetDim | Devolve o número de dimensões na matriz. |
| COleSafeArray::GetElement | Recupera um único elemento do array seguro. |
| COleSafeArray::GetElemSize | Devolve o tamanho, em bytes, de um elemento num array seguro. |
| COleSafeArray::GetLBound | Devolve o limite inferior para qualquer dimensão de um array seguro. |
| COleSafeArray::GetOneDimSize | Devolve o número de elementos no objeto unidimensional COleSafeArray . |
| COleSafeArray::GetUBound | Devolve o limite superior para qualquer dimensão de um array seguro. |
| ColeSafeArray::Trancar | Incrementa a contagem de bloqueios de um array e coloca um ponteiro para os dados do array no descritor do array. |
| COleSafeArray::P trOfIndex | Devolve um ponteiro para o elemento indexado. |
| COleSafeArray::P utElement | Atribui um único elemento ao array. |
| COleSafeArray::Redim | Altera o limite menos significativo (mais à direita) de um array seguro. |
| COleSafeArray::ResizeOneDim | Altera o número de elementos num objeto unidimensional COleSafeArray . |
| COleSafeArray::UnaccessData | Diminui a contagem de bloqueios de um array e invalida o ponteiro recuperado por AccessData. |
| COleSafeArray::Desbloquear | Diminui o número de bloqueios de um array para que possa ser libertado ou redimensionado. |
Operadores Públicos
| Nome | Description |
|---|---|
| COleSafeArray::operator LPCVARIANT | Acede à estrutura subjacente VARIANT do COleSafeArray objeto. |
| COleSafeArray::operator LPVARIANT | Acede à estrutura subjacente VARIANT do COleSafeArray objeto. |
| COleSafeArray::operator = | Copia valores para um COleSafeArray objeto (SAFEARRAY, VARIANT, COleVariant, ou COleSafeArray array). |
| COleSafeArray::operator == | Compara dois arrays variantes (SAFEARRAY, VARIANT, COleVariant, ou COleSafeArray arrays). |
COleSafeArray::operator << |
Exporta o conteúdo de um COleSafeArray objeto para o contexto de dump. |
Observações
COleSafeArray deriva da estrutura OLE VARIANT . As funções membros OLE SAFEARRAY estão disponíveis através COleSafeArrayde , bem como um conjunto de funções membros especificamente concebidas para arrays unidimensionais de bytes.
Hierarquia de herança
tagVARIANT
COleSafeArray
Requerimentos
Cabeçalho: afxdisp.h
COleSafeArray::AccessData
Recupera um ponteiro para os dados do array.
void AccessData(void** ppvData);
Parâmetros
ppvData
Um ponteiro para um ponteiro para os dados do array.
Observações
Em caso de erro, a função lança uma CMemoryException ou COleException.
Example
void CMainFrame::Sort(VARIANT* vArray)
{
COleSafeArray sa;
BSTR* pbstr;
TCHAR buf[1024];
LONG cElements, lLBound, lUBound;
//needed for OLE2T macro below, include afxpriv.h
USES_CONVERSION;
// Type check VARIANT parameter. It should contain a BSTR array
// passed by reference. The array must be passed by reference it is
// an in-out-parameter.
if (V_VT(vArray) != (VT_ARRAY | VT_BSTR))
{
AfxThrowOleDispatchException(1001,
_T("Type Mismatch in Parameter. Pass a string array by reference"));
}
// clears data in sa and copies the variant data into sa
sa.Attach(*vArray);
// Check that array is 1 dimensional
if (sa.GetDim() != 1)
{
AfxThrowOleDispatchException(1002,
_T("Type Mismatch in Parameter. Pass a one-dimensional array"));
}
try
{
// Get array bounds.
sa.GetLBound(1, &lLBound);
sa.GetUBound(1, &lUBound);
// Get a pointer to the elements of the array
// and increments the lock count on the array
sa.AccessData((LPVOID*)& pbstr);
//get no. of elements in array
cElements = lUBound - lLBound + 1;
for (int i = 0; i < cElements; i++)
{
//output the elements of the array
_stprintf_s(buf, 1024, _T("[%s]\n"), OLE2T(pbstr[i]));
OutputDebugString(buf);
}
//decrement lock count
sa.UnaccessData();
}
catch (COleException* pEx)
{
AfxThrowOleDispatchException(1003,
_T("Unexpected Failure in FastSort method"));
pEx->Delete();
}
}
COleSafeArray::AllocData
Aloca memória para um array seguro.
void AllocData();
Observações
Em caso de erro, a função lança uma CMemoryException ou COleException.
COleSafeArray::AllocDescriptor
Aloca memória para o descritor de um array seguro.
void AllocDescriptor(DWORD dwDims);
Parâmetros
dwDims
Número de dimensões na matriz segura.
Observações
Em caso de erro, a função lança uma CMemoryException ou COleException.
COleSafeArray::Anexar
Dá controlo dos dados num array existente VARIANT ao COleSafeArray objeto.
void Attach(VARIANT& varSrc);
Parâmetros
varSrc
Um objeto VARIANT. O parâmetro varSrc deve ter o VT_ARRAY VARTYPE.
Observações
O tipo da fonte VARIANTestá definido para VT_EMPTY. Esta função limpa os dados atuais do array, se existirem.
Example
Veja o exemplo de COleSafeArray::AccessData.
ColeSafeArray::Limpar
Limpa a matriz segura.
void Clear();
Observações
A função limpa um array seguro ao definir o VARTYPE do objeto para VT_EMPTY. O conteúdo atual é libertado e o array é libertado.
COleSafeArray::COleSafeArray
Constrói um COleSafeArray objeto.
COleSafeArray();
COleSafeArray(
const SAFEARRAY& saSrc,
VARTYPE vtSrc);
COleSafeArray(
LPCSAFEARRAY pSrc,
VARTYPE vtSrc);
COleSafeArray(const COleSafeArray& saSrc);
COleSafeArray(const VARIANT& varSrc);
COleSafeArray(LPCVARIANT pSrc);
COleSafeArray(const COleVariant& varSrc);
Parâmetros
saSrc
Um objeto existente COleSafeArray ou SAFEARRAY a ser copiado para o novo COleSafeArray objeto.
vtSrc
O VARTYPE do novo COleSafeArray objeto.
psaSrc
Um apontador para um SAFEARRAY a ser copiado para o novo COleSafeArray objeto.
varSrc
Um existente VARIANT ou COleVariant objeto a ser copiado para o novo COleSafeArray objeto.
pSrc
Um apontador para um VARIANT objeto a ser copiado para o novo COleSafeArray objeto.
Observações
Todos estes construtores criam novos COleSafeArray objetos. Se não houver parâmetro, é criado um objeto vazio COleSafeArray (VT_EMPTY). Se o COleSafeArray for copiado de outro array cujo VARTYPE é conhecido implicitamente (a COleSafeArray, COleVariant, ou VARIANT), o VARTYPE do array de origem é mantido e não precisa de ser especificado. Se o COleSafeArray for copiado de outro array cujo VARTYPE não é conhecido (SAFEARRAY), o VARTYPE deve ser especificado no parâmetro vtSrc .
Em caso de erro, a função lança uma CMemoryException ou COleException.
COleSafeArray::Copiado
Cria uma cópia de um array seguro existente.
void Copy(LPSAFEARRAY* ppsa);
Parâmetros
PPSA
Apontar para um local onde deves devolver o novo descritor do array.
Observações
Em caso de erro, a função lança uma CMemoryException ou COleException.
COleSafeArray::Create
Aloca e inicializa os dados para o array.
void Create(
VARTYPE vtSrc,
DWORD dwDims,
DWORD* rgElements);
void Create(
VARTYPE vtSrc,
DWORD dwDims,
SAFEARRAYBOUND* rgsabounds);
Parâmetros
vtSrc
O tipo base do array (isto é, o VARTYPE de cada elemento do array). O VARTYPE é restrito a um subconjunto dos tipos variantes. Nem a bandeira VT_ARRAY nem a VT_BYREF podem ser definidas. VT_EMPTY e VT_NULL não são tipos base válidos para o array. Todos os outros tipos são legais.
dwDims
Número de dimensões na matriz. Isto pode ser alterado depois de o array ser criado com o Redim.
rgElements
Apontar para um array do número de elementos para cada dimensão no array.
rgsabounds
Apontar para um vetor de limites (um para cada dimensão) para alocar para o array.
Observações
Esta função irá limpar os dados atuais do array, se necessário. Em caso de erro, a função lança uma CMemoryException.
Example
COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };
// creates a 2 dimensional safearray of type VT_I2
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);
ASSERT(saMatrix.GetDim() == 2);
COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 2} };
// creates a 1 dimensional safearray of type VT_I1
// with size 5 elements, with the index starting at 2
saVector.Create(VT_I1, 1, rgsabounds);
ASSERT(saVector.GetDim() == 1);
COleSafeArray::CreateOneDim
Cria um novo objeto unidimensional COleSafeArray .
void CreateOneDim(
VARTYPE vtSrc,
DWORD dwElements,
const void* pvSrcData = NULL,
long nLBound = 0);
Parâmetros
vtSrc
O tipo base do array (isto é, o VARTYPE de cada elemento do array).
dwElements
Número de elementos no array. Isto pode ser alterado depois de o array ser criado com o ResizeOneDim.
pvSrcData
Aponta para os dados para copiar para o array.
nLBound
O limite inferior da matriz.
Observações
A função aloca e inicializa os dados do array, copiando os dados especificados se o ponteiro pvSrcData não for NULL.
Em caso de erro, a função lança uma CMemoryException.
Example
VARIANT varColInfo[3];
//initialize VARIANTs
for (int i = 0; i < 3; i++)
VariantInit(&varColInfo[i]);
// Column Name
varColInfo[0].vt = VT_BSTR;
varColInfo[0].bstrVal = ::SysAllocString(L"Name");
// Column Type
varColInfo[1].vt = VT_UI4;
varColInfo[1].lVal = 1;
COleSafeArray sa;
//create a 1 dimensional safearray of VARIANTs
//& initialize it with varColInfo VARIANT array
sa.CreateOneDim(VT_VARIANT, 2, varColInfo);
//check that the dimension is 2
ASSERT(sa.GetOneDimSize() == 2);
//increase safearray size by 1
sa.ResizeOneDim(3);
// populate the last element of the safearray, (Column Size)
varColInfo[2].vt = VT_I4;
varColInfo[2].lVal = 30;
long el = 2;
sa.PutElement(&el, &varColInfo[2]);
COleSafeArray::D estroy
Destrói um descritor de array existente e todos os dados do array.
void Destroy();
Observações
Se os objetos estiverem armazenados no array, cada objeto é libertado. Em caso de erro, a função lança uma CMemoryException ou COleException.
COleSafeArray::D estroyData
Destrói todos os dados num array seguro.
void DestroyData();
Observações
Se os objetos estiverem armazenados no array, cada objeto é libertado. Em caso de erro, a função lança uma CMemoryException ou COleException.
COleSafeArray::D estroyDescriptor
Destrói um termo de matriz segura.
void DestroyDescriptor();
Observações
Em caso de erro, a função lança uma CMemoryException ou COleException.
COleSafeArray::D etach
Desliga os VARIANT dados do COleSafeArray objeto.
VARIANT Detach();
Valor de retorno
O valor subjacente VARIANT no COleSafeArray objeto.
Observações
A função desanexa os dados num array seguro definindo o VARTYPE do objeto para VT_EMPTY. É responsabilidade do chamador libertar o array chamando a função do Windows como VariantClear.
Em caso de erro, a função lança uma COleException.
Example
Veja o exemplo de COleSafeArray::P utElement.
COleSafeArray::GetByteArray
Copia o conteúdo do array seguro para um CByteArrayarquivo .
void GetByteArray(CByteArray& bytes);
Parâmetros
bytes
Uma referência a um objeto CByteArray .
COleSafeArray::GetDim
Devolve o número de dimensões no COleSafeArray objeto.
DWORD GetDim();
Valor de retorno
O número de dimensões na matriz segura.
Example
COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };
// creates a 2 dimensional safearray of type VT_I2
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);
ASSERT(saMatrix.GetDim() == 2);
COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 2} };
// creates a 1 dimensional safearray of type VT_I1
// with size 5 elements, with the index starting at 2
saVector.Create(VT_I1, 1, rgsabounds);
ASSERT(saVector.GetDim() == 1);
COleSafeArray::GetElement
Recupera um único elemento do array seguro.
void GetElement(
long* rgIndices,
void* pvData);
Parâmetros
rgÍndices
Apontar para um array de índices para cada dimensão do array.
pvData
Aponta para o local onde se coloca o elemento do array.
Observações
Esta função chama automaticamente as funções SafeArrayLock do Windows e SafeArrayUnlock antes e depois de recuperar o elemento. Se o elemento de dados for uma cadeia, objeto ou variante, a função copia o elemento da forma correta. O parâmetro pvData deve apontar para um buffer suficientemente grande para conter o elemento.
Em caso de erro, a função lança uma CMemoryException ou COleException.
Example
//sa is of type COleSafeArray with 2 dimensions
//Determine upper bounds for both dimensions
long lNumRows;
long lNumCols;
sa.GetUBound(1, &lNumRows);
sa.GetUBound(2, &lNumCols);
//Display the elements in the SAFEARRAY.
long index[2];
VARIANT val;
//Determine lower bounds for both dimensions
long lowRow, lowCol;
sa.GetLBound(1, &lowRow);
sa.GetLBound(2, &lowCol);
for (long r = lowRow; r <= lNumRows; r++)
{
for (long c = lowCol; c <= lNumCols; c++)
{
index[0] = r;
index[1] = c;
//retrieve each element of the safearray
sa.GetElement(index, &val);
switch (val.vt)
{
case VT_R8:
TRACE(_T("%1.2f\n"), val.dblVal);
break;
case VT_BSTR:
TRACE(_T("%s\n"), (CString)val.bstrVal);
break;
// other cases omitted
case VT_EMPTY:
TRACE(_T("<empty>\n"));
break;
}
}
}
COleSafeArray::GetElemSize
Recupera o tamanho de um elemento num COleSafeArray objeto.
DWORD GetElemSize();
Valor de retorno
O tamanho, em bytes, dos elementos de um array seguro.
COleSafeArray::GetLBound
Devolve o limite inferior para qualquer dimensão de um COleSafeArray objeto.
void GetLBound(
DWORD dwDim,
long* pLBound);
Parâmetros
dwDim
A dimensão do array para a qual se obtém o limite inferior.
pLBound
Aponta para a localização para devolver o limite inferior.
Observações
Em caso de erro, a função lança uma COleException.
Example
COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };
// creates a 2 dimensional safearray of type VT_I2
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);
long lLBound;
//get lower bound for 1st dimension
saMatrix.GetLBound(1, &lLBound);
ASSERT(lLBound == 0);
//get lower for 2nd dimension
saMatrix.GetLBound(2, &lLBound);
ASSERT(lLBound == 0);
COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 1} };
// creates a 1 dimensional safearray of type VT_I1
// with size 5 elements, with the index starting at 1
saVector.Create(VT_I1, 1, rgsabounds);
//get lower bound for 1st dimension
saVector.GetLBound(1, &lLBound);
ASSERT(lLBound == 1);
COleSafeArray::GetOneDimSize
Devolve o número de elementos no objeto unidimensional COleSafeArray .
DWORD GetOneDimSize();
Valor de retorno
O número de elementos na matriz segura unidimensional.
Example
Veja o exemplo de COleSafeArray::CreateOneDim.
COleSafeArray::GetUBound
Devolve o limite superior para qualquer dimensão de um array seguro.
void GetUBound(
DWORD dwDim,
long* pUBound);
Parâmetros
dwDim
A dimensão do array para a qual se obtém o limite superior.
pUBound
Aponta para a localização para devolver o limite superior.
Observações
Em caso de erro, a função lança uma COleException.
Example
COleSafeArray saMatrix;
DWORD numElements[] = { 10, 5 };
// creates a 2 dimensional safearray of type VT_I2
// with size 10x5 elements, with all indices starting at 0(default)
saMatrix.Create(VT_I2, 2, numElements);
long lUBound;
ASSERT(saMatrix.GetDim() == 2);
//get upper bound for 1st dimension
saMatrix.GetUBound(1, &lUBound);
ASSERT(lUBound == 9);
//get upper bound for 2nd dimension
saMatrix.GetUBound(2, &lUBound);
ASSERT(lUBound == 4);
COleSafeArray saVector;
SAFEARRAYBOUND rgsabounds[] = { {5, 1} };
// creates a 1 dimensional safearray of type VT_I1
// with size 5 elements, with the index starting at 1
saVector.Create(VT_I1, 1, rgsabounds);
//get upper bound for 1st dimension
saVector.GetUBound(1, &lUBound);
ASSERT(lUBound == 5);
ColeSafeArray::Trancar
Incrementa a contagem de bloqueios de um array e coloca um ponteiro para os dados do array no descritor do array.
void Lock();
Observações
Em caso de erro, gera uma ColeException.
O ponteiro no descritor do array é válido até Unlock ser chamado. Chamadas para Lock podem ser aninhadas; é necessário um número igual de chamadas para Unlock .
Um array não pode ser eliminado enquanto está bloqueado.
COleSafeArray::operator LPCVARIANT
Chame este operador de casting para aceder à estrutura subjacente VARIANT deste COleSafeArray objeto.
operator LPCVARIANT() const;
COleSafeArray::operator LPVARIANT
Chame este operador de casting para aceder à estrutura subjacente VARIANT deste COleSafeArray objeto.
operator LPVARIANT();
Observações
Note que alterar o valor na VARIANT estrutura acedido pelo ponteiro devolvido por esta função alterará o valor deste COleSafeArray objeto.
COleSafeArray::operator =
Estes operadores de atribuição sobrecarregados copiam o valor fonte para este COleSafeArray objeto.
COleSafeArray& operator=(const COleSafeArray& saSrc);
COleSafeArray& operator=(const VARIANT& varSrc);
COleSafeArray& operator=(LPCVARIANT pSrc);
COleSafeArray& operator=(const COleVariant& varSrc);
Observações
Segue-se uma breve descrição de cada operador:
operador =(saSrc) Copia um objeto existente
COleSafeArraypara esse objeto.operador =(varSrc) Copia um array existente
VARIANTCOleVariantpara este objeto.operador =(pSrc) Copia o
VARIANTobjeto array acedido por pSrc para este objeto.
COleSafeArray::operator ==
Este operador compara dois arrays (SAFEARRAY, VARIANT, COleVariant, ou COleSafeArray arrays) e retorna não nulo se forem iguais; caso contrário, 0.
BOOL operator==(const SAFEARRAY& saSrc) const;
BOOL operator==(LPCSAFEARRAY pSrc) const;
BOOL operator==(const COleSafeArray& saSrc) const;
BOOL operator==(const VARIANT& varSrc) const;
BOOL operator==(LPCVARIANT pSrc) const;
BOOL operator==(const COleVariant& varSrc) const;
Observações
Dois arrays são iguais se tiverem um número igual de dimensões, tamanho igual em cada dimensão e valores iguais dos elementos.
COleSafeArray::operator <<
O COleSafeArray operador de inserção (<<) suporta o despejo diagnóstico e o armazenamento de um COleSafeArray objeto num arquivo.
CDumpContext& AFXAPI operator<<(
CDumpContext& dc,
COleSafeArray& saSrc);
COleSafeArray::P trOfIndex
Devolve um ponteiro para o elemento especificado pelos valores do índice.
void PtrOfIndex(
long* rgIndices,
void** ppvData);
Parâmetros
rgÍndices
Um array de valores de índice que identifica um elemento do array. Todos os índices para o elemento devem ser especificados.
ppvData
Ao retornar, aponta para o elemento identificado pelos valores em rgIndices.
COleSafeArray::P utElement
Atribui um único elemento ao array.
void PutElement(
long* rgIndices,
void* pvData);
Parâmetros
rgÍndices
Apontar para um array de índices para cada dimensão do array.
pvData
Aponta para os dados a atribuir ao array. VT_DISPATCH, VT_UNKNOWN e VT_BSTR tipos variantes são ponteiros e não requerem outro nível de indireção.
Observações
Esta função chama automaticamente as funções do Windows SafeArrayLock e SafeArrayUnlock antes e depois de atribuir o elemento. Se o elemento de dados for uma cadeia, objeto ou variante, a função copia-o corretamente, e se o elemento existente for uma cadeia, objeto ou variante, é limpo corretamente.
Note que pode ter múltiplos bloqueios num array, por isso pode colocar elementos num array enquanto o array está bloqueado por outras operações.
Em caso de erro, a função lança uma CMemoryException ou COleException.
Example
VARIANT retVariantArray()
{
COleSafeArray saRet;
DWORD numElements[] = { 10, 10 }; // 10x10
// Create the 2 dimensional safe-array of type VT_R8 with size 10x10
saRet.Create(VT_R8, 2, numElements);
// Initialize safearray with values...
long index[2];
for (index[0] = 0; index[0] < 10; index[0]++)
{
for (index[1] = 0; index[1] < 10; index[1]++)
{
double val = index[0] + index[1] * 10;
//populate the safearray elements with double values
saRet.PutElement(index, &val);
}
}
// Return the safe-array encapsulated in a VARIANT...
return saRet.Detach();
}
COleSafeArray::Redim
Altera o limite menos significativo (mais à direita) de um array seguro.
void Redim(SAFEARRAYBOUND* psaboundNew);
Parâmetros
psaboundNew
Apontar para uma nova estrutura segura de limites de array contendo o novo limite de array. Apenas a dimensão menos significativa de um array pode ser alterada.
Observações
Em caso de erro, a função lança uma COleException.
COleSafeArray::ResizeOneDim
Altera o número de elementos num objeto unidimensional COleSafeArray .
void ResizeOneDim(DWORD dwElements);
Parâmetros
dwElements
Número de elementos na matriz segura unidimensional.
Observações
Em caso de erro, a função lança uma COleException.
Example
Veja o exemplo de COleSafeArray::CreateOneDim.
COleSafeArray::UnaccessData
Diminui a contagem de bloqueios de um array e invalida o ponteiro recuperado por AccessData.
void UnaccessData();
Observações
Em caso de erro, a função lança uma COleException.
Example
Veja o exemplo de COleSafeArray::AccessData.
COleSafeArray::Desbloquear
Diminui o número de bloqueios de um array para que possa ser libertado ou redimensionado.
void Unlock();
Observações
Esta função é chamada após o acesso aos dados de um array estar concluído. Em caso de erro, gera uma ColeException.
Consulte também
Gráfico de Hierarquia
Classe COleVariant
Classe CRecordset
Classe CDatabase