COleSafeArray::PutElement
更新 : 2007 年 11 月
配列に 1 つの要素を代入します。
void PutElement(
long* rgIndices,
void* pvData
);
パラメータ
rgIndices
配列の各次元のインデックスが格納された配列へのポインタ。pvData
配列に代入するデータへのポインタ。VT_DISPATCH、VT_UNKNOWN、および VT_BSTR バリアント型はポインタなので、間接参照にする必要はありません。
解説
この関数は、要素代入の前後で Windows の関数 SafeArrayLock と SafeArrayUnlock を自動的に呼び出します。データ要素が文字列、オブジェクト、またはバリアントの場合、関数は型に従ってコピーします。既存の要素が文字列、オブジェクト、またはバリアントの場合、既存の要素をクリアします。
配列には多重ロックをかけることができるので、ほかの操作によってロックされている配列にも、要素を代入できます。
エラーの場合、関数は CMemoryException または COleException をスローします。
使用例
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