COM、DCOM、およびタイプ ライブラリ
コンポーネント オブジェクト モデル (COM) と分散コンポーネント オブジェクト モデル (DCOM) は、リモート プロシージャ コール (RPC) を使用して、分散コンポーネント オブジェクトが相互に通信できるようにします。 したがって、COM または DCOM インターフェイスは、COM オブジェクトの ID と外部特性を定義します。 これは、クライアントがオブジェクトのメソッドとデータにアクセスできる手段を形成します。 DCOM を使用すると、オブジェクトが同じプロセスに存在するか、同じマシン上の異なるプロセスに存在するか、異なるマシン上に存在するかに関係なく、このアクセスが可能になります。 RPC クライアント/サーバー インターフェイスと同様に、COM または DCOM オブジェクトは、さまざまな方法で、複数のインターフェイスを介してその機能を公開できます。
タイプ ライブラリ
タイプ ライブラリ (.tlb) は、COM または DCOM オブジェクトのプロパティとメソッドに関する情報を、実行時に他のアプリケーションからアクセスできる形式で格納するバイナリ ファイルです。 アプリケーションまたはブラウザーは、タイプ ライブラリを使用して、オブジェクトがサポートするインターフェイスを特定し、オブジェクトのインターフェイス メソッドを呼び出すことができます。 これは、オブジェクトアプリケーションとクライアントアプリケーションが異なるプログラミング言語で記述されている場合でも発生する可能性があります。 COM/DCOM ランタイム環境では、タイプ ライブラリを使用して、タイプ ライブラリで説明されているインターフェイスの自動クロスアパートメント、クロスプロセス、およびマシン間マーシャリングを提供することもできます。
インターフェイスの特性
インターフェイス定義 (IDL) ファイルとオプションのアプリケーション構成ファイル (ACF) で、インターフェイスの特性を定義します。
- IDL ファイルは、ネットワーク上のアプリケーションのインターフェイスの特性 (つまり、クライアントとサーバー間、または COM オブジェクト間でデータを送信する方法) を指定します。
- ACF ファイルは、ローカルのオペレーティング環境にのみ関連するバインディング ハンドルなどのインターフェイス特性を指定します。 ACF ファイルでは、複雑なデータ構造をマシンに依存しない形式でマーシャリングおよび送信する方法を指定することもできます。
IDL ファイルと ACF ファイルの詳細については、「 IDL ファイルと ACF ファイル」を参照してください。
IDL ファイルと ACF ファイルは、Microsoft インターフェイス定義言語 (MIDL) で記述されたスクリプトです。これは、OSF-DCE インターフェイス定義言語 (IDL) の Microsoft 実装および拡張機能です。 IDL 言語に対する Microsoft の拡張機能を使用すると、COM インターフェイスとタイプ ライブラリを作成できます。 コンパイラMidl.exeは、これらのスクリプトを使用して、C 言語のスタブとヘッダー ファイル、およびタイプ ライブラリ ファイルを生成します。
MIDL コンパイラ
IDL ファイルの内容に応じて、MIDL コンパイラは次のいずれかのファイルを生成します。
C 言語のプロキシ/スタブ ファイル、インターフェイス識別子ファイル、DLL データ ファイル、およびカスタム COM インターフェイス用の関連ヘッダー ファイル。 MIDL コンパイラは、インターフェイス属性リストでオブジェクト属性を検出すると、これらのファイルを生成します。 これらのファイルの詳細については、「 COM インターフェイス用に生成されたファイル」を参照してください。
コンパイル済みタイプ ライブラリ (.tlb) ファイルと関連するヘッダー ファイル。 MIDL は、IDL ファイル内で ライブラリ ステートメントが検出されると、これらのファイルを生成します。 タイプ ライブラリの一般的な情報については、「オートメーション プログラマ リファレンス」の タイプ ライブラリの内容を参照してください。
C/C++言語のクライアントとサーバーのスタブ ファイルと、RPC インターフェイス用の関連ヘッダー ファイル。 これらのファイルは、 IDL ファイル内にオブジェクト属性を持たないインターフェイスがある場合に生成されます。 スタブ ファイルとヘッダー ファイルの概要については、「 一般的なビルド手順」を参照してください。 詳細については、「 RPC インターフェイス用に生成されたファイル」を参照してください。