IVsQueryEditQuerySave2.QuerySaveFiles(UInt32, Int32, String[], UInt32[], VSQEQS_FILE_ATTRIBUTE_DATA[], UInt32) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Уведомляет среду, что скоро будут сохранены несколько файлов.
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
Параметры
- rgfQuerySave
- UInt32
[in] В настоящее время флаги не используются. Вызывающий объект должен всегда передавать флаг по умолчанию null, то есть ноль.
- cFiles
- Int32
[in] Количество файлов.
- rgpszMkDocuments
- String[]
[in] Путь к файлу на диске.
- rgrgf
- UInt32[]
[in] Флаги, значения которых берутся из перечисления tagVSQEQSFlags для допустимых атрибутов файла. По умолчанию равно 0.
- rgFileInfo
- VSQEQS_FILE_ATTRIBUTE_DATA[]
[in] Значения, взятые из структуры VSQEQS_FILE_ATTRIBUTE_DATA, содержащей сведения об атрибутах файла. Может быть null ; игнорируется, если rgrgf равен 0.
- pdwQSResult
- UInt32
[out] Указатель на значение, полученное из перечисления tagVSQuerySaveResult.
Возвращаемое значение
Если метод завершается с ошибкой, возвращается код ошибки. Если оно завершается, возвращается следующее: QSR_SaveOK
Сохраните файл. На этом этапе файл должен быть доступен не только для чтения.
QSR_ForceSaveAs
Этот метод не поместил диалоговое окно «Сохранить как», но либо он не говорит о необходимости, либо пользователь получил запрос и выбрал сохранить как. Если редактируется обычный файл, то рекомендуется вызвать GetSaveFileNameViaDlg(VSSAVEFILENAMEW[]) на этом этапе.
QSR_NoSave_UserCanceled
Пользователь был уведомлен, что файл доступен только для чтения и выбрал не сохранять или отменить операцию. Выбор зависит от BeginQuerySaveBatch() / EndQuerySaveBatch() методов. Если редактор пытается сохранить несколько файлов, необходимо выяснить состояние пакетной обработки, а также разницу между отсутствием и отменой. Вызов метода QuerySaveFile(String, UInt32, VSQEQS_FILE_ATTRIBUTE_DATA[], UInt32) для каждого отдельного файла. Если среда возвращает QSR_NoSave_UserCanceled или QSR_NoSave_Cancel, то сохранить отменено. Если среда возвращает QSR_NoSave_Continue , то один файл в пакете не будет сохранен, но можно продолжить сохранение других файлов. Результаты для *pdwQSResult : продолжить сохранение ( QSR_SaveOK ). Не сохраняйте ( QSR_NoSave_Continue ). Сохранить как ( QSR_ForceSaveAs ). Отмените сохранение ( QSR_NoSave_UserCanceled или QSR_NoSave_Cancel ).
Комментарии
Подпись COM
Из 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
);
Прежде чем проект или редактор сохранит файл, он должен вызвать этот метод или QuerySaveFile метод. Для файлов проекта эти вызовы автоматически выполняются решением, которое знает, когда следует сохранять файл проекта. Редакторы отвечают за выполнение этих вызовов, если только в реализации редактора не IVsPersistDocData2 используется метод вспомогательной функции SaveDocDataToFile . Если редактор реализует IVsPersistDocData2 таким образом, вызывается QuerySaveFile метод или QuerySaveFiles .
Вызовите этот метод перед сохранением чего-либо на диск. Он будет работать с файлами, которые доступны только для чтения и возвращаемые файлы, единым общим способом.
Этот метод может потребовать выдать команду извлечения, чтобы убедиться, что файл доступен для записи (например, если файл был изменен в памяти). Для поставщика системы управления версиями, который предоставляет параметр "Извлечь локальную версию", это операция является надежной. Для поставщика системы управления версиями, не имеющего, операция извлечения не может быть завершена без потери данных. В этом случае единственным вариантом является " Сохранить как ".