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.

Valor de retorno

Type: System.Int32

Se o método falhar, ele retorna um código de erro.

Se for bem-sucedido, ele retorna:

  • QSR_SaveOK

  • Salve o arquivo.O arquivo não deve ser somente leitura neste momento.

  • QSR_ForceSaveAs

  • 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.

  • QSR_NoSave_UserCanceled

  • 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:

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