Freigeben über


Öffnen von Standard-Editoren

Wenn Sie einen Standard-Editor öffnen, können Sie mit der IDE einen Standard-Editor für einen bestimmten Dateityp bestimmen, anstatt einen projektspezifischen Editor für die Datei anzugeben.

Führen Sie das folgende Verfahren aus, um die OpenItem Methode zu implementieren. Dadurch wird eine Projektdatei in einem Standard-Editor geöffnet.

So implementieren Sie die OpenItem-Methode mit einem Standard-Editor

  1. Rufen Sie IVsRunningDocumentTable (RDT_EditLock) auf, um festzustellen, ob die Dokumentdatenobjektdatei bereits geöffnet ist.

  2. Wenn die Datei bereits geöffnet ist, stellen Sie die Datei wieder auf, indem Sie die IsDocumentOpen Methode aufrufen und einen Wert IDO_ActivateIfOpen für den grfIDO Parameter angeben.

    Wenn die Datei geöffnet ist und das Dokument einem anderen Projekt als dem aufrufenden Projekt gehört, erhält Ihr Projekt eine Warnung, dass der zu öffnende Editor aus einem anderen Projekt stammt. Das Dateifenster wird dann angezeigt.

  3. Wenn das Dokument nicht in der ausgeführten Dokumenttabelle geöffnet ist oder nicht, rufen Sie die OpenStandardEditor Methode (OSE_ChooseBestStdEditor) auf, um einen Standard-Editor für die Datei zu öffnen.

    Wenn Sie die Methode aufrufen, führt die IDE die folgenden Aufgaben aus:

    1. Die IDE durchsucht den Unterschlüssel "Editors/{guidEditorType}/Extensions" in der Registrierung, um zu bestimmen, welcher Editor die Datei öffnen kann und die höchste Priorität hat.

    2. Nachdem die IDE ermittelt hat, welcher Editor die Datei öffnen kann, ruft die IDE auf CreateEditorInstance. Die Implementierung dieser Methode des Editors gibt Informationen zurück, die für die IDE erforderlich sind, um das neu geöffnete Dokument aufzurufen CreateDocumentWindow und zu websiten.

    3. Schließlich lädt die IDE das Dokument mithilfe der üblichen Persistenzschnittstelle, z IVsPersistDocData2. B. .

    4. Wenn die IDE zuvor festgestellt hat, dass das Hierarchie- oder Hierarchieelement verfügbar ist, ruft die IDE die Methode für das Projekt auf GetItemContext , um einen Kontextzeiger IServiceProvider auf Projektebene abzurufen, der mit dem CreateDocumentWindow Methodenaufruf wieder übergeben wird.

  4. Geben Sie einen IServiceProvider Zeiger auf die IDE zurück, wenn die IDE ihr Projekt aufruft GetItemContext , wenn Sie zulassen möchten, dass der Editor Kontext aus Ihrem Projekt abruft.

    Mit diesem Schritt kann das Projekt dem Editor zusätzliche Dienste anbieten.

    Wenn das Dokumentansichts- oder Dokumentansichtsobjekt erfolgreich in einem Fensterrahmen angeordnet wurde, wird das Objekt durch Aufrufen LoadDocDatader Daten initialisiert.