IVsQueryEditQuerySave2.QuerySaveFiles(UInt32, Int32, String[], UInt32[], VSQEQS_FILE_ATTRIBUTE_DATA[], UInt32) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Notifica o ambiente que vários arquivos estão prestes a serem salvos.
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
Parâmetros
- rgfQuerySave
- UInt32
no Os sinalizadores não são usados no momento. O chamador deve sempre passar o sinalizador NULL padrão, que é zero.
- cFiles
- Int32
no Contagem de arquivos.
- rgpszMkDocuments
- String[]
no Caminho para o arquivo no disco.
- rgrgf
- UInt32[]
no Sinalizadores cujos valores são obtidos da tagVSQEQSFlags enumeração para atributos de arquivo válidos. Padrão = 0.
- rgFileInfo
- VSQEQS_FILE_ATTRIBUTE_DATA[]
no Valores extraídos da VSQEQS_FILE_ATTRIBUTE_DATA estrutura que contém informações sobre os atributos do arquivo. Pode ser null ; será ignorado se rgrgf for 0.
- pdwQSResult
- UInt32
fora Ponteiro para um valor obtido da tagVSQuerySaveResult enumeração.
Retornos
Se o método falhar, ele retornará um código de erro. Se tiver sucesso, retornará: QSR_SaveOK
Salve o arquivo. O arquivo não deve ser somente leitura neste ponto.
QSR_ForceSaveAs
Esse método não criou uma caixa de diálogo Salvar como, mas está informando que você pode fazer isso, ou o usuário foi solicitado e selecionou salvar como. Se você estiver editando um arquivo convencional, você será incentivado a chamar GetSaveFileNameViaDlg(VSSAVEFILENAMEW[]) neste ponto.
QSR_NoSave_UserCanceled
O usuário foi notificado de que o arquivo é somente leitura e optou por não salvar ou para cancelar a operação. A escolha depende dos BeginQuerySaveBatch() / EndQuerySaveBatch() métodos. Se o editor estiver tentando salvar vários arquivos, você deverá saber o estado de envio em lote e a diferença entre não e cancelar. Chame o QuerySaveFile(String, UInt32, VSQEQS_FILE_ATTRIBUTE_DATA[], UInt32) método para cada arquivo individual. Se o ambiente retornar QSR_NoSave_UserCanceled ou QSR_NoSave_Cancel , o salvamento será cancelado. Se o ambiente retornar QSR_NoSave_Continue , então um arquivo no lote não será salvo, mas você poderá continuar salvando os outros arquivos. Os resultados para *pdwQSResult são: continuar com Save ( QSR_SaveOK ). Não salvar ( QSR_NoSave_Continue ). Salvar como ( QSR_ForceSaveAs ). Cancelar salvamento ( QSR_NoSave_UserCanceled ou QSR_NoSave_Cancel ).
Comentários
Assinatura COM
De 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
);
Antes que um projeto ou editor salve um arquivo, ele deve chamar esse método ou o QuerySaveFile método. Para arquivos de projeto, essas chamadas são automaticamente concluídas pela solução, que sabe quando salvar um arquivo de projeto. Os editores são responsáveis por fazer essas chamadas, a menos que a implementação do editor de IVsPersistDocData2 use o método de função auxiliar SaveDocDataToFile . Se o seu editor for implementado IVsPersistDocData2 dessa forma, a chamada para o QuerySaveFile método ou QuerySaveFiles será feita para você.
Chame esse método antes de salvar qualquer coisa no disco. Ele tratará arquivos somente leitura e com check-in feito de maneira uniforme e compartilhada.
Esse método pode precisar emitir um comando de check-out para garantir que o arquivo seja gravável (por exemplo, se o arquivo foi editado na memória). Para um provedor de controle do código-fonte que fornece a opção "fazer check-out da versão local", essa é uma operação segura. Para um provedor de controle do código-fonte que não tem, a operação de check-out não pode ser concluída sem perda de dados. Nesse caso, Save as é a única opção.