Compartilhar via


Salvando um documento personalizado

O ambiente manipula os comandos Salvar, Salvar como e Salvar Tudo . Quando um usuário clica em Salvar, Salvar comoou Salvar Tudo no menu Arquivo ou fecha a solução, resultando em um Salvar Tudo, o processo a seguir ocorre.

Editor do Cliente Salvar Privado

Salvar, salvar como e salvar todos os tratamentos de comando para um editor personalizado

Esse processo é detalhado nas seguintes etapas:

  1. Para os comandos Salvar e Salvar como , o ambiente usa o SVsShellMonitorSelection serviço para determinar a janela do documento ativo e, portanto, quais itens devem ser salvos. Uma vez identificada a janela ativa do documento, o ambiente localiza o ponteiro da hierarquia e o identificador de item (itemID) para o documento na tabela de documentos em execução. Para obter mais informações, consulte Como executar a tabela de documentos.

    Para o comando Salvar Tudo, o ambiente usa as informações na tabela de documentos em execução para compilar a lista de todos os itens a serem salvos.

  2. Quando a solução recebe uma chamada QueryStatus, ela percorre o conjunto de itens selecionados (ou seja, as várias seleções expostas pelo serviço SVsShellMonitorSelection).

  3. Em cada item na seleção, a solução usa o ponteiro de hierarquia para chamar o IsItemDirty método para determinar se o comando salvar menu deve ser habilitado. Se um ou mais itens estiverem sujos, o comando Salvar estará habilitado. Se a hierarquia usar um editor padrão, a hierarquia delega a consulta de status sujo ao editor chamando o IsDocDataDirty método.

  4. Em cada item selecionado que está sujo, a solução usa o ponteiro de hierarquia para chamar o método SaveItem nas hierarquias apropriadas.

    No caso de um editor personalizado, a comunicação entre o objeto de dados do documento e o projeto é privada. Portanto, quaisquer preocupações especiais de persistência são tratadas entre esses dois objetos.

    Observação

    Se você implementar sua própria persistência, chame o método QuerySaveFiles para economizar tempo. Esse método verifica se é seguro para salvar o arquivo (por exemplo, o arquivo não é somente de leitura).