Share via


オートメーション モデルの概要

オートメーション モデルは、Visual Studio のアドインまたは拡張機能を記述できるオブジェクトのセットで構成されています。 アドインは、Visual Studio 環境を操作したり、一般的なタスクを自動化したりできるアプリケーションです。 Visual Studio 拡張機能では、Visual Studio のカスタム コンポーネントを作成したり、テキスト エディターなどの標準コンポーネントの機能を追加したりできます。

オートメーション モデル内のオブジェクト

オートメーション モデルは、共通環境の主要なファセットを制御するオブジェクトの関連グループで構成されています。 次の図は、オートメーション モデルを構成する Visual Studio オブジェクトの広範なセットを示しています。

Visual Studio automation object chart

詳細については、「Visual Studio 環境の拡張」を参照してください。

環境によって、さまざまな機能領域のモデルが提供されます。 たとえば、コードで見つかる可能性のあるさまざまな要素のコード モデルがあります。 さまざまなドキュメント要素のドキュメント モデルがあります。 VSPackage プロバイダーにとって特に重要な領域がプロジェクト領域です。 新しいプロジェクトの種類は、Visual C++ と Visual Basic の場合とほぼ同じ方法でオートメーション モデルに寄与させることができます。 このプロセスについては、「VSPackage でのオートメーションの提供」で説明しています。

環境のオートメーション モデルの拡張を検討できる場所は次のとおりです。

  • プロジェクト

  • Document

  • コード

  • Build

オートメーションの詳細については、Visual Studio のオートメーションと拡張性に関するページを参照してください。 このドキュメントとそのリンク先のドキュメントは、VSPackage のオートメーションを提供する方法についての意思決定に役立ちます。

オートメーション モデルに貢献する

Visual Studio には、環境をカスタマイズするための一連のオートメーション インターフェイスが用意されています。 オートメーション モデルはオブジェクト モデルであり、エンド ユーザーはこれを使用して Visual Studio のアドインと拡張機能を作成できるようになります。

また、オートメーション モデルへの投稿は、VSPackage の開発者に適しています。これにより、VSPackage のエンド ユーザーはアドインを作成できるようになります。また、エンド ユーザーが Visual Studio で VSPackage を使用するときに、通常、一貫したユーザー モデル エクスペリエンスを提供できます。

エンド ユーザー エクスペリエンスの一貫性を確保するために、VSPackage の設計時に一連のガイドラインに従うことができ、そうすることで VSPackage のオートメーション モデルを Visual Studio のアイデアに準拠させることができます。

このセクションの内容

VSPackage のオートメーションを実現する 2 つの主な方法について説明します。

VSPackage 固有のオブジェクトを作成するためのステップバイステップの手順を示します。

新しいプロジェクト タイプのオートメーションを作成するために必要な標準プロジェクト オブジェクトについて説明し、プロジェクト オートメーションが従うパスを図示します。 このトピックでは、クラスの宣言と実装の一覧も示します。

オートメーション モデルのイベントを作成するためのステップバイステップの手順を示します。

DTE.Properties オブジェクトを拡張することによって、[ツール] メニューの VSPackage のカスタム[オプション] ダイアログ ボックスのプロパティをサポートするために、オートメーション オブジェクトを返す方法について説明します。

コードのオートメーション モデルは作成する必要がないことを説明します。 ただし、このトピックには、コード モデルについて深い洞察が得られる情報を提供するリンクが用意されています。

ウィンドウでオートメーション オブジェクトを使用できるようにしたいが、環境で既製のオートメーション オブジェクトが提供されていない場合は、常に、オートメーションの提供が推奨されることを説明します。 ツール ウィンドウとドキュメント ウィンドウのオートメーションについて説明します。

オートメーション コンシューマーが初期のプロジェクト オートメーション オブジェクトを取得する方法を示す 2 つのコード例を提供します。

構成および SelectedItem オブジェクトのオートメーションに関する情報を提供します。

リファレンス

  • GetAutomationObject VSPackage が DTE オートメーション オブジェクト モデルにどのように参加するかを示すコード サンプルを提供します。 パラメーター、戻り値、および選択した説明を示します。