QueryEditQuerySave (Quellcodeverwaltungs-VSPackage)
Visual Studio-Editoren können Abfrage-Edit Query Save (QEQS)-Ereignisse übertragen. Visual Studio Source Control Stub implementiert den QEQS-Dienst, sodass es der Empfänger von QEQS-Ereignissen ist. Diese Ereignisse werden dann an die derzeit aktive Quellcodeverwaltung VSPackage delegiert. Das aktive Quellcodeverwaltungs-VSPackage implementiert die IVsQueryEditQuerySave2 und die zugehörigen Methoden. Die Methoden der Schnittstelle werden in der IVsQueryEditQuerySave2
Regel unmittelbar aufgerufen, bevor ein Dokument zum ersten Mal bearbeitet wird und unmittelbar vor dem Speichern eines Dokuments.
QueryEditQuerySave-Ereignisse
Die Quellcodeverwaltung VSPackage muss die QEQS-Ereignisse verarbeiten, indem die IVsQueryEditQuerySave2
Schnittstelle und die erforderlichen Methoden implementiert werden. Nachfolgend finden Sie eine kurze Beschreibung der beiden Methoden, die vom VSPackage mindestens implementiert werden müssen. Die tatsächliche Implementierung muss der Logik des Quellcodeverwaltungsmodells entsprechen.
QueryEditFiles-Methode
Dies QueryEditFiles wird aufgerufen, wenn ein Projekt oder Editor eine Datei ändern möchte. Im Idealfall wird diese Methode aufgerufen , bevor die Datei geändert wird und wann eine Datei gespeichert wird. Wenn die Methode aufgerufen wird, überprüft die IVsQueryEditQuerySave2::QueryEditFiles
Methode, ob die angegebenen Dateien der Quellcodeverwaltung unterliegen, ob sie ausgecheckt werden müssen und ob sie neu geladen werden können. Wenn Umstände verhindern, dass die Dateien bearbeitet werden können, teilt die IVsQueryEditQuerySave2::QueryEditFiles
Methode dem aufrufenden Programm mit, die Bearbeitung abzubrechen. Es ist auch möglich, dass der Aufrufer einen Aufrufmodus angeben kann. Im modus "silent" führt diese Methode nur dann Eine Aktion aus, wenn keine Benutzeroberfläche angezeigt wird. Wenn die Benutzeroberfläche unvermeidbar ist, muss eine Kennzeichnung zurückgegeben werden, um das Problem anzugeben.
Die Methode verhält sich auf transaktionsale Weise; d. h., wenn die Bearbeitung in einer einzelnen Datei abgebrochen wird, wird die Bearbeitung für alle Dateien abgebrochen. Wenn die Bearbeitung dagegen zulässig ist, ist sie für alle Dateien zulässig. Wenn diese Methode die Bearbeitung einmal für einen bestimmten Satz von Dateien zulässt, muss sie immer die Bearbeitung für nachfolgende Aufrufe für dieselbe Gruppe von Dateien zulassen. Die Allow-Edit-Schleife wird fortgesetzt, bis die Dateien geschlossen, gespeichert und neu geladen werden. bis sich ihre Attribute (Eigenschaften) ändern; oder bis das Quellcodeverwaltungspaket geändert wird. Fälle, die bei der Implementierung der IVsQueryEditQuerySave2::QueryEditFiles
Methode berücksichtigt werden sollten, umfassen mehrere Dateien, spezielle Dateien, abbrechen von Benutzern und In-Memory-Bearbeitungen.
QuerySaveFiles-Methode
Der QuerySaveFiles Aufruf wird aufgerufen, wenn ein Projekt oder Editor eine Reihe von Dateien speichern muss. Wenn die Methode aufgerufen wird, überprüft die IVsQueryEditQuerySave2::QuerySaveFiles
Methode, ob die angegebenen Dateien schreibgeschützt sind und ob sie sich unter der Quellcodeverwaltung befinden. Wenn die Dateien ausgecheckt werden müssen, wird der Aufruf an das Quellcodeverwaltungspaket delegiert. Wenn Umstände verhindern, dass die Dateien gespeichert werden, muss die IVsQueryEditQuerySave2::QuerySaveFiles
Methode dem Editor mitteilen, den Speichervorgang abzubrechen. Wie bei der IVsQueryEditQuerySave2::QueryEditFiles
Methode ist es möglich, dass der Aufrufer einen Aufrufmodus angeben kann. Im modus "silent" führt diese Methode nur dann Eine Aktion aus, wenn keine Benutzeroberfläche angezeigt wird. Wenn die Benutzeroberfläche unvermeidbar ist, muss eine Kennzeichnung zurückgegeben werden, um das Problem anzugeben.
Diese Methode muss sich auf transaktionsale Weise verhalten; d. h., wenn die Speicherung in einer einzelnen Datei abgebrochen wird, wird die Speicherung für alle Dateien abgebrochen. Wenn das Speichern zulässig ist, muss er dagegen für alle Dateien zulässig sein. Wie bei der IVsQueryEditQuerySave2::QueryEditFiles
Methode umfassen Fälle, die bei der Implementierung der IVsQueryEditQuerySave2::QuerySaveFiles
Methode berücksichtigt werden sollten, mehrere Dateien, spezielle Dateien, das Abbrechen von Benutzern und In-Memory-Bearbeitungen.