システム ヘッダー ファイルのインポート

多くの場合、 #include ディレクティブを使用して IDL ファイルにヘッダー ファイルを含めることができますが、推奨されません。 MIDL コンパイラは、コンパイルされる IDL ファイルで定義されているすべての関数のスタブを生成します。 通常、ヘッダー ファイルには、スタブ ファイルに含める必要も含める必要もない多数のプロトタイプが含まれており、#includeは、これらの定義をすべて メイン IDL ファイルに効果的に配置します。 さらに、ヘッダー ファイルに削除できない型が定義されている場合は、IDL ファイルがコンパイルされない可能性があります。

IDL ファイルにヘッダー ファイルの型定義を含めるには、次の 2 つの方法があります。

  • ヘッダー ファイルで定義されているデータ型を含めるには、 import ディレクティブを使用します。 C 言語 の #include ディレクティブとは異なり、 インポート ディレクティブは型と定数の定義のみを取得し、プロシージャのプロトタイプを無視します。 この方法は、メイン IDL ファイルがヘッダー ファイルで定義されている削除不可能な型を参照しない限り機能します。
  • ヘッダー ファイルを含むダミー インターフェイスを使用してヘルパー IDL ファイルを作成します。 次に、 import ディレクティブを使用してヘルパー ファイルを含めます。 この方法では、コンパイル済みスタブに typedefs のみが表示されます。 次に例を示します。
//in helper.idl:
interface dummy
{ 
   #include "kitchensink.h"
   #include "system.h"
}

//in main.idl:
import "helper.idl";