オートメーションを使用すると、アプリケーションで別のアプリケーションに実装されているオブジェクトを操作したり、オブジェクトを公開して操作したりできます。 Automation クライアントは、別のアプリケーションに属する公開オブジェクトを操作できるアプリケーションです。 オブジェクトを公開するアプリケーションは、Automation サーバーと呼ばれます。 クライアントは、これらのオブジェクトのプロパティと関数にアクセスして、サーバー アプリケーションのオブジェクトを操作します。
Automation クライアントの種類
Automation クライアントには、次の 2 種類があります。
動的に (実行時に) サーバーのプロパティと操作に関する情報を取得するクライアント。
サーバーのプロパティと操作を指定する静的な情報 (コンパイル時に提供) を持つクライアント。
最初の種類のクライアントは、OLE システムの IDispatch
メカニズムに対してクエリを実行することで、サーバーのメソッドとプロパティに関する情報を取得します。 動的クライアントには適切ですが、 IDispatch
は静的クライアントでは使用が困難です。この場合、コンパイル時に駆動されるオブジェクトを認識する必要があります。 静的バインド されたクライアントの場合、Microsoft Foundation クラスは COleDispatchDriver クラスを 提供します。
静的バインド されたクライアントは、クライアント アプリケーションと静的にリンクされたプロキシ クラスを使用します。 このクラスは、サーバー アプリケーションのプロパティと操作のタイプ セーフな C++ カプセル化を提供します。
クラス COleDispatchDriver
は、Automation のクライアント側のプリンシパル サポートを提供します。 [ 新しい項目の追加 ] ダイアログ ボックスを使用して、 COleDispatchDriver
から派生したクラスを作成します。
次に、サーバー アプリケーションのオブジェクトのプロパティと関数を記述するタイプ ライブラリ ファイルを指定します。 [項目の追加] ダイアログ ボックスは、このファイルを読み取り、 COleDispatchDriver
派生クラスを作成します。このクラスには、型セーフな方法で C++ でサーバー アプリケーションのオブジェクトにアクセスするためにアプリケーションが呼び出すことができるメンバー関数が含まれます。
COleDispatchDriver
から継承された追加機能により、適切な Automation サーバーを呼び出すプロセスが簡略化されます。
Automation クライアントでのイベントの処理
オートメーション クライアントでイベントを処理する場合は、シンク インターフェイスを追加する必要があります。 MFC は、ActiveX コントロールのシンク インターフェイスを追加するためのウィザードのサポートを提供しますが、他の COM サーバーはサポートしていません。