Projektspezifische Editoren öffnen
Wenn eine Elementdatei, die von einem Projekt geöffnet wird, systemintern an den jeweiligen Editor für dieses Projekt gebunden ist, muss das Projekt die Datei mit einem projektspezifischen Editor öffnen. Die Datei kann nicht an den Mechanismus der IDE zum Auswählen eines Editors delegiert werden. Statt beispielsweise einen standardmäßigen Bitmap-Editor zu verwenden, können Sie diese projektspezifische Editoroption verwenden, um einen bestimmten Bitmap-Editor anzugeben, der Informationen in der Datei erkennt, die für Ihr Projekt eindeutig ist.
Die IDE ruft die OpenItem Methode auf, wenn ermittelt wird, dass eine Datei von einem bestimmten Projekt geöffnet werden soll. Weitere Informationen finden Sie unter Anzeigen von Dateien mithilfe des Befehls "Datei öffnen". Verwenden Sie die folgenden Richtlinien, um die OpenItem
Methode zu implementieren, damit Ihr Projekt eine Datei mithilfe eines projektspezifischen Editors öffnen kann.
So implementieren Sie die OpenItem-Methode mit einem projektspezifischen Editor
Rufen Sie die FindAndLockDocument Methode (
RDT_EditLock
) auf, um zu bestimmen, ob die Datei (Dokumentdatenobjekt) bereits geöffnet ist.Hinweis
Weitere Informationen zu Dokumentdaten und Dokumentansichtsobjekten finden Sie unter Dokumentdaten und Dokumentansicht in benutzerdefinierten Editoren.
Wenn die Datei bereits geöffnet ist, stellen Sie die Datei wieder auf, indem Sie die IsDocumentOpen Methode aufrufen und einen Wert von 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, wird dem Benutzer eine Warnung angezeigt, dass der geöffnete Editor aus einem anderen Projekt stammt. Das Dateifenster wird dann angezeigt.
Wenn der Textpuffer (Dokumentdatenobjekt) bereits geöffnet ist und Sie eine andere Ansicht anfügen möchten, sind Sie dafür verantwortlich, diese Ansicht zu verknüpfen. Der empfohlene Ansatz zum Instanziieren einer Ansicht (Dokumentansichtsobjekt) aus dem Projekt lautet wie folgt:
Rufen Sie
QueryService
den SLocalRegistry Dienst auf, um einen Zeiger auf die ILocalRegistry2 Schnittstelle abzurufen.Rufen Sie die CreateInstance Methode auf, um eine Instanz der Dokumentansichtsklasse zu erstellen.
Rufen Sie die CreateDocumentWindow Methode auf, und geben Sie das Dokumentansichtsobjekt an.
Mit dieser Methode wird das Dokumentansichtsobjekt in einem Dokumentfenster angezeigt.
Führen Sie die entsprechenden Aufrufe für die InitNew Methoden oder die Load Methoden aus.
Zu diesem Zeitpunkt sollte die Ansicht vollständig initialisiert und bereit sein, geöffnet zu werden.
Rufen Sie die Show Methode auf, um die Ansicht anzuzeigen und zu öffnen.