次の方法で共有


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

この既存のアクティブ化レコードへの呼び出しの以前にマーシャリングされた [out] パラメーターを含むデータのパケットをアンマーシャリングします。

構文

HRESULT Unmarshal(
  [in]  PVOID                    pBuffer,
  [in]  ULONG                    cbBuffer,
  [in]  RPCOLEDATAREP            dataRep,
  [in]  CALLFRAME_MARSHALCONTEXT *pcontext,
  [out] ULONG                    *pcbUnmarshalled
);

パラメーター

[in] pBuffer

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

[in] cbBuffer

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

[in] dataRep

データがマーシャリングされた NDR データ表現。 詳細については、「 IRpcChannelBuffer::GetBuffer」を参照してください。

[in] pcontext

アンマースホールの実行方法に関するコンテキスト情報を含む CALLFRAME_MARSHALCONTEXT 構造体へのポインター。

[out] pcbUnmarshalled

正常にアンマーシャリングされたバイト数を受け取ります。 このパラメーターは、エラーが発生した場合でも返されます。 このパラメーターは省略できます。

戻り値

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

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

注釈

アンマーシャルすると、[in] バージョンの [in, out] パラメーターが解放され、インターフェイス ポインターが解放され、[out] バージョンに置き換えられます。 すべての [in,out] および [out] パラメーターは、常に適切な [in]、[in、out] 値、[out] 値が、返されたデータから正常にアンマーシャリングされるか、 または NULL に明示的に初期化された値に設定されます。 エラーが返された場合、呼び出し元は通常、NULL ではない値をクリーンするために ICallFrame::Free を呼び出します。

要件

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

こちらもご覧ください

ICallFrame