プロジェクト固有のエディターを開く
プロジェクトによって開かれている項目ファイルが、そのプロジェクト用の特定のエディターに本質的にバインドされている場合、プロジェクトでは、プロジェクト固有のエディターを使用してファイルを開く必要があります。 エディターを選択するための IDE のメカニズムへファイルを委任することはできません。 たとえば、標準のビットマップ エディターを使用する代わりに、このプロジェクト固有のエディター オプションを使用して、プロジェクトに固有のファイル内にある情報を認識する特定のビットマップ エディターを指定できます。
IDE では、特定のプロジェクトでファイルを開く必要があると判断したときに、OpenItem メソッドを呼び出します。 詳細については、「[ファイルを開く] コマンドを使用してファイルを表示する」を参照してください。 次のガイドラインを利用して、 プロジェクト固有のエディターを使用してプロジェクトでファイルを開くための OpenItem
メソッドを実装します。
プロジェクト固有のエディターを使用して OpenItem メソッドを実装するには
FindAndLockDocument メソッド (
RDT_EditLock
) を呼び出して、ファイル (ドキュメント データ オブジェクト) が既に開いているかどうかを確認します。Note
ドキュメント データとドキュメント ビュー オブジェクトの詳細については、「カスタム エディターでのドキュメント データとドキュメント ビュー」を参照してください。
ファイルが既に開いている場合は、IsDocumentOpen メソッドを呼び出して
grfIDO
パラメーターに IDO_ActivateIfOpen の値を指定して、ファイルを再表示します。ファイルが開いていて、ドキュメントが呼び出し元プロジェクト以外のプロジェクトによって所有されている場合は、開いているエディターが別のプロジェクトのものであることを示す警告がユーザーに表示されます。 次に、ファイル ウィンドウが表示されます。
テキスト バッファー (ドキュメント データ オブジェクト) が既に開いていて、別のビューをアタッチする場合は、自分でそのビューをフックする必要があります。 プロジェクトからビュー (ドキュメント ビュー オブジェクト) をインスタンス化する場合に推奨される方法は次のとおりです。
SLocalRegistry サービスで
QueryService
を呼び出して、ILocalRegistry2 インターフェイスへのポインターを取得します。CreateInstance メソッドを呼び出して、ドキュメント ビュー クラスのインスタンスを作成します。
CreateDocumentWindow メソッドを呼び出して、ドキュメント ビュー オブジェクトを指定します。
このメソッドは、ドキュメント ウィンドウ内のドキュメント ビュー オブジェクトをサイト設定します。
InitNew または Load メソッドへの適切な呼び出しを実行します。
この時点で、ビューは完全に初期化され、開く準備ができています。
Show メソッドを呼び出して、ビューを表示して開きます。