COM クライアントの作成

提供: RAD Studio
移動先: 案内検索

COM クライアントの作成:インデックス への移動

COM クライアントとは,ほかのアプリケーションまたはライブラリが実装する COM オブジェクトを使用するアプリケーションです。最も一般的なものは,オートメーションサーバーを制御するアプリケーション(オートメーションコントローラ),および ActiveX コントロールのホストであるアプリケーション(ActiveX コンテナ)です。

一見したところ,これら 2 種類の COM クライアントは大きく異なるように見えます。典型的なオートメーションコントローラは,外部サーバー EXE を起動し,そのサーバーにタスクを実行させるコマンドを発行します。このオートメーションサーバーは,通常は非ビジュアルのアウトオブプロセスサーバーです。一方,典型的な ActiveX クライアントは,ビジュアルコントロールのホストであり,コンポーネントパレットのコントロールと同じようにこのコントロールを使用します。ActiveX サーバーは常にインプロセスサーバーです。

このように大きな違いはありますが,これら 2 種類の COM クライアントを作成する作業はきわめて似ています。なぜなら,クライアントアプリケーションがサーバーオブジェクトに対するインターフェースを取得し,そのプロパティとメソッドを使用するからです。RAD Studio は,クライアント上のコンポーネントでサーバー CoClass をラップできるようにして,この作業を著しく簡単にします。このコンポーネントはコンポーネントパレットにインストールすることさえできます。

COM クライアントを作成するときは,サーバーがクライアントにエクスポーズするインターフェースを理解しなければなりません。コンポーネントパレットのコンポーネントをアプリケーションに使用するときに,そのプロパティとメソッドを理解しなければならないのと同じです。このインターフェース(またはインターフェースのセット)はサーバーアプリケーションによって決定され,通常はタイプライブラリ内でパブリッシュに設定されます。特定のサーバーアプリケーションのパブリッシュに設定されたインターフェースの詳細は,サーバーアプリケーション付属のマニュアルを参照してください。

コンポーネントラッパーでサーバーオブジェクトをラップしてコンポーネントパレットにインストールするように選択しない場合でも,アプリケーションがインターフェース定義を使用できるようにしなければなりません。そのために,サーバーの型情報をインポートできます。

型情報をインポートすれば,インポートしたオブジェクトを制御するコードを書くことができます。

メモ:  COM API を使って型情報を直接問い合わせることもできますが,RAD Studio ではこれに対する特殊なサポートは用意されていません。

オブジェクトのリンクと埋め込み(OLE)などの一部の古い COM テクノロジーは,タイプライブラリ内に型情報を提供しません。そのかわりに,定義済みインターフェースの標準セットに依存しています。これについては,「タイプライブラリを持たないサーバーのクライアントの作成」を参照してください。

関連項目