CoGetStdMarshalEx 函数 (combaseapi.h)
创建聚合的标准封送处理器,以便与轻型客户端处理程序一起使用。
语法
HRESULT CoGetStdMarshalEx(
[in] LPUNKNOWN pUnkOuter,
[in] DWORD smexflags,
[out] LPUNKNOWN *ppUnkInner
);
参数
[in] pUnkOuter
指向控制 IUnknown 的指针。
[in] smexflags
指示聚合的标准封送处理器是在客户端还是服务器端的两个值之一。 这些标志在 STDMSHLFLAGS 枚举中定义。
Value | 含义 |
---|---|
|
指示服务器端聚合的标准封送处理程序。 |
|
指示客户端 (处理程序) 聚合的标准封送处理程序。 |
[out] ppUnkInner
成功返回时,指向新创建的聚合标准封送处理器上 IUnknown 接口的指针的地址。 如果发生错误,此值为 NULL。
返回值
此函数返回S_OK。
注解
服务器调用 CoGetStdMarshalEx 传入标志SMEXF_SERVER。 这会创建服务器端标准封送处理器 (称为存根管理器) 。 处理程序调用 coGetStdMarshalEx 传入标志SMEXF_HANDLER。 这会创建客户端标准封送处理程序 (称为代理管理器) 。 请注意,在调用此函数时,处理程序必须将创建处理程序时传递给处理程序的原始控制未知。 这是系统实现的未知控制。 未能传递正确的 IUnknown 会导致返回错误。 成功后,返回的 ppUnkInner 是内部对象的控制未知。 服务器和处理程序必须保留此指针,并可以使用它调用 IMarshal 接口的 IUnknown::QueryInterface。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | combaseapi.h (包括 Objbase.h) |
Library | Ole32.lib |
DLL | Ole32.dll |