開啟標準編輯器

當您開啟標準編輯器時,您可以讓 IDE 判斷指定檔案類型的標準編輯器,而不是指定檔案的專案特定編輯器。

完成下列程序以實作 OpenItem 方法。 這會在標準編輯器中開啟專案檔案。

如何使用標準編輯器實作 OpenItem 方法

  1. 呼叫 IVsRunningDocumentTable (RDT_EditLock) 以判斷文件資料物件檔案是否已經開啟。

  2. 如果檔案已經開啟,請藉由呼叫 IsDocumentOpen 方法來重新浮出檔案,並指定 IDO_ActivateIfOpengrfIDO 參數的值。

    如果檔案已開啟,而且文件是由與呼叫專案不同的專案所擁有,您的專案會收到一則警告,指出開啟的編輯器來自另一個專案。 然後會顯示檔案視窗。

  3. 如果文件未開啟或不在執行中的文件資料表中,請呼叫 OpenStandardEditor 方法 (OSE_ChooseBestStdEditor) 以開啟檔案的標準編輯器。

    當您呼叫方法時,IDE 會執行下列工作:

    1. IDE 會掃描登錄中的 Editors/{guidEditorType}/Extensions 子機碼,以判斷哪一個編輯器可以開啟檔案,並具有執行此動作的最高優先順序。

    2. 在 IDE 判斷哪個編輯器可以開啟檔案之後,IDE 會呼叫 CreateEditorInstance。 這個方法的編輯器實作會傳回 IDE 呼叫 CreateDocumentWindow 和網站新開啟文件所需的資訊。

    3. 最後,IDE 會使用一般持續性介面載入文件,例如 IVsPersistDocData2

    4. 如果 IDE 先前已判斷階層或階層專案可供使用,IDE 會呼叫專案上的 GetItemContext 方法,以取得專案層級的內容 IServiceProvider 指標,以使用 CreateDocumentWindow 方法呼叫傳回。

  4. 如果您想要讓編輯器從專案取得內容,請在專案上呼叫 GetItemContext IDE 時,傳回 IDE 的 IServiceProvider 指標。

    執行此步驟可讓專案提供其他服務給編輯器。

    如果文件檢視或文件檢視物件已成功定位於視窗框架中,則物件會藉由呼叫 LoadDocData 來初始化其資料。