COleSafeArray::CreateOneDim
Crea un nuovo oggetto unidimensionale COleSafeArray.
void CreateOneDim(
VARTYPE vtSrc,
DWORD dwElements,
const void* pvSrcData = NULL,
long nLBound = 0
);
Parametri
vtSrc
Il tipo di base della matrice (ovvero VARTYPE di ogni elemento della matrice).dwElements
Numero di elementi nella matrice.Ciò può essere modificata dopo la matrice viene creato con ResizeOneDim.pvSrcData
Puntatore ai dati da copiare nella matrice.nLBound
Il limite inferiore della matrice.
Note
La funzione alloca e inizializzare i dati della matrice, copianti i dati specificati se il puntatore pvSrcData non è NULL.
Sull'errore, la funzione genera CMemoryException.
Esempio
VARIANT varColInfo[3];
//initialize VARIANTs
for (int i = 0; i < 3; i++)
VariantInit(&varColInfo[i]);
// Column Name
varColInfo[0].vt = VT_BSTR;
varColInfo[0].bstrVal = ::SysAllocString(L"Name");
// Column Type
varColInfo[1].vt = VT_UI4;
varColInfo[1].lVal = 1;
COleSafeArray sa;
//create a 1 dimensional safearray of VARIANTs
//& initialize it with varColInfo VARIANT array
sa.CreateOneDim(VT_VARIANT, 2, varColInfo);
//check that the dimension is 2
ASSERT(sa.GetOneDimSize() == 2);
//increase safearray size by 1
sa.ResizeOneDim(3);
// populate the last element of the safearray, (Column Size)
varColInfo[2].vt = VT_I4;
varColInfo[2].lVal = 30;
long el = 2;
sa.PutElement(&el, &varColInfo[2]);
Requisiti
Header: afxdisp.h