ファイルとタイプ ライブラリのインポート

MIDL キーワードには、既存のヘッダー、IDL、オブジェクト定義言語 (ODL) ファイル、およびコンパイル済みタイプ ライブラリを参照することで、コードを再利用できます。

ACF インクルード ディレクティブを使用すると、MIDL で生成されたスタブ コードに含める 1 つ以上の C 言語ヘッダー ファイルを ACF ファイルに指定できます。 生成されたファイルには、指定されたヘッダー ファイルを含む #include C プリプロセッサ ディレクティブを含む行があります。 この インクルード ディレクティブを使用して、特定のオペレーティング環境に固有のヘッダー ファイルを取り込み、クライアントとサーバー間のインターフェイスに必要な情報を含まないファイルを取り込みます。 IDL ファイルで使用できるデータ型を含むヘッダー ファイルには include を使用しないでください。代わりに、 import ディレクティブを使用します。

例 1

[
  auto_handle
] 
interface X86PC
{ 
  include "gendefs.h", "protos.h", "myfile.h"; 
  //interface typdefs and function declarations here
}

IDL インポート ディレクティブは、他の IDL (または ODL) ファイルとヘッダー ファイルから IDL ファイルに型とインターフェイスの定義を取り込むための標準的な方法です。 インポートされたファイル内のすべての IDL ステートメント (typedefs、 const 宣言、インターフェイス定義など) は、インポートする IDL ファイルで使用できるようになります。

C 言語プリプロセッサ ディレクティブ #includeと同様に、インポート ディレクティブは、 インポート された IDL ファイルで定義されたデータ型を含むようにコンパイラに指示します。 #includeディレクティブとは異なり、インポートされたファイル内のスタブは生成されないので、import ディレクティブはプロシージャプロトタイプを無視します。 プリプロセッサはインポートされたファイルに対して個別に呼び出されるため、プリプロセッサ ディレクティブ (**など) はインポートする IDL ファイルに引き継がれません。

インポートを使用して IDL ファイルにシステム ヘッダー ファイルを含める方法の詳細については、「システム ヘッダー ファイルのインポート」を参照してください。

例 2

[
  uuid(. . .), object
] 
interface IKnown : IUnknown
{
  import "base.idl", "unknwn.idl", "helper.idl";
  //remainder of interface definition
}

ODL importlib ディレクティブを使用すると、IDL または ODL ファイル内のコンパイル済みタイプ ライブラリを参照できます。 importlib ディレクティブは、ライブラリ ステートメント内にあり、ライブラリ内の他の型の説明の前に置く必要があります。 インポートされたライブラリと生成されたライブラリは、実行時にアプリケーションで使用できる必要があります。

例 3

library NewBrowser
{
  importlib("stdole32.tlb");
  importlib("legacy.tlb");
  //remainder of library definition
};

C プリプロセッサ #include ディレクティブを使用して、IDL または ODL ファイルにヘッダーやその他のファイルを含めることもできます。 ただし、このディレクティブには、指定されたファイルの内容全体が文字通り含まれることに注意してください。 ヘッダー ファイルに、MIDL で生成されたスタブ ファイルに必要ないプロトタイプや必要のないプロトタイプが含まれている場合、またはヘッダー ファイルに非値型定義が含まれている場合は、#include ディレクティブの代わりに MIDL インポート ディレクティブを使用する必要があります。

インポート

importlib

含める

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