语法
void PutElement( long* rgIndices, void* pvData );
参数
rgIndices
指向数组的每个维度的索引数组的指针。
pvData
指向要分配给数组的数据的指针。 VT_DISPATCH、VT_UNKNOWN 和 VT_BSTR 变量类型都是指针,并且不需要另一级间接寻址。
备注
在分配元素之前和之后,此函数将自动调用 Windows 函数 SafeArrayLock 和 SafeArrayUnlock。如果数据元素是字符串、对象或变量,则函数将正确复制它,而如果现有元素是字符串、对象或变量,则将正确清除它。
请注意,你可以在一个数组上拥有多个锁,以便在数组被其他操作锁定时可以将元素放入该数组。
出现错误时,该函数将引发 CMemoryException 或 COleException。
C++例子
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(); }
要求
标头:afxdisp.h