COleSafeArray::PutElement
Atribui um único elemento na matriz.
void PutElement(
long* rgIndices,
void* pvData
);
Parâmetros
rgIndices
Ponteiro para um array de índices para cada dimensão da matriz.pvData
Ponteiro para os dados para atribuir a matriz.VT_DISPATCH, VT_UNKNOWN, e os tipos de VT_BSTR variantes são ponteiros e não exigem outro nível de indirection.
Comentários
Essa função automaticamente chama funções do windows SafeArrayLock e SafeArrayUnlock antes e depois de atribuir o elemento.Se o elemento de dados é uma cadeia de caracteres, um objeto, ou uma variante, a função ao corretamente, e se o elemento existente é uma cadeia de caracteres, um objeto, ou uma variante, está desmarcada corretamente.
Observe que você pode ter vários bloqueios em uma matriz, então você pode colocar os elementos em uma matriz quando a matriz é bloqueada por outras operações.
Em erro, a função gera CMemoryException ou COleException.
Exemplo
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();
}
Requisitos
Cabeçalho: afxdisp.h