SafeArrayAllocDescriptor 関数 (oleauto.h)

安全な配列記述子のメモリを割り当てます。

構文

HRESULT SafeArrayAllocDescriptor(
  [in]  UINT      cDims,
  [out] SAFEARRAY **ppsaOut
);

パラメーター

[in] cDims

配列の次元の数。

[out] ppsaOut

安全な配列記述子。

戻り値

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

リターン コード 説明
S_OK
正常終了しました。
E_INVALIDARG
引数 psa が無効です。
E_UNEXPECTED
配列をロックできませんでした。

注釈

この関数を使用すると、 SafeArrayCreate によって提供されるデータ型以外のデータ型を持つ要素を含む安全な配列を作成できます。 SafeArrayAllocDescriptor を使用して配列記述子を作成した後、配列記述子に要素サイズを設定し、SafeArrayAllocData を呼び出して配列要素のメモリを割り当てます。

次の例では、 SafeArrayAllocDescriptor 関数と SafeArrayAllocData 関数を使用して安全な配列を作成します。

SAFEARRAY *psa;
unsigned int ndim =  2;
HRESULT hresult = SafeArrayAllocDescriptor( ndim, &psa );
if( FAILED( hresult ) )
   return ERR_OutOfMemory;
(psa)->rgsabound[ 0 ].lLbound = 0;
(psa)->rgsabound[ 0 ].cElements = 5;
(psa)->rgsabound[ 1 ].lLbound = 1;
(psa)->rgsabound[ 1 ].cElements = 4;
hresult = SafeArrayAllocData( psa );
if( FAILED( hresult ) ) {
   SafeArrayDestroyDescriptor( psa )
   return ERR_OutOfMemory;
}

要件

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

こちらもご覧ください

SafeArrayAllocData

SafeArrayDestroyData

SafeArrayDestroyDescriptor