Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.
Salvar, salvar como e salvar todos os tratamentos de comando para um editor personalizado
Esse processo é detalhado nas seguintes etapas:
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.
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).
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.
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).