IDL 文件

IDL 文件由一个或多个接口定义组成,每个接口定义都有一个标头和一个正文。 标头包含应用于整个接口的信息,例如 UUID。 此信息括在方括号中,后跟关键字 (keyword) 接口和接口名称。 正文包含 C 样式的数据类型定义和函数原型,并用描述如何通过网络传输数据的属性进行扩充。

在此示例中,接口标头仅包含 UUID 和版本号。 版本号可确保当 RPC 接口有多个版本时,仅连接客户端和服务器的兼容版本。

接口正文包含 HelloProc 的函数原型。 在此原型中,函数参数 pszString 具有 [in][string] 属性。 [in] 属性告知运行时库,参数仅从客户端传递到服务器。 [string] 属性指定存根应将 参数视为 C 样式的字符串。

客户端应用程序应该能够关闭服务器应用程序,因此接口包含另一个远程函数 Shutdown 的原型,该原型将在本教程稍后实现。

//file hello.idl
[
    uuid(7a98c250-6808-11cf-b73b-00aa00b677a7),
    version(1.0)
]
interface hello
{
    void HelloProc([in, string] unsigned char * pszString);
    void Shutdown(void);
}