MIDL の使用

RPC を使用するプログラムのすべてのインターフェイスは、Microsoft Interface Definition Language (MIDL) で定義し、MIDL コンパイラでコンパイルする必要があります。 次のトピックでは、MIDL インターフェイスの作成とコンパイルの概要について簡単に説明します。

これらのトピックの詳細については、「 IDL ファイルと ACF ファイル」を参照してください。

MIDL を使用したインターフェイスの定義

MIDL ファイルは、テキスト エディターで作成および編集できるテキスト ファイルです。 インターフェイスの UUID を生成する場合は、通常、出力をテンプレート MIDL ファイルに格納します。 UUID の詳細については、「インターフェイス UUID の 生成」を参照してください。

MIDL のすべてのインターフェイスは、同じ形式に従います。 これらは、インターフェイス属性とインターフェイス名の一覧を含むヘッダーで始まります。 属性は角かっこで囲まれています。 インターフェイス ヘッダーの後に本文が続き、中かっこで囲まれます。 単純なインターフェイスを次の例に示します。

[
  uuid(ba209999-0c6c-11d2-97cf-00c04f8eea45),
  version(1.0)
]
interface MyInterface
{
  const unsigned short INT_ARRAY_LEN = 100;

  void MyRemoteProc( 
      [in] int param1,
      [out] int outArray[INT_ARRAY_LEN]
  );
}

MIDL インターフェイス定義に通常表示される属性の一部は、UUID とインターフェイスのバージョン番号です。 インターフェイス定義の本体には、インターフェイス内のすべてのリモート プロシージャのプロシージャ宣言が含まれている必要があります。 また、 インターフェイスに必要なデータ型と定数の宣言を含めることもできます。

リモート プロシージャ宣言内のすべてのパラメーターは、[in]、[out]、または [in, out] として宣言する必要があります。 これらの宣言は、クライアント プログラムがリモート プロシージャにデータを渡すか、リモート プロシージャからデータを取得するか、またはその両方を取得することを指定します。 インターフェイス パラメーター宣言の詳細については、「 IDL インターフェイス本文」を参照してください。

MIDL ファイルのコンパイル

MIDL コンパイラは、プラットフォーム ソフトウェア開発キット (SDK) と共に自動的にインストールされるコマンド ライン ツールです。 コマンド ウィンドウでコマンド を呼び出すには、コマンド ラインでコマンド midl を入力し、その後に MIDL ファイルの名前を入力します。 MIDL コンパイラを含むディレクトリがパスにあることを確認します。 次の例は、その使用方法を示しています。

midl MyApp.idl

ファイル名に拡張子が .idl の場合は、拡張子を含める必要はありません。 MIDL コンパイラ コマンド ライン スイッチ は、 midl コマンドとファイル名の間に挿入して使用することもできます。 これは、次の例で示されています。

midl /acf MyApp.acf MyApp.idl

この例では、入力ファイルとして MyApp.idl ファイルを使用して MIDL コンパイラを実行します。 コマンド ライン スイッチ /acf は、入力にもアプリケーション構成ファイル (ACF) を使用するようにコンパイラに指示します。 アプリケーション構成ファイルについては、「 IDL ファイルと ACF ファイル」で詳しく説明します。

MIDL コンパイラの使用方法の詳細については、次のトピックに関する情報を含む Microsoft Interface Definition Language (MIDL) を参照してください。