ICallFrame::ReleaseMarshalData 方法 (callobj.h)
释放由驻留在封送数据包中的接口指针保留的资源。 此方法查找数据包中的所有接口指针,并在每个指针上调用 CoReleaseMarshalData 函数。
语法
HRESULT ReleaseMarshalData(
[in] PVOID pBuffer,
[in] ULONG cbBuffer,
[in] ULONG ibFirstRelease,
[in] RPCOLEDATAREP dataRep,
[in] CALLFRAME_MARSHALCONTEXT *pcontext
);
参数
[in] pBuffer
指向包含封送 [out] 值的缓冲区的指针。
[in] cbBuffer
缓冲区的大小(以字节为单位)。
[in] ibFirstRelease
要释放的缓冲区中的第一个字节。 值为零意味着将释放整个缓冲区中的接口指针。 封送的接口指针假定已由其他某种机制释放。
[in] dataRep
用于封送数据的数据表示形式。
[in] pcontext
指向 CALLFRAME_MARSHALCONTEXT 结构的指针,其中包含有关如何执行封送的上下文信息。
返回值
此方法可以返回以下值。
返回代码 | 说明 |
---|---|
|
该方法已成功完成。 |
|
发生意外错误。 |
注解
ReleaseMarshalData 方法必须恰好调用一次才能清理封送缓冲区中保留的资源。 但是,如果 MSHLFLAGS 枚举设置为 MSHLFLAGS_NORMAL,则会在取消封送期间自动完成此操作,因此无需显式执行。
此方法可以在封送的 [in] 和 [out] 参数上正常工作。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | callobj.h |