Share via


COleSafeArray::PutElement

Asigna un elemento de la matriz.

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

Parámetros

  • rgIndices
    Puntero a una matriz de índices para cada dimensión de la matriz.

  • pvData
    Puntero a los datos que se va a asignar a la matriz.VT_DISPATCH, VT_UNKNOWN, y los tipos variables de VT_BSTR son punteros y no requieren otro nivel de direccionamiento indirecto.

Comentarios

Esta función llama automáticamente a las funciones de Windows SafeArrayLock y SafeArrayUnlock antes y después de asignar el elemento.Si el elemento de datos es una cadena, un objeto, o un tipo Variant, la función copia correctamente, y si el elemento existente es una cadena, un objeto, o un tipo Variant, lo desactiva correctamente.

Observe que puede tener varios bloqueos en una matriz, por lo que puede colocar los elementos de una matriz mientras la matriz está bloqueado por otras operaciones.

Por error, la función produce CMemoryException o COleException.

Ejemplo

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

encabezado: afxdisp.h

Vea también

Referencia

Clase de COleSafeArray

Gráfico de jerarquía

COleSafeArray::GetElement

SafeArrayPutElement