Freigeben über


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.