COM クライアントの作成
COM クライアントの作成:インデックス への移動
COM クライアントは、他のアプリケーション オートメーション サーバーによって実装される COM オブジェクトを利用するアプリケーション(オートメーション コントローラー)であり、また、ActiveX コントロールのホストとなるアプリケーション(ActiveX コンテナ)でもあります。
一見したところ、これら 2 つのタイプの COM クライアントは大きく異なるように見えます: 典型的なオートメーション コントローラは、外部サーバー EXE を起動し、コマンドを発行して、そのサーバーに自分の代わりにタスクを実行させます。オートメーション サーバーは、通常非ビジュアルであり、プロセス外です。典型的な ActiveX クライアントは、一方で、ビジュアル コントロールのホストとなり、コンポーネント パレット上のコントロールを使用するように、それらコントロールを使用します。ActiveX サーバーは、常にプロセス内サーバーです。
しかしながら、これら 2 つのタイプの COM クライアントを記述する方法は、きわめて似ています:クライアント アプリケーションは、サーバー オブジェクトのインターフェイスを取得し、そのプロパティやメソッドを使用します。RAD Studio は、クライアント上のコンポーネント内に、サーバー CoClass をラップできるようにして、この作業を特に簡単にしており、コンポーネント パレットにインストールすることさえできます。
COM クライアントを記述する際、サーバーがクライアントに公開しているインターフェイスを理解していなければなりません。これは、コンポーネント パレットのコンポーネントをアプリケーションで使用する際に、そのプロパティやメソッドを理解しなければならないのと同じです。このインターフェイス(またはインターフェイスのセット)は、サーバー アプリケーションによって決定され、大抵の場合、タイプ ライブラリで公開されます。特定のサーバー アプリケーションの公開インターフェイスに特化した情報については、各アプリケーションのドキュメントを参照してください。
サーバー オブジェクトをコンポーネント ラッパーでラッピングしてコンポーネント パレット上にインストールしない場合でも、そのインターフェイス定義は、アプリケーション上で利用できるようにしなければなりません。これを行うためには、サーバーの型情報をインポートすることができます。
型情報は一度インポートしたら、インポートされたオブジェクトを制御するコードを記述することができます。
メモ: COM API を使用して、型情報を直接問い合わせることもできますが、RAD Studio ではこれに対する特殊なサポートは提供していません。
オブジェクト リンクや埋め込み(OLE)など、一部の古い COM 技術では、タイプ ライブラリにて型情報を提供していません。代わりに、それらは定義済みインターフェイスの標準セットに依存しています。これらについては、「タイプ ライブラリを持たないサーバーに対するクライアントの作成」にて説明されています。