オートメーション クライアント
更新 : 2007 年 11 月
オートメーション機能を使うと、他のアプリケーションで実装されているオブジェクトを操作することも、逆に自分のオブジェクトを公開して他のアプリケーションでそれを操作できるようにすることも可能です。オートメーション クライアントとは、別のアプリケーションが公開しているオブジェクトを操作できるアプリケーションのことです。オブジェクトを公開するアプリケーションは、オートメーション サーバーと呼ばれます。クライアントは、サーバー アプリケーションのオブジェクトのプロパティや関数を外部から利用することで、そのオブジェクトを操作します。
オートメーション クライアントの種類
オートメーション クライアントには、次の 2 種類があります。
サーバーのプロパティや動作に関する情報を動的に (実行時に) 取得するクライアント
サーバーのプロパティや動作に関する情報を静的に (コンパイル時に取得して) 所有するクライアント
動的クライアントでは、OLE システムの IDispatch 機構を利用して、サーバーのプロパティやメソッドに関する情報を取得します。IDispatch 機構は動的クライアントには便利ですが、操作するオブジェクトをコンパイル時に認識しなければならない静的クライアントには不便です。静的クライアントでは、MFC (Microsoft Foundation Class) の COleDispatchDriver クラスを利用できます。
静的クライアントは、クライアント アプリケーションに静的にリンクされるプロキシ クラスを使います。このクラスは、サーバー アプリケーションのプロパティと動作のタイプ セーフな C++ のカプセル化を提供します。
COleDispatchDriver クラスは、オートメーションのクライアント側の基本機能を実現します。[新しい項目の追加] ダイアログ ボックスを使うと、COleDispatchDriver の派生クラスを生成できます。
その後、サーバー アプリケーションのオブジェクトのプロパティと関数について記述したタイプ ライブラリ ファイルを指定します。[項目の追加] ダイアログ ボックスでは、このファイルを読み込んで COleDispatchDriver の派生クラスを作成します。このクラスのメンバ関数を呼び出すと、タイプ セーフな方法で C++ のサーバー アプリケーション オブジェクトにアクセスできます。COleDispatchDriver クラスから継承した機能を利用することで、該当するオートメーション サーバーを簡単に呼び出すことができます。
オートメーション クライアントのイベント処理
オートメーション クライアントでイベントを処理する場合、シンク インターフェイスを追加する必要があります。MFC に用意されているウィザードでは、ActiveX コントロール用のシンク インターフェイスを追加することはできますが、その他の COM サーバーに対してはサポートされていません。COM サーバーによって記述されているソース インターフェイスに対する MFC クライアントでのシンク インターフェイスの追加方法については、https://support.microsoft.com/default.aspx?scid=kb;ja-jp;181845 の「MFC-Based COM クライアントでシンク インターフェイスを作成する方法 (KB 181845)」を参照してください。
参照
処理手順
オートメーション クライアント : タイプ ライブラリの使用