COleSafeArray::CreateOneDim

void CreateOneDim( VARTYPE vtSrc, DWORD dwElements, const void* pvSrcData = NULL, long nLBound = 0 );

Parameters

vtSrc

The base type of the array (that is, the VARTYPE of each element of the array).

dwElements

Number of elements in the array. This can be changed after the array is created with ResizeOneDim.

pvSrcData

Pointer to the data to copy into the array.

nLBound

The lower bound of the array.

Remarks

Call this function to create a new one-dimensional COleSafeArray object. The function allocates and initializes the data for the array, copying the specified data if the pointer pvSrcData is not NULL.

On error, the function throws a CMemoryException.

Example

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;

COleSafeArray OverviewClass MembersHierarchy Chart

See Also   COleSafeArray::GetOneDimSize, COleSafeArray::ResizeOneDim, COleSafeArray::Create