Método IVsQueryEditQuerySave2.QuerySaveFiles (UInt32, Int32, String[], UInt32[], VSQEQS_FILE_ATTRIBUTE_DATA , UInt32)
Publicado: abril de 2016
Notifica o ambiente de vários arquivos estão prestes a ser salvo.
Namespace: Microsoft.VisualStudio.Shell.Interop
Assembly: Microsoft.VisualStudio.Shell.Interop (em Microsoft.VisualStudio.Shell.Interop.dll)
Sintaxe
int QuerySaveFiles(
uint rgfQuerySave,
int cFiles,
string[] rgpszMkDocuments,
uint[] rgrgf,
VSQEQS_FILE_ATTRIBUTE_DATA[] rgFileInfo,
out uint pdwQSResult
)
int QuerySaveFiles(
unsigned int rgfQuerySave,
int cFiles,
array<String^>^ rgpszMkDocuments,
array<unsigned int>^ rgrgf,
array<VSQEQS_FILE_ATTRIBUTE_DATA>^ rgFileInfo,
[OutAttribute] unsigned int% pdwQSResult
)
abstract QuerySaveFiles :
rgfQuerySave:uint32 *
cFiles:int *
rgpszMkDocuments:string[] *
rgrgf:uint32[] *
rgFileInfo:VSQEQS_FILE_ATTRIBUTE_DATA[] *
pdwQSResult:uint32 byref -> int
Function QuerySaveFiles (
rgfQuerySave As UInteger,
cFiles As Integer,
rgpszMkDocuments As String(),
rgrgf As UInteger(),
rgFileInfo As VSQEQS_FILE_ATTRIBUTE_DATA(),
<OutAttribute> ByRef pdwQSResult As UInteger
) As Integer
Parâmetros
- rgfQuerySave
[in] Sinalizadores estão usados atualmente.O chamador deve sempre passar o sinalizador de nulo padrão é zero.
- cFiles
[in] Contagem de arquivos.
- rgpszMkDocuments
[in] Caminho para o arquivo no disco.
- rgrgf
[in] Sinalizadores cujos valores são obtidos a partir do tagVSQEQSFlags enumeração para os atributos de arquivo válido.Padrão = 0.
- rgFileInfo
[in] Extraído de valores a VSQEQS_FILE_ATTRIBUTE_DATA estrutura que contém informações sobre os atributos de arquivo.Can be null; será ignorado se rgrgf é 0.
- pdwQSResult
[out] Ponteiro para um valor extraído de tagVSQuerySaveResult enumeração.
Valor de retorno
Type: System.Int32
Se o método falhar, ele retorna um código de erro.
Se for bem-sucedido, ele retorna:
Salve o arquivo.O arquivo não deve ser somente leitura neste momento.
Este método não tem mostrava um Salvar como caixa de diálogo, mas ambos it silenciosamente está informando a fazer isso, ou o usuário foi solicitado e selecionar Salvar como.Se você estiver editando um arquivo convencional, são incentivados a chamada GetSaveFileNameViaDlg neste momento.
O usuário foi notificado de que o arquivo é somente leitura e optou por não salvar ou cancelar a operação.A escolha depende do BeginQuerySaveBatch / EndQuerySaveBatch métodos.
Observação |
---|
Se o editor está tentando salvar vários arquivos, você deve saber o estado de lote e a diferença entre não e Cancelar.Chamar o QuerySaveFile método para cada arquivo individual.Se o ambiente retornará QSR_NoSave_UserCanceled ou QSR_NoSave_Cancel, e em seguida, o salvamento será cancelado.Se o ambiente retornará QSR_NoSave_Continue, em seguida, de um arquivo em lote não serão salvos, mas você pode continuar a salvar os outros arquivos. |
Os resultados de *pdwQSResult são:
Prosseguir com a salvar (QSR_SaveOK).
Não salvar (QSR_NoSave_Continue).
Save as (QSR_ForceSaveAs).
Cancel Save (QSR_NoSave_UserCanceled or QSR_NoSave_Cancel).
Comentários
COM assinatura
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 de um editor ou projeto salva um arquivo, ele deve chamar este método ou a QuerySaveFile método.Para arquivos de projeto, essas chamadas são automaticamente preenchidas pela solução, que sabe quando salvar um arquivo de projeto.Editores são responsáveis por fazer essas chamadas, a menos que a implementação do editor de IVsPersistDocData2 usa a função auxiliar SaveDocDataToFile método.Se o seu editor implementa IVsPersistDocData2 dessa forma, a chamada para QuerySaveFile método ou QuerySaveFiles é feita para você.
Chame este método antes de salvar qualquer coisa no disco.Ele irá lidar com arquivos somente leitura e check-in de maneira uniforme e compartilhada.
Esse método pode ser necessário emitir um comando de check-out para garantir que o arquivo é gravável (por exemplo, se o arquivo foi editado na memória).Para um provedor de controle de origem que fornece para a opção "checkout local version", essa é uma operação segura.Para um provedor de controle de origem que não, a operação de check-out não pode ser concluída sem perda de dados.Nesse caso, Salvar como é a única opção.
Consulte também
Interface IVsQueryEditQuerySave2
Namespace Microsoft.VisualStudio.Shell.Interop
Retornar ao topo