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 内での選択の変更や、プロジェクトの種類ウィンドウでの選択の変更があります。