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, out] 参数的 [in] 版本,并释放接口指针并将其替换为 [out] 版本。 所有 [in, out] 和 [out] 参数将始终设置为合理的 [in]、[in, out] 值、[out] 值(已成功从返回的数据中取消组合)或显式初始化为 NULL 的值。 故障返回时,调用方通常需要调用 ICallFrame::Free 以清理非 NULL 值。

要求

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

另请参阅

ICallFrame