次の方法で共有


IDE での選択と通貨

Visual Studio 統合開発環境 (IDE) では、選択 "コンテキスト" を使用して、ユーザーの現在選択されているオブジェクトに関する情報を保持します。 選択コンテキストを使用すると、VSPackage では次の 2 つの方法で通貨追跡を行うことができます。

  • VSPackage に関する通貨情報を IDE に伝達します。

  • IDE 内でユーザーの現在アクティブな選択を監視します。

選択コンテキスト

Visual Studio IDE では、独自のグローバル選択コンテキスト オブジェクトで IDE の通貨がグローバルに追跡されます。 次の表は、選択コンテキストを構成する要素を示しています。

要素 説明
現在の階層 通常は現在のプロジェクトです。現在の階層が NULL である場合は、ソリューション全体が最新であることを示します。
現在の ItemID 現在の階層内で選択されている項目。プロジェクト ウィンドウに複数の選択肢がある場合は、現在の項目が複数存在する可能性があります。
現在の SelectionContainer [プロパティ] ウィンドウでプロパティを表示する必要がある 1 つ以上のオブジェクトを保持します。

さらに、環境では次の 2 つのグローバル リストが保持されます。

  • アクティブな UI コマンド識別子のリスト

  • 現在アクティブな要素の型のリスト。

ウィンドウの種類と選択

Visual Studio IDE では、ウィンドウは次の 2 つの一般的な種類に編成されます。

  • 階層の種類ウィンドウ

  • フレーム ウィンドウ (ツールおよびドキュメント ウィンドウなど)

    IDE では、これらのウィンドウの種類ごとに異なる方法で通貨を追跡します。

    最も一般的なプロジェクトの種類ウィンドウは、IDE によって制御されるソリューション エクスプローラーです。 プロジェクトの種類ウィンドウでは、グローバルな選択コンテキストのグローバル階層と ItemID を追跡し、ウィンドウでは現在の階層を決定するためにユーザーの選択に依存します。 プロジェクトの種類ウィンドウの場合、環境では、開いている要素の現在の値を VSPackage によって監視できるグローバル サービス SVsShellMonitorSelection が提供されます。 環境でのプロパティの参照は、このグローバル サービスによって行われます。

    一方、フレーム ウィンドウでは、フレーム ウィンドウ内の DocObject を使用して SelectionContext 値 (hierarchy/ItemID/SelectionContainer の 3 つ) をプッシュします。 = フレーム ウィンドウでは、この目的のために SVsShellMonitorSelection サービスを使用します。 DocObject では、選択コンテナーの値のみをプッシュできます。MDI 子ドキュメントでは一般的ですが、階層および ItemID のローカル値は変更されません。

イベントと通貨

環境の通貨の概念に影響する次の 2 種類のイベントが発生する可能性があります。

  • グローバル レベルに反映され、ウィンドウ フレーム選択コンテキストを変更するイベント。 この種類のイベントの例としては、開いている MDI 子ウィンドウ、開いているグローバル ツール ウィンドウ、または開いているプロジェクトの種類ツール ウィンドウなどがあります。

  • ウィンドウのフレーム選択コンテキスト内でトレースされた要素を変更するイベント。 例には、DocObject 内での選択の変更や、プロジェクトの種類ウィンドウでの選択の変更があります。