Método IVsQueryEditQuerySave2.QuerySaveFile (String, UInt32, VSQEQS_FILE_ATTRIBUTE_DATA , UInt32)
Publicado: abril de 2016
Notifica o ambiente de um arquivo está prestes a ser salvo.
Namespace: Microsoft.VisualStudio.Shell.Interop
Assembly: Microsoft.VisualStudio.Shell.Interop (em Microsoft.VisualStudio.Shell.Interop.dll)
Sintaxe
int QuerySaveFile(
string pszMkDocument,
uint rgf,
VSQEQS_FILE_ATTRIBUTE_DATA[] pFileInfo,
out uint pdwQSResult
)
int QuerySaveFile(
String^ pszMkDocument,
unsigned int rgf,
array<VSQEQS_FILE_ATTRIBUTE_DATA>^ pFileInfo,
[OutAttribute] unsigned int% pdwQSResult
)
abstract QuerySaveFile :
pszMkDocument:string *
rgf:uint32 *
pFileInfo:VSQEQS_FILE_ATTRIBUTE_DATA[] *
pdwQSResult:uint32 byref -> int
Function QuerySaveFile (
pszMkDocument As String,
rgf As UInteger,
pFileInfo As VSQEQS_FILE_ATTRIBUTE_DATA(),
<OutAttribute> ByRef pdwQSResult As UInteger
) As Integer
Parâmetros
- pszMkDocument
[in] Caminho para o arquivo (documento a ser salvo) no disco.
- rgf
[in] Sinaliza cujos valores para atributos de arquivo válido são obtidos a partir do tagVSQEQSFlags enumeração.O valor padrão é zero.
- pFileInfo
[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 rgf é 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.
QuerySaveFilenã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 selecionou Salvar como.Se você estiver editando um arquivo convencional, são incentivados a chamar o GetSaveFileNameViaDlg método na IVsUIShell interface 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.
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 QuerySaveFile(
[in] LPCOLESTR pszMkDocument,
[in] VSQEQSFlags rgf,
[in] const VSQEQS_FILE_ATTRIBUTE_DATA *pFileInfo,
[out, retval] VSQuerySaveResult *pdwQSResult
);
Antes de um editor ou projeto salva um arquivo, ele deve chamar este método ou a QuerySaveFiles método.Para arquivos de projeto, essas chamadas são preenchidas automaticamente com a 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 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 pacote de controle de origem que fornece para a opção "checkout local version", essa é uma operação segura.Para um pacote 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