Visual Studio での階層
Visual Studio 統合開発環境 (IDE) では、プロジェクトが階層として表示されます。 IDE では、階層はノードのツリーで、各ノードには関連付けられたプロパティのセットがあります。 プロジェクト階層は、プロジェクトの項目、項目のリレーションシップ、項目に関連付けられているプロパティとコマンドを保持するコンテナーです。
Visual Studio では、IVsHierarchy 階層インターフェイスを使用してプロジェクト階層を管理します。 IVsUIHierarchy インターフェイスにより、プロジェクト項目から呼び出したコマンドを、標準コマンド ハンドラーではなく、適切な階層ウィンドウにリダイレクトされます。
プロジェクト階層
各プロジェクト階層には、表示および編集できるアイテムが含まれています。 これらの項目は、プロジェクト タイプによって異なります。 たとえば、データベース プロジェクトには、ストアド プロシージャ、データベース ビュー、データベース テーブルが含まれる場合があります。 一方、プログラミング言語プロジェクトには、ビットマップおよびダイアログ ボックスのソース ファイルとリソース ファイルが含まれている可能性が高いです。 階層を入れ子にすることができます。これにより、プロジェクト階層を作成するときに柔軟性を高めることができます。
新しいプロジェクト タイプを作成すると、プロジェクト タイプによって、編集可能な項目の完全なセットが制御されます。 ただし、プロジェクトには、編集がサポートされていない項目を含めることができます。 Visual C++ では HTML ファイル種類のカスタマイズされたエディターが用意されていませんが、Visual C++ プロジェクトに HTML ファイルを含めることができます。
階層は、含まれている項目の永続性を管理します。 階層の実装では、階層内のアイテムの永続性に影響する特別なプロパティを制御する必要があります。 たとえば、項目がファイルではなくリポジトリ内のオブジェクトを表す場合、階層の実装では、それらのオブジェクトの永続性を制御する必要があります。 IDE 自体により、ユーザー入力に準拠して項目を保存するように階層への指示が行われますが、IDE ではこれらの項目を保存するために必要な操作は制御されません。 代わりに、プロジェクトにより制御されています。
ユーザーがエディターで項目を開くと、その項目を制御する階層が選択され、アクティブな階層になります。 選択した階層によって、その項目に対して操作できるコマンドのセットが決まります。 この方法でユーザー フォーカスを追跡することで、階層にユーザーの現在のコンテキストを反映させることができます。