Compartilhar via


Editores padrão aberto

Ao abrir um editor padrão, você permite que o IDE determine um editor padrão para um tipo de arquivo designado, em vez de especificar um editor específico do projeto para o arquivo.

Conclua o procedimento a seguir para implementar o OpenItem método. Isso abrirá um arquivo de projeto em um editor padrão.

Para implementar o método OpenItem com um editor padrão

  1. Chame IVsRunningDocumentTable (RDT_EditLock) para determinar se o arquivo de objeto de dados do documento já está aberto.

  2. Se o arquivo já estiver aberto, reapareça o arquivo chamando o método, especificando um valor de IDO_ActivateIfOpen para o IsDocumentOpen grfIDO parâmetro.

    Se o arquivo estiver aberto e o documento pertencer a um projeto diferente do projeto de chamada, seu projeto receberá um aviso de que o editor que está sendo aberto é de outro projeto. A janela do arquivo é então exibida.

  3. Se o documento não estiver aberto ou não estiver na tabela de documentos em execução, chame o método (OSE_ChooseBestStdEditor) para abrir um editor padrão para o OpenStandardEditor arquivo.

    Quando você chama o método, o IDE executa as seguintes tarefas:

    1. O IDE verifica a subchave Editors/{guidEditorType}/Extensions no registro para determinar qual editor pode abrir o arquivo e tem a prioridade mais alta para fazer isso.

    2. Depois que o IDE determinar qual editor pode abrir o arquivo, o IDE chama CreateEditorInstance. A implementação desse método pelo editor retorna informações necessárias para que o IDE chame CreateDocumentWindow e coloque no site o documento recém-aberto.

    3. Finalmente, o IDE carrega o documento usando a interface de persistência usual, como IVsPersistDocData2.

    4. Se o IDE tiver determinado anteriormente que a hierarquia ou o item de hierarquia está disponível, o IDE chama GetItemContext o método no projeto para obter um ponteiro de contexto IServiceProvider no nível do projeto para passar de volta com a chamada de CreateDocumentWindow método.

  4. Retorne um IServiceProvider ponteiro para o IDE quando o IDE chamar GetItemContext seu projeto se você quiser permitir que o editor obtenha contexto do seu projeto.

    A execução desta etapa permite que o projeto ofereça serviços adicionais ao editor.

    Se o objeto de exibição de documento ou de exibição de documento foi localizado com êxito em um quadro de janela, o objeto será inicializado com seus dados chamando LoadDocData.