Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Umgebung behandelt die Befehle "Speichern", "Speichern unter" und "Alle speichern". Wenn ein Benutzer im Menü Datei auf Speichern, Speichern unter oder Alle speichern klickt oder die Lösung schließt, wodurch ein Alle speichern ausgelöst wird, geschieht der folgende Vorgang.
Speichern, Speichern unter und Speichern aller Befehle für einen benutzerdefinierten Editor
Dieser Vorgang ist in den folgenden Schritten beschrieben:
Für die Befehle "Speichern " und " Speichern unter " verwendet die Umgebung den SVsShellMonitorSelection Dienst, um das aktive Dokumentfenster zu bestimmen und damit zu bestimmen, welche Elemente gespeichert werden sollen. Sobald das aktive Dokumentfenster bekannt ist, findet die Umgebung den Hierarchiezeiger und den Elementbezeichner (ItemID) für das Dokument in der ausgeführten Dokumenttabelle. Weitere Informationen finden Sie unter "Running Document Table".
Für den Befehl "Alle speichern" verwendet die Umgebung die Informationen in der ausgeführten Dokumenttabelle, um die Liste aller zu speichernden Elemente zu kompilieren.
Wenn die Lösung einen QueryStatus-Aufruf empfängt, durchläuft sie die Gruppe der ausgewählten Elemente, d. h. die vom SVsShellMonitorSelection-Dienst bereitgestellten Mehrfachauswahlen.
In jedem Element in der Auswahl verwendet die Lösung den Hierarchiezeiger, um die IsItemDirty Methode aufzurufen, um zu bestimmen, ob der Befehl "Menü speichern" aktiviert werden soll. Wenn mindestens ein Element unverarbeitet ist, wird der Befehl "Speichern" aktiviert. Wenn die Hierarchie einen Standard-Editor verwendet, beauftragt die Hierarchie den Editor durch den Aufruf der IsDocDataDirty Methode mit der Abfrage des Änderungsstatus.
Bei jedem ausgewählten Element, das als dirty markiert ist, verwendet die Lösung den Hierarchiezeiger, um die SaveItem-Methode für die entsprechenden Hierarchien aufzurufen.
Bei einem benutzerdefinierten Editor ist die Kommunikation zwischen dem Dokumentdatenobjekt und dem Projekt privat. Daher werden alle besonderen Persistenzbedenken zwischen diesen beiden Objekten behandelt.
Hinweis
Wenn Sie Ihre eigene Persistenz implementieren, sollten Sie die QuerySaveFiles Methode aufrufen, um Zeit zu sparen. Mit dieser Methode wird überprüft, ob die Datei sicher gespeichert werden kann (z. B. ist die Datei nicht schreibgeschützt).