CoMarshalInterThreadInterfaceInStream 函数 (combaseapi.h)

在同一进程中将接口指针从一个线程封送到另一个线程。

语法

HRESULT CoMarshalInterThreadInterfaceInStream(
  [in]  REFIID    riid,
  [in]  LPUNKNOWN pUnk,
  [out] LPSTREAM  *ppStm
);

参数

[in] riid

对要封送的接口的标识符的引用。

[in] pUnk

指向要封送的接口的指针,该接口必须派生自 IUnknown。 此参数可以为 NULL。

[out] ppStm

IStream* 指针变量的地址,该变量接收指向包含封送接口的流的接口指针。

返回值

此函数可以返回E_OUTOFMEMORY和S_OK的标准返回值。

注解

CoMarshalInterThreadInterfaceInStream 函数使对象能够轻松可靠地封送指向同一进程中另一个线程的接口指针。 当在接收线程中运行的客户端尝试取消封送指针时, 可以保证 ppStm 参数中返回的流的行为正确。 然后,客户端可以调用 CoGetInterfaceAndReleaseStream 来取消配置接口指针并释放流对象。

CoMarshalInterThreadInterfaceInStream 函数执行以下任务:

  1. 创建流对象。
  2. 将流对象的 IStream 指针传递到 CoMarshalInterface
  3. 返回指向调用方的 IStream 指针。

要求

要求
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 combaseapi.h (包括 Objbase.h)
Library Ole32.lib
DLL Ole32.dll

另请参阅

CoGetInterfaceAndReleaseStream