Win32/Desktop Technologies/System Services/MIDL文档阅读。

Interface Definitions and Type Libraries

Interfaces in Distributed Objects

在分布式计算中,接口是一个合集,其中包含定义和远端函数,可以运行不同情境下的程序进行互操作。

在一个RPC应用中,一个接口指定

  • 客户和服务端程序如何标识自身
  • 两者之间的数据如何传输
  • 客户端可以调用的远端执行诀
  • 远端执行诀的参数和返回值的数据类型

微软的IDL可用于在此风不是计算中描述接口。每个接口像是一个客户端和服务端之间的合约。基于RPC、COM、DCOM的应用程序使用MIDL规制他们的接口。

参考https://docs.microsoft.com/en-us/windows/desktop/Rpc/developing-the-interface

COM, DCOM, and Type Libraries

对于COM和DCOM,都是用RPC来在组件例现之间交互。DCOM的话,可以跨机器交互。

类型库(.tlb)是二进制格式文件,存储COM或者DCOM对象的辖属和方法,形式上可以供其他应用在运行时访问。

COM/DCOM运行时环境可以使用tlb来提供自动化的接口对标(marshaling),可以跨隔间、进程以及机器。

接口特征可以用一个IDL文件,额外加上一个可选的ACF文件(application configuration file)。ACF指定注入binding handles之类的借口特征,还可以指定如何以机器无关的方式,对标和传输一个复杂的数据结构。

IDL和ACF使用的都是MIDL格式。

根据IDL的内容,MIDL工具会生成如下文件

Interface Definition (IDL) File

接口用interface关键字标识。

每个接口包含头部和正文。头部包含应用于正文的属性,正文包含余下的接口定义。查看https://docs.microsoft.com/en-us/windows/desktop/Rpc/the-interface-definition-language-idl-file

Data Types in the Interface Body