COleSafeArray::PutElement

更新 : 2007 年 11 月

配列に 1 つの要素を代入します。

void PutElement(
   long* rgIndices,
   void* pvData 
);

パラメータ

  • rgIndices
    配列の各次元のインデックスが格納された配列へのポインタ。

  • pvData
    配列に代入するデータへのポインタ。VT_DISPATCHVT_UNKNOWN、および VT_BSTR バリアント型はポインタなので、間接参照にする必要はありません。

解説

この関数は、要素代入の前後で Windows の関数 SafeArrayLockSafeArrayUnlock を自動的に呼び出します。データ要素が文字列、オブジェクト、またはバリアントの場合、関数は型に従ってコピーします。既存の要素が文字列、オブジェクト、またはバリアントの場合、既存の要素をクリアします。

配列には多重ロックをかけることができるので、ほかの操作によってロックされている配列にも、要素を代入できます。

エラーの場合、関数は 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

参照

参照

COleSafeArray クラス

階層図

COleSafeArray::GetElement

SafeArrayPutElement

その他の技術情報

COleSafeArray のメンバ