COM、DCOM 和类型库

组件对象模型(COM)和分布式组件对象模型(DCOM)使用远程过程调用(RPC)使分布式组件对象能够相互通信。 因此,COM 或 DCOM 接口定义 COM 对象的标识和外部特征。 它构成了客户端可以访问对象的方法和数据的方式。 使用 DCOM 时,无论对象存在于同一进程中、同一计算机上的不同进程或不同计算机上,都可以进行此访问。 与 RPC 客户端/服务器接口一样,COM 或 DCOM 对象可以通过多种方式以及通过多个接口公开其功能。

类型库

类型库 (.tlb) 是一个二进制文件,该文件存储有关 COM 或 DCOM 对象的属性和方法的信息,在运行时可供其他应用程序访问。 使用类型库,应用程序或浏览器可以确定对象支持的接口,并调用对象的接口方法。 即使对象和客户端应用程序是使用不同的编程语言编写的,也会发生这种情况。 COM/DCOM 运行时环境还可以使用类型库为类型库中所述的接口提供自动跨单元、跨进程和跨计算机封送处理。

接口的特征

在接口定义(IDL)文件和可选应用程序配置文件(ACF)中定义接口的特征:

  • IDL 文件指定网络上应用程序接口的特征,即如何在客户端和服务器之间传输数据,或在 COM 对象之间传输数据。
  • ACF 文件指定仅与本地作环境相关的接口特征,如绑定句柄。 ACF 文件还可以指定如何以独立于计算机的形式封送和传输复杂的数据结构。

有关 IDL 和 ACF 文件的详细信息,请参阅 IDL 和 ACF 文件

IDL 和 ACF 文件是用Microsoft接口定义语言(MIDL)编写的脚本,这是 OSF-DCE 接口定义语言(IDL)的Microsoft实现和扩展。 可以使用 IDL 语言的Microsoft扩展来创建 COM 接口和类型库。 编译器 Midl.exe使用这些脚本生成 C 语言存根和头文件和类型库文件。

MIDL 编译器

根据 IDL 文件的内容,MIDL 编译器将生成以下任何文件。

C 语言代理/存根文件、接口标识符文件、DLL 数据文件和自定义 COM 接口的相关头文件。 MIDL 编译器在接口属性列表中遇到对象属性时生成这些文件。 有关这些文件的更多详细信息,请参阅为 COM 接口 生成的文件。

已编译的类型库 (.tlb) 文件和相关的头文件。 MIDL 在 IDL 文件中遇到 语句时生成这些文件。 有关类型库的一般信息,请参阅自动化程序员参考中的 类型库的内容。

C/C++语言客户端和服务器存根文件和 RPC 接口的相关头文件。 当 IDL 文件中没有 对象 属性的接口时,将生成这些文件。 有关存根文件和头文件的概述,请参阅 常规生成过程。 有关详细信息,请参阅为 RPC 接口 生成的文件。