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 |