Partilhar via


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

Consulte também

Referência

Classe de COleSafeArray

Gráfico de hierarquia

COleSafeArray::GetElement

SafeArrayPutElement