How to: 將檢視附加到文件資料
如果您有新的文件檢視,您可以將它附加至現有的文件資料物件。 如需程序的概觀,請參閱穩固的程式設計下。
若要判斷是否您可以將檢視附加到現有的文件資料物件
在實作中的IVsEditorFactory::CreateEditorInstance,呼叫QueryInterface上現有的文件資料物件時 IDE 會呼叫您CreateEditorInstance實作。
呼叫QueryInterface可讓您檢查現有的文件資料物件,這個值punkDocDataExisting參數。
確切的介面,您必須查詢時,不過,而定的編輯器,開啟文件中,在步驟 4 中所述。
如果找不到適當的介面上現有的文件資料物件,然後傳回錯誤碼,為您指出文件的資料物件為您的編輯器和不相容的編輯器。
在 IDE 的實作中的OpenStandardEditor,訊息方塊會通知您已在其他編輯器中開啟文件,並詢問您是否要關閉它。
如果您關閉此文件時,Visual Studio 會呼叫編輯器工廠的第二次。 在這個呼叫, DocDataExisting參數是 NULL。 編輯器工廠實作可以在自己的編輯器中開啟文件的資料物件。
注意事項 如果要判斷是否可以使用現有的文件資料物件,您也可以使用私用的知識,介面實作的轉型是指向實際Visual C++的私用實作的類別。例如,所有的標準編輯器實作IVsPersistFileFormat,這是繼承自IPersist。因此,您就可以呼叫QueryInterface的GetClassID,並在 [現有的文件資料物件的類別識別碼是否符合您的實作類別識別碼,那麼您可以使用文件的資料物件。
穩固程式設計
Visual Studio 當呼叫的實作CreateEditorInstance方法,它將指標在現有的文件資料物件中punkDocDataExisting參數,如果有的話。 檢查文件的資料物件中傳回punkDocDataExisting以判斷文件的資料物件是否適用於您的附註本主題中的程序的步驟 4 中所述的編輯器。 如果適當,則編輯器工廠應該提供第二個檢視資料中所述支援多個文件檢視。 否則,它應該會再顯示適當的錯誤訊息。