共用方式為


How to: 將檢視附加到文件資料

如果您有新的文件檢視,您可以將它附加至現有的文件資料物件。 如需程序的概觀,請參閱穩固的程式設計下。

若要判斷是否您可以將檢視附加到現有的文件資料物件

  1. 實作 CreateEditorInstance

  2. 在實作中的IVsEditorFactory::CreateEditorInstance,呼叫QueryInterface上現有的文件資料物件時 IDE 會呼叫您CreateEditorInstance實作。

    呼叫QueryInterface可讓您檢查現有的文件資料物件,這個值punkDocDataExisting參數。

    確切的介面,您必須查詢時,不過,而定的編輯器,開啟文件中,在步驟 4 中所述。

  3. 如果找不到適當的介面上現有的文件資料物件,然後傳回錯誤碼,為您指出文件的資料物件為您的編輯器和不相容的編輯器。

    在 IDE 的實作中的OpenStandardEditor,訊息方塊會通知您已在其他編輯器中開啟文件,並詢問您是否要關閉它。

  4. 如果您關閉此文件時,Visual Studio 會呼叫編輯器工廠的第二次。 在這個呼叫, DocDataExisting參數是 NULL。 編輯器工廠實作可以在自己的編輯器中開啟文件的資料物件。

    注意事項注意事項

    如果要判斷是否可以使用現有的文件資料物件,您也可以使用私用的知識,介面實作的轉型是指向實際Visual C++的私用實作的類別。例如,所有的標準編輯器實作IVsPersistFileFormat,這是繼承自IPersist。因此,您就可以呼叫QueryInterfaceGetClassID,並在 [現有的文件資料物件的類別識別碼是否符合您的實作類別識別碼,那麼您可以使用文件的資料物件。

穩固程式設計

Visual Studio 當呼叫的實作CreateEditorInstance方法,它將指標在現有的文件資料物件中punkDocDataExisting參數,如果有的話。 檢查文件的資料物件中傳回punkDocDataExisting以判斷文件的資料物件是否適用於您的附註本主題中的程序的步驟 4 中所述的編輯器。 如果適當,則編輯器工廠應該提供第二個檢視資料中所述支援多個文件檢視。 否則,它應該會再顯示適當的錯誤訊息。

請參閱

概念

支援多個文件檢視

文件資料和自訂編輯器中的文件檢視