オートメーションサーバー
COM の基礎:インデックス への移動
オートメーションとは,たとえば一度に複数のアプリケーションを操作できるマクロのように,アプリケーションが別のアプリケーションの中のオブジェクトをプログラム的に制御する能力です。操作対象のサーバーオブジェクトをオートメーションオブジェクトといい,オートメーションオブジェクトのクライアントをオートメーションコントローラと呼びます。
オートメーションは,インプロセス,ローカル,リモートのどのサーバーでも使用できます。
オートメーションは,2 つの重要な点を特徴としています。
- オートメーションオブジェクトは一連のプロパティとコマンドを定義し,型記述によってその機能を記述する。この条件を満足するには,オブジェクトのインターフェース,インターフェースメソッド,メソッドの引数の情報を提供する手段を用意しなければならない。通常はこの情報はタイプライブラリで入手できる。オートメーションサーバーは,IDispatch インターフェース(後述)を介して問い合わせがあったときに型情報を動的に生成することもできる。
- オートメーションオブジェクトは,ほかのアプリケーションが自分のメソッドにアクセスして使用できるようにする。このために IDispatch インターフェースを実装する。このインターフェースを経由すれば,オブジェクトはそのすべてのメソッドとプロパティをエクスポーズできる。型情報によってオブジェクトのメソッドがわかったら,このインターフェースの一次メソッドを使用してそのメソッドを呼び出せる。
オートメーション IDispatch インターフェースはマーシャリングのプロセスを自動化するので,開発者はよくオートメーションを使用して,任意のプロセス空間で動作する非ビジュアル OLE オブジェクトを作成および使用します。ただし,オートメーションを使用すると,利用できる型が制限されます。
タイプライブラリで一般に有効な型の一覧と,特にオートメーションインターフェースについては,「有効な型」を参照してください。