オートメーション サーバー
オートメーション機能を使うと、他のアプリケーションで実装されているオブジェクトを操作することも、逆に自分のオブジェクトを公開して他のアプリケーションでそれを操作できるようにすることも可能です。 オートメーション サーバーを他のアプリケーションとのプログラミング可能なオブジェクト (オートメーション オブジェクトとも呼ばれます) を公開するアプリケーションです (オートメーション クライアントとも呼ばれます)。 オートメーション サーバーは、オートメーション コンポーネントと呼ばれます。
オートメーション オブジェクトを公開することで、クライアントがオブジェクトに直接アクセスすることによって、特定のプロシージャを自動化したり、サーバーが利用できるようにする機能。 公開はアプリケーションが他のアプリケーションに役立つ機能を提供する場合は、この方法では、表示します。 たとえば、ワード プロセッサは、他のプログラムで使用できるようにスペル チェック機能を公開する場合があります。 オブジェクトの一つはそれに販売元が他のアプリケーションの既成の機能を使用してアプリケーションの機能を向上させることができます。
これらのオートメーション オブジェクトに外部インターフェイスとしてプロパティとメソッドがあります。 プロパティはオートメーション オブジェクトの名前付き属性です。 プロパティは、.クラスのデータ メンバーに似ています。 メソッドはオートメーション オブジェクトで実行される関数です。 メソッドは、.クラスのパブリック メンバー関数と同様です。
注意
プロパティは C++ のデータ メンバーと同様ですが、直接アクセスできません。透過的なアクセスを提供するには、アクセスを取得します。値の設定のメンバー関数のオートメーション オブジェクトの内部変数を設定します。
一般的で定義されたインターフェイス、オートメーションを使用してアプリケーションの機能を公開することで、さまざまなアプリケーション固有のマクロ言語のではなく、Microsoft Visual Basic などの単一の一般的なプログラミング言語でアプリケーションをビルドすることができます。
オートメーション サーバーのサポート
Visual C++ と MFC フレームワークはオートメーション サーバーの広範なサポートが用意されています。 これらは、オートメーション サーバーの作成のオーバーヘッドの多くを処理します。したがって、アプリケーションの機能に作業に集中できます。
オートメーションのサポートのフレームワークの主な機能は、ディスパッチ マップ、宣言に展開し、OLE のメソッドとプロパティを公開するために呼び出すマクロのセットです。 一般的なディスパッチ マップの例を次に示します。:
BEGIN_DISPATCH_MAP(CMyServerDoc, COleServerDoc)
DISP_PROPERTY(CMyServerDoc, "Msg", m_strMsg, VT_BSTR)
DISP_FUNCTION(CMyServerDoc, "SetDirty", SetDirty, VT_EMPTY, VTS_I4)
END_DISPATCH_MAP()
プロパティ ウィンドウとクラス ビューは維持のディスパッチ マップで役立ちます。 新しいメソッドまたはプロパティをクラスに追加すると、Visual C++ によってメソッド、クラス名、および外部内部名またはプロパティ、およびデータ型を示すパラメーターの DISP_PROPERTY の対応する DISP_FUNCTION マクロを追加します。
クラスの追加 ダイアログ ボックスは、オートメーション クラスの宣言とプロパティおよび操作の管理が簡単になります。 プロジェクトにクラスを追加するには、クラスの追加ダイアログ ボックスを使用するときに、基本クラスを指定します。 基本クラスは、オートメーションを有効にしている場合、クラス オブジェクトを COM クライアントからの要求で作成できるかどうかを新しいクラスが使用するかどうかを COM クライアント オートメーション「OLE 作成」 () であるか、外部名をサポートするかどうかを指定するために使用するクラスの追加ダイアログ ボックスのリモート コントロールが表示されます。
クラスの追加 ダイアログ ボックスに、指定した OLE 機能に対する適切なマクロを含む、クラス宣言を作成します。 また、クラスのメンバー関数の実装のスケルトン コードを追加します。
MFC アプリケーション ウィザードでは、地面からオートメーション サーバー アプリケーションを取得する手順を簡素化します。 [高度な機能] ページから オートメーション のチェック ボックスをオンにすると、MFC アプリケーション ウィザードでは、アプリケーションの InitInstance 関数にオートメーション オブジェクトを登録し、オートメーション サーバーとしてアプリケーションを実行するために必要な呼び出しを追加します。