IGlobalInterfaceTable::GetInterfaceFromGlobal 方法 (objidl.h)

检索指向对象上的接口的指针,该接口可由调用单元使用。 此接口当前必须在全局接口表中注册。

语法

HRESULT GetInterfaceFromGlobal(
  [in]  DWORD  dwCookie,
  [in]  REFIID riid,
  [out] void   **ppv
);

参数

[in] dwCookie

标识接口 (及其对象) ,并通过调用 IGlobalInterfaceTable::RegisterInterfaceInGlobal 进行检索。

[in] riid

接口的 IID。

[out] ppv

指向所请求接口的指针的指针。

返回值

此方法可以返回以下值。

返回代码 说明
S_OK
该方法已成功完成。
E_INVALIDARG
一个或多个参数无效。

注解

在全局接口表中注册接口后,单元可以通过使用提供的 Cookie 调用 GetInterfaceFromGlobal 方法来获取指向此接口的指针。 此指向接口的指针可以在调用单元中使用,但不能由进程中的其他单元使用。

应用程序负责在调用 IGlobalInterfaceTable::RevokeInterfaceFromGlobal 期间协调对全局变量的访问。 也就是说,应用程序应确保一个线程不调用 RevokeInterfaceFromGlobal ,而另一个线程调用具有相同 Cookie 的 GetInterfaceFromGlobal 。 允许针对同一 Cookie 多次调用 GetInterfaceFromGlobal

GetInterfaceFromGlobal 方法在 ppv 参数中获取的指针上调用 AddRef。 调用方负责在此指针上调用 Release

要求

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

另请参阅

IGlobalInterfaceTable