次の方法で共有


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

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

構文

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

パラメーター

[in] pBuffer

マーシャリングされた [out] 値を含むバッファーへのポインター。

[in] cbBuffer

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

[in] ibFirstRelease

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

[in] dataRep

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

[in] pcontext

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

戻り値

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

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

注釈

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

このメソッドは、マーシャリングされた [in] パラメーターと [out] パラメーターの両方で正しく機能します。

要件

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

こちらもご覧ください

ICallFrame