Freigeben über


Gewusst wie: Befestigungs-Ansichten auf Dokumenten-Bezugspunkten

Wenn Sie eine Ansicht des neuen Dokuments haben, können Sie sie einem vorhandenen Dokument das angegebene Channeldatenobjekt anzufügen. Eine Übersicht des Prozesses finden Sie unter Robust Programming weiter unten.

So bestimmen Sie, ob Sie eine Ansicht zu einem vorhandenen Dokument anfügen können das angegebene Channeldatenobjekt

  1. Sie können CreateEditorInstance implementieren.

  2. In der Implementierung von IVsEditorFactory::CreateEditorInstance, rufen Sie QueryInterface auf dem vorhandenen Dokumenten das angegebene Channeldatenobjekt, wenn die IDE die CreateEditorInstance Implementierung aufgerufen wird.

    Das Aufrufen von QueryInterface können Sie das vorhandene Dokumenten das angegebene Channeldatenobjekt zu überprüfen, das im punkDocDataExisting-Parameter angegeben wird.

    Die genauen Schnittstellen, die Sie abfragen müssen, hängt jedoch nach dem Editor, in dem das Dokument öffnet, wie in Schritt 4 beschrieben ab.

  3. Wenn Sie nicht die geeigneten Schnittstellen auf dem vorhandenen Dokumenten das angegebene Channeldatenobjekt suchen, geben Sie einen Fehlercode an den Editor zurück, der angibt, dass das Dokument das angegebene Channeldatenobjekt mit dem Editor nicht kompatibel ist.

    In der Implementierung der IDE des OpenStandardEditorein Meldungsfeld, benachrichtigt Sie, dass das Dokument in einem anderen Editor geöffnet ist und Sie werden gefragt, ob Sie diesen zählen möchten.

  4. Wenn Sie dieses Dokument schließen, ruft Visual Studio den Editor factory für ein zweites Mal an. In diesem Aufruf ist der DocDataExisting-Parameter gleich NULL. Die Implementierung des Editors factory kann das Dokumenten in das angegebene Channeldatenobjekt Editor öffnen, dann besitzen.

    Hinweis

    Um zu bestimmen, ob Sie mit einem vorhandenen Dokument das angegebene Channeldatenobjekt arbeiten können, können Sie auch private Wissen über die Schnittstelle mit einem Zeiger auf die tatsächliche Klasse Visual C++ privaten Implementierung umgewandelt werden.Zum Beispiel implementieren alle standardmäßigen editoren IVsPersistFileFormat, das von IPersisterbt.So können Sie QueryInterface für GetClassIDund die Klassen-ID auf dem vorhandenen Dokumenten das angegebene Channeldatenobjekt den Klassenbezeichner der Implementierung übereinstimmen, mit dem Sie aufrufen können das angegebene Channeldatenobjekt Dokumenten arbeiten.

Robuste Programmierung

Wenn Visual Studio die Implementierung der CreateEditorInstance-Methode aufgerufen wird, wird ein Zeiger zum vorhandenen Dokument wieder in das angegebene Channeldatenobjekt punkDocDataExisting-Parameters, sofern vorhanden. Überprüfen Sie das Dokument das angegebene Channeldatenobjekt, das in punkDocDataExisting zurückgegeben wird, um zu bestimmen, ob das Dokument das angegebene Channeldatenobjekt für den Editor wie im Hinweis in Schritt 4 beschrieben in diesem Thema in dem Verfahren angemessen ist. Wenn es angemessen ist, sollte der Editor factory eine zweite Sicht für die Daten wie in Unterstützung mehrerer Dokumenten-Ansichtenskizziert bereitstellen. Wenn dies nicht der Fall ist, sollte sie eine entsprechende Fehlermeldung anzeigen.

Siehe auch

Konzepte

Unterstützung mehrerer Dokumenten-Ansichten

Dokumenten-Bezugspunkte und benutzerdefinierte Editoren in Dokumenten-Ansicht