次の方法で共有


ICallUnmarshal::ReleaseMarshalData メソッド (callobj.h)

マーシャリングされたデータのパケットに存在するインターフェイス ポインターによって保持される可能性があるリソースを解放します。 このメソッドは、パケット内のすべてのインターフェイス ポインターを検索し、各インターフェイス ポインターで CoReleaseMarshalData 関数を呼び出します。

構文

HRESULT ReleaseMarshalData(
  [in] ULONG                    iMethod,
  [in] PVOID                    pBuffer,
  [in] ULONG                    cbBuffer,
  [in] ULONG                    ibFirstRelease,
  [in] RPCOLEDATAREP            dataRep,
  [in] CALLFRAME_MARSHALCONTEXT *pcontext
);

パラメーター

[in] iMethod

メソッド番号。

[in] pBuffer

マーシャリングされたパラメーターを含むバッファーへのポインター。

[in] cbBuffer

バッファーのサイズ (バイト単位)。

[in] ibFirstRelease

解放するバッファー内の最初のバイト。 0 の値は、バッファー全体のインターフェイス ポインターが解放されることを意味します。 示されたバイトの前にマーシャリングされたインターフェイス ポインターは、他のメカニズムによって既に解放されていると見なされるという考え方です。

[in] dataRep

データがマーシャリングされたデータ表現。

[in] pcontext

アンマーシャ リングを実行 するコンテキストに関する情報を含むCALLFRAME_MARSHALCONTEXT構造体へのポインター。

戻り値

このメソッドは、次の値を返すことができます。

リターン コード 説明
S_OK
メソッドは正常に完了しました。
E_UNEXPECTED
予期しないエラーが発生しました。

注釈

マーシャリングされたバッファーに保持されているリソースをクリーンするには、ReleaseMarshalData メソッドを呼び出す必要があります。 ただし、 MSHLFLAGS 列挙が normal に設定されている場合、これはマーシャリング解除時に自動的に行われます。

ReleaseMarshalData は、マーシャリングされたパラメーターと出力パラメーターの両方で使用できます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー callobj.h

こちらもご覧ください

ICallUnmarshal