IGlobalInterfaceTable 接口 (objidl.h)

使进程中的任何单元都能够访问进程中任何其他单元中的对象上实现的接口。

继承

IGlobalInterfaceTable 接口继承自 IUnknown 接口。 IGlobalInterfaceTable 还具有以下类型的成员:

方法

IGlobalInterfaceTable 接口具有这些方法。

 
IGlobalInterfaceTable::GetInterfaceFromGlobal

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

将驻留在进程的一个单元中的对象上的指定接口注册为全局接口,使其他单元能够访问该接口。
IGlobalInterfaceTable::RevokeInterfaceFromGlobal

撤销全局接口表中接口的注册。

注解

IGlobalInterfaceTable 接口是进程将接口指针存储在内存位置(可从进程内的多个单元访问)的有效方法,例如进程范围的变量和敏捷 (包含指向其他对象的接口指针的自由线程封送) 对象。

敏捷对象不知道其运行所在的底层 COM 基础结构-换句话说,它正在哪个单元、上下文和线程上执行。 对象可能持有特定于单元或上下文的接口。 出于此原因,从敏捷组件执行的任何位置调用这些接口可能无法始终正常工作。 全局接口表通过根据敏捷对象的执行位置,保证使用有效的代理 (或指向对象的直接指针) ,从而避免了此问题。

全局接口表不能跨进程或计算机边界移植,因此不能使用它来代替常规的参数传递机制。

要求

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