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