次の方法で共有


オートメーション

オートメーション (旧称 OLE オートメーション) を使用すると、あるアプリケーションが別のアプリケーションに実装されているオブジェクトを操作したり、オブジェクトを公開して操作したりできます。

Automation サーバーは、COM インターフェイスを介して他のアプリケーション (オートメーション クライアントと呼ばれる) にその機能を公開するアプリケーション (COM サーバーの一種) です。 この公開により、Automation クライアントは、オブジェクトに直接アクセスし、提供するサービスを使用して、特定の機能を自動化できます。

オートメーション サーバーとクライアントは、常に IDispatch から派生し、Automation 型と呼ばれる特定のデータ型のセットを取得して返す COM インターフェイスを使用します。 オートメーション インターフェイスを公開する任意のオブジェクトを自動化し、他のアプリケーションからアクセスできるメソッドとプロパティを提供できます。 オートメーションは、OLE オブジェクトと COM オブジェクトの両方で使用できます。 自動化されたオブジェクトは、ローカルまたはリモート (ネットワーク経由でアクセス可能な別のマシン上) である可能性があります。そのため、自動化には次の 2 つのカテゴリがあります。

  • オートメーション (ローカル)。

  • リモートオートメーション (ネットワーク経由、分散 COM または DCOM を使用)。

オブジェクトの公開は、アプリケーションが他のアプリケーションに役立つ機能を提供する場合に役立ちます。 たとえば、ActiveX コントロールは Automation サーバーの一種です。ActiveX コントロールをホストするアプリケーションは、そのコントロールのオートメーション クライアントです。

別の例として、ワード プロセッサはスペル チェック機能を他のプログラムに公開する場合があります。 オブジェクトの公開により、ベンダーは他のアプリケーションの既製の機能を使用してアプリケーションを改善できます。 このように、オートメーションは、再利用性やカプセル化など、オブジェクト指向プログラミングの原則の一部をアプリケーション自体のレベルで適用します。

さらに重要なのは、Automation がユーザーとソリューション プロバイダーに提供するサポートです。 オートメーションは、共通の明確に定義されたインターフェイスを介してアプリケーション機能を公開することで、さまざまなアプリケーション固有のマクロ言語ではなく、Microsoft Visual Basic などの単一の一般的なプログラミング言語で包括的なソリューションを構築することを可能にします。

Microsoft Excel や Microsoft Visual C++ などの多くの商用アプリケーションでは、それらの機能の多くを自動化できます。 たとえば、Visual C++ では、ビルド、コード編集の側面、またはデバッグ タスクを自動化する VBScript マクロを記述できます。

オートメーションでパラメーターを渡す

Automation メソッドを作成する場合の 1 つの難しさは、オートメーション サーバーとクライアントの間でデータを渡す統一された "安全な" メカニズムを提供することです。 オートメーションでは、 VARIANT 型を使用してデータを渡します。 VARIANT 型は、タグ付き共用体です。 値のデータ メンバー (これは匿名の C++ 共用体) と、共用体に格納されている情報の種類を示すデータ メンバーがあります。 VARIANT 型では、2 バイトと 4 バイトの整数、4 バイトと 8 バイトの浮動小数点数、文字列、ブール値など、さまざまな標準データ型がサポートされています。 さらに、 HRESULT (OLE エラー コード)、 CURRENCY (固定小数点数値型)、 DATE (絶対日付と時刻) 型、および IUnknown インターフェイスと IDispatch インターフェイスへのポインターもサポートしています。

VARIANT 型は COleVariant クラスにカプセル化されます。 サポートする CURRENCY クラスと DATE クラスは、 COleCurrency クラスと COleDateTime クラスにカプセル化されます。

Automation のサンプル

  • AUTOCLIK このサンプルを使用して、オートメーションの手法を学習し、リモート オートメーションを学習するための基礎として使用します。

  • ACDUAL Automation サーバー アプリケーションにデュアル インターフェイスを追加します。

  • CALCDRIV MFCCALC を駆動するオートメーション クライアント アプリケーション。

  • INPROC In-Process Automation サーバー アプリケーションを示します。

  • IPDRIVE INPROC を駆動するオートメーション クライアント アプリケーション。

  • MFCCALC Automation クライアント アプリケーションを示します。

詳しく知りたいこと

どうしたいんですか

こちらも参照ください

MFC COM