開啟標準編輯器
當您開啟標準編輯器時,您可以讓 IDE 判斷指定檔案類型的標準編輯器,而不是指定檔案的專案特定編輯器。
完成下列程序以實作 OpenItem 方法。 這會在標準編輯器中開啟專案檔案。
如何使用標準編輯器實作 OpenItem 方法
呼叫 IVsRunningDocumentTable (
RDT_EditLock
) 以判斷文件資料物件檔案是否已經開啟。如果檔案已經開啟,請藉由呼叫 IsDocumentOpen 方法來重新浮出檔案,並指定
IDO_ActivateIfOpen
grfIDO
參數的值。如果檔案已開啟,而且文件是由與呼叫專案不同的專案所擁有,您的專案會收到一則警告,指出開啟的編輯器來自另一個專案。 然後會顯示檔案視窗。
如果文件未開啟或不在執行中的文件資料表中,請呼叫 OpenStandardEditor 方法 (
OSE_ChooseBestStdEditor
) 以開啟檔案的標準編輯器。當您呼叫方法時,IDE 會執行下列工作:
IDE 會掃描登錄中的 Editors/{guidEditorType}/Extensions 子機碼,以判斷哪一個編輯器可以開啟檔案,並具有執行此動作的最高優先順序。
在 IDE 判斷哪個編輯器可以開啟檔案之後,IDE 會呼叫 CreateEditorInstance。 這個方法的編輯器實作會傳回 IDE 呼叫 CreateDocumentWindow 和網站新開啟文件所需的資訊。
最後,IDE 會使用一般持續性介面載入文件,例如 IVsPersistDocData2。
如果 IDE 先前已判斷階層或階層專案可供使用,IDE 會呼叫專案上的 GetItemContext 方法,以取得專案層級的內容 IServiceProvider 指標,以使用 CreateDocumentWindow 方法呼叫傳回。
如果您想要讓編輯器從專案取得內容,請在專案上呼叫 GetItemContext IDE 時,傳回 IDE 的 IServiceProvider 指標。
執行此步驟可讓專案提供其他服務給編輯器。
如果文件檢視或文件檢視物件已成功定位於視窗框架中,則物件會藉由呼叫 LoadDocData 來初始化其資料。