ICallFrame::Marshal メソッド (callobj.h)
フレームを乱すことなく、到達可能なデータをフラット バッファーに変換して、呼び出しフレームをマーシャリングします。
構文
HRESULT Marshal(
[in] CALLFRAME_MARSHALCONTEXT *pmshlContext,
[in] MSHLFLAGS mshlflags,
[in] PVOID pBuffer,
[in] ULONG cbBuffer,
[out] ULONG *pcbBufferUsed,
[out] RPCOLEDATAREP *pdataRep,
[out] ULONG *prpcFlags
);
パラメーター
[in] pmshlContext
マーシャリングの実行方法に関するコンテキスト情報を含む CALLFRAME_MARSHALCONTEXT 構造体へのポインター。
[in] mshlflags
マーシャリングするデータをクライアント プロセス (通常のケース) に転送するか、グローバル テーブルに書き込むかを示すフラグ。ここで、複数のクライアントで取得できます。 指定できる値は 、MSHLFLAGS 列挙体からの値です。
[in] pBuffer
マーシャリングされたデータを格納するバッファーへのポインター。
[in] cbBuffer
バッファーのサイズ (バイト単位)。
[out] pcbBufferUsed
実際に使用されたバッファーのサイズを受け取ります。 このパラメーターは省略可能です。
[out] pdataRep
データがマーシャリングされた NDR データ表現を受け取ります。 このパラメーターは省略可能です。 詳細については、「 IRpcChannelBuffer::GetBuffer」を参照してください。
[out] prpcFlags
呼び出しに関連付けられている RPC フラグを受信します。 このパラメーターは省略可能です。 詳細については、「 IRpcChannelBuffer::GetBuffer」を参照してください。
戻り値
このメソッドは、次の値を返すことができます。
リターン コード | 説明 |
---|---|
|
メソッドは正常に完了しました。 |
|
予期しないエラーが発生しました。 |
解説
[in, out] パラメーターの [In] バージョンをマーシャリングする場合、[out] バージョンは未定義です。 [out] パラメーターをマーシャリングする場合、値は有効です。
このメソッドからエラーが返された場合、呼び出し元はそれをクリーンできません。 マーシャリングの試行中に一時的に割り当てられたメモリなどのリソースが解放されました。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | callobj.h |