IDL ファイル
IDL ファイルは 1 つ以上のインターフェイス定義で構成され、それぞれにヘッダーと本文があります。 ヘッダーには、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);
}