ICallUnmarshal::Unmarshal 方法 (callobj.h)

将封送数据包重新转换为激活记录,然后可以通过其他方式调用或操作该记录。

语法

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

参数

[in] iMethod

方法编号。 如果此参数为 -1,则将从要取消封送的数据中确定方法编号。

[in] pBuffer

指向要从中创建激活记录的缓冲区的指针。

[in] cbBuffer

缓冲区的大小(以字节为单位)。

[in] fForceBufferCopy

指示是否应复制缓冲区并保留 (非零) ,还是缓冲区保持有效 (零) 。

[in] dataRep

用于封送数据的数据表示形式。

[in] pcontext

指向 CALLFRAME_MARSHALCONTEXT 结构的指针,该结构包含有关要执行取消封送的上下文的信息。

[out] pcbUnmarshalled

指向已成功取消封送的字节数的指针。

[out] ppFrame

绑定到 umarshaled 调用的调用帧。

返回值

此方法可以返回以下值。

返回代码 说明
S_OK
该方法已成功完成。
E_UNEXPECTED
发生意外错误。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 callobj.h

另请参阅

ICallUnmarshal