IVsQueryEditQuerySave2.QuerySaveFiles(UInt32, Int32, String[], UInt32[], VSQEQS_FILE_ATTRIBUTE_DATA[], UInt32) Methode

Definition

Benachrichtigt die Umgebung, dass mehrere Dateien im Begriff sind, gespeichert zu werden.

public:
 int QuerySaveFiles(System::UInt32 rgfQuerySave, int cFiles, cli::array <System::String ^> ^ rgpszMkDocuments, cli::array <System::UInt32> ^ rgrgf, cli::array <Microsoft::VisualStudio::Shell::Interop::VSQEQS_FILE_ATTRIBUTE_DATA> ^ rgFileInfo, [Runtime::InteropServices::Out] System::UInt32 % pdwQSResult);
int QuerySaveFiles(unsigned int rgfQuerySave, int cFiles, std::Array <std::wstring const &> const & rgpszMkDocuments, std::Array <unsigned int> const & rgrgf, std::Array <Microsoft::VisualStudio::Shell::Interop::VSQEQS_FILE_ATTRIBUTE_DATA> const & rgFileInfo, [Runtime::InteropServices::Out] unsigned int & pdwQSResult);
public int QuerySaveFiles (uint rgfQuerySave, int cFiles, string[] rgpszMkDocuments, uint[] rgrgf, Microsoft.VisualStudio.Shell.Interop.VSQEQS_FILE_ATTRIBUTE_DATA[] rgFileInfo, out uint pdwQSResult);
abstract member QuerySaveFiles : uint32 * int * string[] * uint32[] * Microsoft.VisualStudio.Shell.Interop.VSQEQS_FILE_ATTRIBUTE_DATA[] * uint32 -> int
Public Function QuerySaveFiles (rgfQuerySave As UInteger, cFiles As Integer, rgpszMkDocuments As String(), rgrgf As UInteger(), rgFileInfo As VSQEQS_FILE_ATTRIBUTE_DATA(), ByRef pdwQSResult As UInteger) As Integer

Parameter

rgfQuerySave
UInt32

[in] Flags werden derzeit nicht verwendet. Der Aufrufer sollte immer das standardmäßige NULL-Flag übergeben.

cFiles
Int32

[in] Dateianzahl.

rgpszMkDocuments
String[]

[in] Pfad zur Datei auf dem Datenträger.

rgrgf
UInt32[]

[in] Flags, deren Werte aus der tagVSQEQSFlags-Enumeration für gültige Dateiattribute übernommen werden. Standardwert = 0.

rgFileInfo
VSQEQS_FILE_ATTRIBUTE_DATA[]

[in] Die Werte aus der VSQEQS_FILE_ATTRIBUTE_DATA-Struktur, die Informationen über die Dateiattribute enthält. Kann sein null ; wird ignoriert, wenn rgrgf 0 ist.

pdwQSResult
UInt32

[out] Zeiger auf einen Wert aus der tagVSQuerySaveResult-Enumeration.

Gibt zurück

Int32

Wenn die Methode fehlschlägt, wird ein Fehlercode zurückgegeben. Wenn dies erfolgreich ist, wird Folgendes zurückgegeben: QSR_SaveOK Speichern Sie die Datei. Die Datei sollte an diesem Punkt nicht schreibgeschützt sein. QSR_ForceSaveAs Diese Methode hat kein Dialogfeld "Speichern unter" eingefügt, aber Sie wird entweder in Ruhe zu diesem Zweck aufgefordert, oder der Benutzer wurde aufgefordert und hat "Speichern unter" ausgewählt. Wenn Sie eine normalen Datei bearbeiten, wird Ihnen empfohlen, GetSaveFileNameViaDlg(VSSAVEFILENAMEW[]) an diesem Punkt aufzurufen. QSR_NoSave_UserCanceled Der Benutzer wurde benachrichtigt, dass die Datei schreibgeschützt ist, und hat entschieden, nicht zu speichern oder den Vorgang abzubrechen. Die Auswahl hängt von den- BeginQuerySaveBatch() / EndQuerySaveBatch() Methoden ab. Wenn der Editor versucht, mehrere Dateien zu speichern, müssen Sie den Batch Verarbeitungs Status und den Unterschied zwischen "Nein" und "Abbrechen" kennen. Rufen Sie die QuerySaveFile(String, UInt32, VSQEQS_FILE_ATTRIBUTE_DATA[], UInt32)-Methode für jede einzelne Datei auf. Wenn die Umgebung QSR_NoSave_UserCanceled oder QSR_NoSave_Cancel zurückgibt, wird die Speichern abgebrochen. Wenn die Umgebung zurückgibt QSR_NoSave_Continue , wird diese eine Datei im Batch nicht gespeichert, aber Sie können weiterhin die anderen Dateien speichern. Die Ergebnisse für lauten *pdwQSResult : Vorgang mit Save ( QSR_SaveOK ) fortsetzen. Nicht speichern ( QSR_NoSave_Continue ). Speichern unter ( QSR_ForceSaveAs ). Brechen Sie den Vorgang ab ( QSR_NoSave_UserCanceled oder QSR_NoSave_Cancel ).

Hinweise

COM-Signatur

Aus ivsqueryeditquerysave2. idl

HRESULT QuerySaveFiles(  
   [in] VSQuerySaveFlags rgfQuerySave,  
   [in] int cFiles,  
   [in, size_is(cFiles)] const LPCOLESTR rgpszMkDocuments[],  
   [in, size_is(cFiles)] const VSQEQSFlags rgrgf[],  
   [in, size_is(cFiles)] const VSQEQS_FILE_ATTRIBUTE_DATA rgFileInfo[],  
   [out, retval] VSQuerySaveResult *pdwQSResult  
);  

Bevor ein Projekt oder Editor eine Datei speichert, muss diese Methode oder die-Methode aufgerufen werden QuerySaveFile . Bei Projektdateien werden diese Aufrufe automatisch von der Projekt Mappe abgeschlossen, die weiß, wann eine Projektdatei gespeichert werden soll. Editoren sind für diese Aufrufe zuständig, es sei denn, die Editor-Implementierung von IVsPersistDocData2 verwendet die hilfsfunktions SaveDocDataToFile Methode. Wenn IVsPersistDocData2 der Editor auf diese Weise implementiert, wird der Methodenaufrufe QuerySaveFile oder QuerySaveFiles für Sie durchgeführt.

Ruft diese Methode auf, bevor alles auf dem Datenträger gespeichert wird. Sie verarbeitet schreibgeschützte und eingecheckte Dateien auf einheitliche, freigegebene Weise.

Diese Methode muss möglicherweise einen Checkout-Befehl ausgeben, um sicherzustellen, dass die Datei beschreibbar ist (z. b. wenn die Datei im Arbeitsspeicher bearbeitet wurde). Bei einem Quell Code Verwaltungs Anbieter, der für die Option "lokale Version Auschecken" bereitstellt, handelt es sich hierbei um einen sicheren Vorgang. Für einen Quell Code Verwaltungs Anbieter, der nicht verwendet wird, kann der Checkout-Vorgang ohne Datenverlust nicht abgeschlossen werden. In diesem Fall ist " Speichern unter" die einzige Option.

Gilt für