SafeArrayPutElement 関数 (oleauto.h)

配列内の指定した位置にデータ要素を格納します。

構文

HRESULT SafeArrayPutElement(
  [in] SAFEARRAY *psa,
  [in] LONG      *rgIndices,
  [in] void      *pv
);

パラメーター

[in] psa

SafeArrayCreate によって作成された配列記述子。

[in] rgIndices

配列の各次元のインデックスのベクトル。 右端 (最下位) ディメンションは rgIndices[0] です。 左端のディメンションは に rgIndices[psa->cDims – 1]格納されます。

[in] pv

配列に割り当てるデータ。 バリアント型VT_DISPATCH、VT_UNKNOWN、およびVT_BSTRはポインターであり、別のレベルの間接参照は必要ありません。

戻り値

この関数は、これらの値のいずれかを返すことができます。

リターン コード 説明
S_OK
正常終了しました。
DISP_E_BADINDEX
指定したインデックスが無効です。
E_INVALIDARG
引数の 1 つが無効です。
E_OUTOFMEMORY
要素にメモリを割り当てませんでした。

注釈

この関数は、要素の割り当て前と割り当て後に SafeArrayLock と SafeArrayUnlock を自動的に呼び出します。 データ要素が文字列、オブジェクト、またはバリアントの場合、関数はセーフ配列が破棄されたときに正しくコピーします。 既存の要素が文字列、オブジェクト、またはバリアントの場合は、正しくクリアされます。 データ要素がVT_DISPATCHまたはVT_UNKNOWNの場合、 AddRef が呼び出され、オブジェクトの参照カウントがインクリメントされます。

メモ 配列には複数のロックを設定できます。 配列が他の操作によってロックされている間、配列に要素を配置できます。
 
SafeArrayPutElement の呼び出しを示す例については、COM Fundamentals Lines サンプル (CLines::Add in Lines.cpp) を参照してください。

要件

要件
対象プラットフォーム Windows
ヘッダー oleauto.h
Library OleAut32.lib
[DLL] OleAut32.dll