Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O ambiente lida com os comandos Salvar, Salvar como e Salvar tudo. Quando um usuário seleciona Salvar, Salvar como ou Salvar tudo no menu Arquivo ou fecha a solução, resultando em um Salvar tudo, ocorre o seguinte processo.
Tratamento de comandos Guardar, Guardar Como e Guardar Tudo para um editor padrão
Este processo é detalhado nas seguintes etapas:
Quando os comandos Salvar e Salvar como são selecionados, o ambiente usa o SVsShellMonitorSelection serviço para determinar a janela de documento ativa e, portanto, quais itens devem ser salvos. Quando a janela do documento ativo é conhecida, o ambiente localiza o ponteiro da hierarquia e o identificador de item (itemID) do documento na tabela de documentos em execução. Para obter mais informações, consulte Tabela de Documentos em Execução.
Quando o comando Salvar tudo é selecionado, 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 QueryStatus chamada, ela itera através do conjunto de itens selecionados (ou seja, as várias seleções expostas pelo SVsShellMonitorSelection serviço).
Em cada item da seleção, a solução usa o ponteiro de hierarquia para chamar o IsItemDirty método e determinar se o comando de menu Salvar deve ser habilitado. Se um ou mais itens estiverem sujos, o comando Salvar será ativado. Se a hierarquia usa um editor padrão, a hierarquia delega a consulta do 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 em cada uma das hierarquias apropriadas.
É comum que a hierarquia use um editor padrão para editar o documento. Nesse caso, o objeto de dados do documento para esse editor deve suportar a IVsPersistDocData2 interface. Ao receber a chamada do método SaveItem, o projeto deve informar ao editor que o documento está a ser guardado chamando o método SaveDocData no objeto de dados do documento. O editor pode permitir que o ambiente manipule a caixa de diálogo Salvar como, ao chamar a interface SVsUIShell. Isso retorna um ponteiro para a IVsUIShell interface. O editor deve então chamar o SaveDocDataToFile método, passando um ponteiro para a implementação do IPersistFileFormat editor por meio do
pPersistFileparâmetro. Em seguida, o ambiente executa a operação Salvar e fornece a caixa de diálogo Salvar como para o editor. Em seguida, o ambiente faz uma chamada de retorno para o editor com IPersistFileFormat.Se o usuário estiver tentando salvar um documento sem título (ou seja, um documento não salvo anteriormente), um comando Salvar como será realmente executado.
Para o comando Salvar como, o ambiente exibe a caixa de diálogo Salvar como, solicitando ao usuário um nome de arquivo.
Se o nome do arquivo tiver sido alterado, a hierarquia será responsável por atualizar as informações armazenadas em cache do quadro do documento chamando SetProperty(VSFPROPID_MkDocument).
Se o comando Guardar como mudar a localização do documento e a hierarquia for sensível à localização do documento, a hierarquia será responsável por transferir a propriedade da janela do documento aberto para outra hierarquia. Por exemplo, isso ocorre se o projeto controla se o arquivo é um arquivo interno ou externo (Arquivo Diverso) em relação ao projeto. Use o procedimento a seguir para alterar a propriedade de um arquivo para o projeto Miscellaneous Files.
Alterando a propriedade do arquivo
Para alterar a propriedade do arquivo para o projeto Miscellaneous Files
Serviço de consulta para a SVsExternalFilesManager interface.
Um ponteiro para IVsExternalFilesManager2 é devolvido.
Chame o TransferDocument método (
pszMkDocumentNew,punkWindowFrame) para transferir o documento para a nova hierarquia. A hierarquia que executa o comando Salvar como chama esse método.