COleSafeArray::PutElement
Assegna un singolo elemento della matrice.
void PutElement(
long* rgIndices,
void* pvData
);
Parametri
rgIndices
Puntatore a matrice di indici per ogni dimensione della matrice.pvData
Puntatore ai dati da assegnare alla matrice. VT_DISPATCH, VT_UNKNOWNe i tipi di variant VT_BSTR sono puntatori e non richiedono un altro livello di riferimenti indiretti.
Note
Questa funzione viene chiamata automaticamente le funzioni Windows SafeArrayLock e SafeArrayUnlock prima e dopo l'assegnazione dell'elemento. Se un elemento è una stringa, un oggetto, o una variante, la funzione la copia correttamente e se l'elemento esistente è una stringa, un oggetto, o una variante, viene deselezionata correttamente.
Si noti che può essere più impostare una matrice, pertanto è possibile inserire elementi in una matrice quando la matrice viene bloccata da altre operazioni.
Sull'errore, la funzione genera CMemoryException o COleException.
Esempio
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();
}
Requisiti
Header: afxdisp.h