Visual Studio シェル

Visual Studio shell は、Visual Studio における統合のプライマリ エージェントです。 シェルには、VSPackage が共通サービスを共有できるようにするために必要な機能が用意されています。 Visual Studio のアーキテクチャ目標は VSPackage で主要機能を提供することであるため、シェルは基本機能を提供し、コンポーネント VSPackage 間の相互通信をサポートするフレームワークです。

シェルの役割

シェルには、次の主要な役割があります。

  • (COM インターフェイスを通じて) ユーザー インターフェイス (UI) の基本要素をサポートします。 これには、既定のメニューとツール バー、ドキュメント ウィンドウ フレームまたはマルチドキュメント インターフェイス (MDI) 子ウィンドウ、ツール ウィンドウ フレーム、およびドッキング サポートが含まれます。

  • ドキュメントの永続性を調整し、1 つのドキュメントを複数の方法または互換性のない方法で開くことができないようにするために、現在開いているすべてのドキュメントの実行中のリストを実行中のドキュメント テーブル (RDT) で保持する。

  • コマンドルーティングとコマンド処理インターフェイス IOleCommandTarget をサポートします。

  • 適切なタイミングで VSPackage を読み込みます。 シェルのパフォーマンスを向上させるには、VSPackage の遅延読み込みが必要です。

  • 基本的なシェル機能を提供する SVsShell、基本的なウィンドウ機能を提供する SVsUIShell など、特定の共有サービスを管理します。

  • ソリューション (.sln) ファイルを管理します。 Visual C++ 6.0 のワークスペース (dsw) ファイルと同様、ソリューションには関連するプロジェクトのグループが含まれます。

  • シェル全体の選択、コンテキスト、および通貨を追跡します。 シェルは、次の種類の項目を追跡します。

    • 現在のプロジェクト

    • 現在のプロジェクト項目または現在の IVsHierarchy の ItemID

    • [プロパティ] ウィンドウまたは SelectionContainer の現在の選択

    • コマンド、メニュー、およびツール バーの表示を制御する UI コンテキスト ID または CmdUIGuids

    • アクティブ ウィンドウ、ドキュメント、および Undo マネージャーなど、現在アクティブな要素

    • ダイナミック ヘルプを駆動するユーザー コンテキスト属性

    シェルは、インストールされている VSPackage と現在のサービスの間の通信も仲介します。 シェルのコア機能をサポートしており、 Visual Studio で統合されているすべての VSPackage で使えるようになります。 これらのコア機能には次の項目が含まれます。

  • [バージョン情報] ダイアログ ボックスとスプラッシュ スクリーン

  • [新規追加] および [既存項目の追加] ダイアログ ボックス

  • [クラス ビュー] ウィンドウとオブジェクト ブラウザー

  • [参照] ダイアログ ボックス

  • [ドキュメント アウトライン] ウィンドウ

  • ダイナミック ヘルプ ウィンドウ

  • [検索][置換]

  • [新規] メニューの [プロジェクトを開く] および [ファイルを開く] ダイアログ ボックス

  • [ツール] メニューの [オプション] ダイアログ ボックス

  • プロパティ ウィンドウ

  • ソリューション エクスプローラー

  • [タスク一覧] ウィンドウ

  • ツールボックス