CoReleaseMarshalData 函数 (combaseapi.h)
销毁以前封送的数据包。
语法
HRESULT CoReleaseMarshalData(
[in] LPSTREAM pStm
);
参数
[in] pStm
指向包含要销毁的数据包的流的指针。 请参阅 IStream。
返回值
此函数可以返回标准返回值E_FAIL、E_INVALIDARG、E_OUTOFMEMORY和E_UNEXPECTED,以及以下值。
返回代码 | 说明 |
---|---|
|
数据包已成功销毁。 |
|
与 pStm 参数相关的错误。 |
|
在调用此函数之前,未在当前线程上调用 CoInitialize 或 OleInitialize 函数。 |
注解
重要说明
安全说明:使用不受信任的数据调用此方法存在安全风险。 仅使用受信任的数据调用此方法。
- 函数从流中读取 CLSID。
- 如果使用 COM 的默认封送处理实现,该函数将获取指向标准 unmarshaler 实例的 IMarshal 指针。 如果使用自定义封送处理,该函数会通过调用 CoCreateInstance 函数、传递它从流中读取的 CLSID 来创建代理,并请求指向新创建的代理 的 IMarshal 接口指针。
- 使用该函数获取的 IMarshal 接口指针调用 IMarshal::ReleaseMarshalData。
- 尝试取消数据包的封送,但失败。
- 已从全局表中删除封送数据包。
请注意,成功调用 CoUnmarshalInterface 函数后,无需调用 CoReleaseMarshalData;该函数在处理过程中释放封送数据。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | combaseapi.h (包括 Objbase.h) |
Library | Ole32.lib |
DLL | Ole32.dll |