Compartilhar via


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.

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

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

    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.

System_CAPS_noteObservaçã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:

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