[ファイルを開く] コマンドを使用してファイルを表示する
次の手順では、Visual Studio の [ファイル] メニューで使用できる [ファイルを開く] コマンドを IDE で処理する方法について説明します。 手順では、このコマンドから行われた呼び出しに対するプロジェクトの応答についても説明します。
ユーザーが [ファイル] メニューの [ファイルを開く] コマンドをクリックし、[ファイルを開く] ダイアログ ボックスでファイルを選択すると、次の処理が行われます。
IDE では、実行中のドキュメント テーブルを使用して、ファイルが既にプロジェクトで開かれているかどうかを判断します。
ファイルが開いている場合は、IDE によってウィンドウの表示が更新されます。
ファイルが開いていない場合、IDE は IsDocumentInProject を呼び出して各プロジェクトに対してクエリを実行し、ファイルを開くことができるプロジェクトを判別します。
Note
IsDocumentInProject のプロジェクト実装で、プロジェクトがファイルを開くレベルを示す優先度値を指定します。 優先度値は、VSDOCUMENTPRIORITY 列挙で指定されます。
それぞれのプロジェクトでは、ファイルを開くプロジェクトであることの重要性を示す優先度レベルが返されます。
IDE では、次の基準を使用して、ファイルを開くプロジェクトを決定します。
最高の優先度 (
DP_Intrinsic
) を返すプロジェクトがファイルを開きます。 複数のプロジェクトがこの優先度を返した場合、最初に応答したプロジェクトがファイルを開きます。最高の優先度 (
DP_Intrinsic
) を返すプロジェクトはないが、すべてのプロジェクトで同じ低い優先度が返される場合、アクティブなプロジェクトがファイルを開きます。 アクティブなプロジェクトがない場合は、最初に応答したプロジェクトがファイルを開きます。ファイル (
DP_Unsupported
) の所有権を要求するプロジェクトがない場合、[その他のファイル] プロジェクトがファイルを開きます。[その他のファイル] プロジェクトのインスタンスが作成された場合、プロジェクトは常に
DP_CanAddAsExternal
の値を返します。 この値は、このプロジェクトでファイルを開くことができることを示します。 このプロジェクトは、他のプロジェクトに含まれていない開いているファイルを格納するために使用されます。 このプロジェクト内の項目の一覧は永続化されません。このプロジェクトは、ファイルを開くために使用された場合にのみ ソリューション エクスプローラーに表示されます。[その他のファイル] プロジェクトでファイルを開くことができないことが示されていない場合は、プロジェクトのインスタンスが作成されていません。 この場合、IDE では [その他のファイル] プロジェクトのインスタンスを作成し、ファイルを開くようにプロジェクトに指示します。
IDE では、ファイルを開くプロジェクトが決定されるとすぐに、そのプロジェクトで OpenItem メソッドが呼び出されます。
この場合、プロジェクトでは、プロジェクト固有のエディターまたは標準エディターを使用してファイルを開くこともできます。 詳細については、「方法: プロジェクト固有のエディターを開く」および「方法: 標準のエディターを開く」をそれぞれ参照してください。