次の方法で共有


SafeArrayDestroy 関数 (oleauto.h)

既存の配列記述子と配列内のすべてのデータを破棄します。 オブジェクトが配列に格納されている場合は、配列内の各オブジェクトに対して Release が呼び出されます。

構文

HRESULT SafeArrayDestroy(
  [in] SAFEARRAY *psa
);

パラメーター

[in] psa

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

戻り値

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

リターン コード 説明
S_OK
正常終了しました。
E_INVALIDARG
引数 psa が無効です。
DISP_E_ARRAYISLOCKED
配列がロックされています。

注釈

variant のセーフ配列には、各メンバーで VariantClear 関数が呼び出され、BSTR のセーフ配列には、各要素で SysFreeString 関数が呼び出されます。 IRecordInfo::RecordClear は、レコードの割り当てを解除せずに、オブジェクト参照とレコードの他の値を解放するために呼び出されます。

STDMETHODIMP_(ULONG) CEnumPoint::Release()
{
   if(--m_refs == 0){
      if(m_psa != NULL)
      SafeArrayDestroy(m_psa);
      delete this;
      return 0;
   }
   return m_refs;
}

要件

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