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