接口 (COM)
COM 提供以下接口。
接口 | 说明 |
---|---|
IAccessControl | 启用对对象及其属性的访问管理。 |
IAgileObject | 将接口标记为跨单元敏捷。 |
IBindCtx | 提供对绑定上下文的访问,该上下文是一个对象,用于存储有关特定名字对象绑定操作的信息。 |
IBlockingLock | 提供一个信号灯,可用于提供对共享资源(如文件)的临时独占访问权限。 |
ICallFactory | 创建用于处理对异步接口方法的调用的调用对象。 |
ICallFrame | 启用调用帧(如堆栈帧)的操作。 调用帧是过程必须保存以允许其正确返回其调用方的信息正文。 调用帧可能存在于堆栈或寄存器中。 堆栈帧维护其调用方在堆栈上的上下文信息。 |
ICallFrameEvents | 传递方法调用通知。 |
ICallFrameWalker | 遍历堆栈帧,查找感兴趣的值。 |
ICallIndirect | 使用间接引用调用参数(而不是传统的直接调用)调用对象。 |
ICallInterceptor | 支持注册和取消注册希望直接在接口上发出调用通知的事件接收器。 此外,此接口还提供了一种方法,通过间接引用调用参数来执行调用。 |
ICallUnmarshal | 在远程调用的服务器(接收)端使用。 ICallUnmarshal 的相应实例可用于转换回调用帧,该方法调用以前由客户端(发送)端的 ICallFrame::Marshal 调用封送。 |
ICancelMethodCalls | 管理出站方法调用上的取消请求,并监视服务器线程上该方法调用的当前状态。 |
ICatInformation | 获取有关特定类实现或所需的类别的信息,以及有关在指定计算机上注册的类别的信息。 |
ICatRegister | 提供在注册表中注册和取消注册组件类别信息的方法。 这包括类别的可读名称以及给定组件或类实现/所需的类别。 |
IClassActivator | 指定检索类对象的方法。 |
IClassFactory | 允许创建对象的类。 |
IClassFactory2 | 允许类工厂对象在任何类型的对象服务器中通过许可控制对象创建。 |
IClientSecurity | 让客户端控制对象的每个单独的接口代理的安全设置。 |
IComThreadingInfo | 能够获取有关调用方正在执行的单元和线程的以下信息:单元类型、线程类型和线程 GUID。 还可指定线程 GUID。 |
IConnectionPoint | 支持可连接对象的连接点。 |
IConnectionPointContainer | 支持可连接对象的连接点。 |
IContext | 支持设置 COM+ 上下文属性。 |
IContextCallback | 提供一种机制,用于在特定 COM+ 对象上下文中执行函数。 |
IContinueCallback | 为定期询问对象是否继续的可中断进程提供泛型回调机制。 |
IEnumCATID | 枚举类别标识符。 |
IEnumCLSID | 枚举类标识符。 |
IEnumCATEGORYINFO | 枚举系统中注册的组件类别。 |
IEnumConnectionPoints | 枚举连接点。 |
IEnumConnections | 枚举可连接对象的当前连接。 |
IEnumContextProps | 提供用于枚举与 COM+ 对象上下文关联的上下文属性的机制。 |
IEnumGUID | 使客户端能够枚举 COM 类的类 ID 集合。 |
IEnumString | 枚举字符串。 LPWSTR 类型指示指向以零结尾的宽字符或 Unicode 字符字符串的指针。 |
IEnumUnknown | 使用 IUnknown枚举对象。 可用于枚举包含多个对象的组件中的对象。 |
IEventProperty | 将命名事件属性与其值相关联。 |
IEventPublisher | 注册、修改、删除和提供有关事件发布者的信息。 |
IExternalConnection | 管理服务器对象的封送或外部连接计数。 维护此类计数的服务器可以检测何时没有外部连接并有序关闭。 |
IFastRundown | 将接口标记为符合快速断开操作条件。 |
IFileBasedLogInit | 初始化基于 ILog 实现的文件实例。 |
IForegroundTransfer | 将前台窗口传输到托管 COM 服务器的进程。 |
IGlobalInterfaceTable | 让进程中的任何单元都能访问进程中任何其他单元的对象上实现的接口。 |
IGlobalOptions | 设置和查询 COM 运行时的某些全局属性。 |
IInitializeSpy | 在进入或退出 COM 单元时执行初始化或清理。 |
IInternalUnknown | 专用于需要访问代理上某些内部接口的轻型客户端处理程序中。 |
ILog | 提供通用的低级日志记录功能。 |
IMalloc | 分配、释放和管理内存。 |
IMallocSpy | 使应用程序开发人员能够监控(监视)内存分配、检测内存泄漏,以及模拟调用 IMalloc 方法时的内存故障。 |
IMarshal | 使 COM 对象能够定义和管理其接口指针封送。 |
IMarshalingStream | 提供有关自定义封送对象和封送拆收器的封送上下文的其他信息。 |
IMessageFilter | 为 COM 服务器和应用程序提供有选择地处理传入和传出 COM 消息的功能,同时等待来自同步调用的响应。 筛选消息有助于确保以提高性能并避免死锁的方式处理调用。 COM 消息可以是同步、异步或输入同步;大多数接口调用都是同步。 |
IMoniker | 能够使用名字对象,其中包含唯一标识 COM 对象的信息。 具有指向名字对象 IMoniker 接口的指针的对象可以查找、激活和访问已标识对象,而无需获取有关对象在分布式系统中的实际位置的任何其他特定信息。 |
IMultiQI | 允许客户端使用单个 RPC 调用查询多个接口的对象代理或处理程序。 通过使用此接口,客户端无需依赖对 IUnknown::QueryInterface 的单独调用,便可以减少跨线程、进程或计算机边界的 RPC 调用数,从而减少获取请求的接口指针所需的时间。 |
IObjContext | 对上下文执行各种操作。 |
IOleItemContainer | 项名字对象在绑定到标识的对象时使用。 |
IOrpcDebugNotify | 提供远程调试功能。 |
IParseDisplayName | 分析可显示的名称字符串,将其转换为自定义名字对象实现的名字对象。 |
IPersist | 提供可永久存储在系统中的对象的 CLSID。 允许对象指定在客户端进程中要使用的对象处理程序,用于封送处理的默认实现。 |
IPersistFile | 使对象能够从磁盘文件加载或保存到磁盘文件,而不是存储对象或流。 |
IPersistStorage | 使容器应用程序能够将存储对象传递给其中一个包含的对象并加载和保存存储对象。 |
IPersistStream | 对使用简单串行流的对象进行保存和加载,以满足其存储需求。 |
IPersistStreamInit | 替代添加初始化方法的 IPersistStream。 |
IPipeByte | 传输字节类型的数据(宽 8 位)。 |
IPipeDouble | 传输双精度类型的数据(宽 64 位)。 |
IPipeLong | 传输长整型数据(宽 32 位)。 |
IProcessInitControl | 指定进程初始化超时间隔。 |
IProcessLock | 由 ISurrogateService 用于防止进程因超时而终止。 |
IProgressNotify | 使应用程序和其他对象能够接收下载操作过程中更改的通知。 |
IProvideClassInfo | 提供对类型库中对象 coclass 条目的类型信息的访问权限。 |
IProvideClassInfo2 | IProvideClassInfo 的扩展,使检索对象传出接口 IID 的默认事件集更快、更容易。 |
IProvideMultipleClassInfo | IProvideClassInfo2 的扩展,使从可能具有多个确定行为的共同类的组件中检索类型信息更快、更容易。 |
IPSFactoryBuffer | 提供用于创建 COM 对象代理和存根的自定义方法。 此接口不可封送。 |
IROTData | 通过名字对象实现,使正在运行的对象表 (ROT) 能够相互比较名字对象。 |
IRpcChannelBuffer | 封送 COM 客户端代理和 COM 服务器存根之间的数据。 |
IRpcOptions | 使调用方能够设置或查询控制 COM 如何处理远程过程调用 (RPC) 的各种属性的值。 |
IRpcProxyBuffer | 控制用于封送 COM 组件之间数据的 RPC 代理。 |
IRpcStubBuffer | 控制用于封送 COM 组件之间数据的 RPC 存根。 |
IRunnableObject | 使容器能够控制其嵌入对象的运行。 对于使用本地服务器实现的对象,调用 Run 方法将启动服务器的 .EXE 文件。 对于使用进程内服务器实现的对象,调用 Run 会导致对象 .DLL 文件转换为运行状态。 |
IRunningObjectTable | 管理对正在运行的对象表 (ROT) 的访问,该表是每个工作站上可全局访问的查找表。 工作站的 ROT 跟踪可由名字对象标识且当前在工作站上运行的对象。 当客户端尝试将名字对象绑定到对象时,名字对象检查 ROT 以查看对象是否已运行;这允许名字对象绑定到当前实例,而不是加载新对象。 |
IServerSecurity | 服务器用于帮助对客户端进行身份验证和管理客户端的模拟。 |
IStdMarshalInfo | 检索标识标准封送处理期间在目标进程中使用的处理程序的 CLSID。 |
ISurrogate | 用于将新 DLL 服务器动态加载到现有代理项,并释放不再需要的代理项。 |
ISurrogateService | 用于初始化、启动和释放 COM+ 应用程序。 还可以刷新目录并关闭该过程。 |
ISynchronize | 提供对象之间关于事件发生情况的异步通信。 实现 ISynchronize 的对象可以接收事件已发生的指示,并且可以响应有关事件的查询。 这样,客户端就可以确保在提交依赖于第一个请求完成的后续请求之前已处理一个请求。 |
ISynchronizeContainer | 管理一组未发信号的同步对象。 |
ISynchronizeEvent | 将事件句柄分配给同步对象。 |
ISynchronizeHandle | 检索与同步对象关联的句柄。 |
IUnknown | 使客户端能够通过 QueryInterface 方法获取指向给定对象上其他接口的指针,并通过 AddRef 和 Release 方法管理该对象的存在。 所有其他 COM 接口都从 IUnknown 直接或间接继承。 因此,IUnknown 中的三种方法是每个接口的 VTable 中的第一个条目。 |