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
Chame IVsRunningDocumentTable (
RDT_EditLock
) para determinar se o arquivo de objeto de dados do documento já está aberto.Se o arquivo já estiver aberto, reapareça o arquivo chamando o método, especificando um valor de
IDO_ActivateIfOpen
para o IsDocumentOpengrfIDO
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.
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:
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.
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.
Finalmente, o IDE carrega o documento usando a interface de persistência usual, como IVsPersistDocData2.
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.
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.