CoGetStdMarshalEx 函数 (combaseapi.h)

创建聚合的标准封送处理器,以便与轻型客户端处理程序一起使用。

语法

HRESULT CoGetStdMarshalEx(
  [in]  LPUNKNOWN pUnkOuter,
  [in]  DWORD     smexflags,
  [out] LPUNKNOWN *ppUnkInner
);

参数

[in] pUnkOuter

指向控制 IUnknown 的指针。

[in] smexflags

指示聚合的标准封送处理器是在客户端还是服务器端的两个值之一。 这些标志在 STDMSHLFLAGS 枚举中定义。

Value 含义
SMEXF_SERVER
0x01
指示服务器端聚合的标准封送处理程序。
SMEXF_HANDLER
0x0
指示客户端 (处理程序) 聚合的标准封送处理程序。

[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

另请参阅

IMarshal

IStdMarshalInfo

轻型 Client-Side 处理程序