Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud máte nové zobrazení dokumentu, můžete ho připojit k existujícímu datovému objektu dokumentu.
Určení, jestli můžete připojit zobrazení k existujícímu datovému objektu dokumentu
Implementovat CreateEditorInstance.
Při implementaci volání
QueryInterfaceexistujícího datového objektu dokumentu při volání integrovaného vývojovéhoIVsEditorFactory::CreateEditorInstanceprostředí (IDE) implementaciCreateEditorInstance.Volání
QueryInterfaceumožňuje prozkoumat existující datový objekt dokumentu, který je zadán v parametrupunkDocDataExisting.Přesná rozhraní, která musíte dotazovat, ale závisí na editoru, který dokument otevírá, jak je uvedeno v kroku 4.
Pokud nenajdete odpovídající rozhraní u existujícího datového objektu dokumentu, vraťte editoru kód chyby, který indikuje, že datový objekt dokumentu není kompatibilní s vaším editorem.
V implementaci integrovaného vývojového OpenStandardEditorprostředí (IDE) vás okno se zprávou upozorní, že je dokument otevřený v jiném editoru a zeptá se, jestli ho chcete zavřít.
Pokud tento dokument zavřete, visual Studio zavolá objekt pro vytváření editoru podruhé. Při tomto volání
DocDataExistingje parametr roven hodnotě NULL. Implementace objektu pro vytváření editoru pak může otevřít datový objekt dokumentu ve vašem vlastním editoru.Poznámka:
Pokud chcete zjistit, zda můžete pracovat s existujícím datovým objektem dokumentu, můžete také použít soukromé znalosti implementace rozhraní přetypováním ukazatele na skutečnou třídu Visual C++ vaší privátní implementace. Například všechny standardní editory implementují
IVsPersistFileFormat, který dědí z IPersist. Můžete tedy volatQueryInterfaceGetClassIDa pokud ID třídy u existujícího datového objektu dokumentu odpovídá ID třídy vaší implementace, můžete pracovat s datovým objektem dokumentu.
Robustní programování
Když Visual Studio volá vaši implementaci CreateEditorInstance metody, předá zpět ukazatel na existující objekt dat dokumentu v parametru punkDocDataExisting , pokud existuje. Prozkoumejte datový objekt dokumentu vrácený punkDocDataExisting a zjistěte, jestli je datový objekt dokumentu vhodný pro váš editor, jak je popsáno v poznámce v kroku 4 postupu v tomto tématu. Pokud je to vhodné, měl by objekt pro vytváření editoru poskytnout druhé zobrazení dat, jak je uvedeno v části Podpora více zobrazení dokumentů. Pokud ne, měla by se zobrazit příslušná chybová zpráva.