Partilhar via


COleSafeArray::PutElement

Atribui um único elemento na matriz.

void PutElement(
   long* rgIndices,
   void* pvData 
);

Parâmetros

  • rgIndices
    Ponteiro para uma matriz de índices para cada dimensão da matriz.

  • pvData
    Ponteiro para os dados para atribuir à matriz.VT_DISPATCH, VT_UNKNOWN, and VT_BSTR tipos variantes são ponteiros e não exigem que outro nível de indireção.

Comentários

Esta função chama automaticamente o Windows funções SafeArrayLock e SafeArrayUnlock antes e depois atribuir o elemento. Se o elemento de dados é uma seqüência, objeto ou variante, a função copia corretamente e se o elemento existente é uma seqüência, objeto ou variante, ela será desmarcada corretamente.

Observe que você pode ter vários bloqueios em um array, para que você pode colocar elementos em uma matriz, enquanto o array está bloqueado por outras operações.

Em erro, a função lança um CMemoryException or 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 COleSafeArray

Gráfico de hierarquia

COleSafeArray::GetElement

SafeArrayPutElement

Outros recursos

COleSafeArray membros