次の方法で共有


COleSafeArray::PutElement

配列に一つの要素を割り当てます。

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

パラメーター

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

  • pvData
    配列に代入されるデータへのポインター。VT_DISPATCHVT_UNKNOWNVT_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