Sdílet prostřednictvím


Připojení zobrazení k datům dokumentu

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

  1. Implementovat CreateEditorInstance.

  2. Při implementaci volání QueryInterface existujícího datového objektu dokumentu při volání integrovaného vývojového IVsEditorFactory::CreateEditorInstanceprostředí (IDE) implementaciCreateEditorInstance.

    Volání QueryInterface umožňuje prozkoumat existující datový objekt dokumentu, který je zadán v parametru punkDocDataExisting .

    Přesná rozhraní, která musíte dotazovat, ale závisí na editoru, který dokument otevírá, jak je uvedeno v kroku 4.

  3. 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.

  4. Pokud tento dokument zavřete, visual Studio zavolá objekt pro vytváření editoru podruhé. Při tomto volání DocDataExisting je 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 volat QueryInterface GetClassIDa 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.