Compartilhar via


Determinando quais abre no Editor de um arquivo em um projeto.

Quando um usuário abre um arquivo em um projeto, o ambiente vai através de um processo de polling, eventualmente, abrindo o editor apropriado ou o criador desse arquivo. O procedimento inicial empregado pelo ambiente é o mesmo para editores de padrão e personalizados. O ambiente usa uma variedade de critérios ao sondar qual editor usar para abrir um arquivo e o VSPackage deve coordenar com o ambiente durante esse processo.

Por exemplo, quando um usuário seleciona a Abrir comando o arquivo menu e escolhe filename. RTF (ou qualquer outro arquivo com uma extensão. rtf), as chamadas do ambiente a IsDocumentInProject implementação para cada projeto, eventualmente, percorrer todas as instâncias do projeto na solução. Projetos retornam um conjunto de sinalizadores que identificam as declarações em um documento por prioridade. Com a prioridade mais alta, o ambiente chama o apropriado OpenItem método. Para obter mais informações sobre o processo de polling, Adicionando o projeto e modelos de Item de projeto.

Projeto arquivos diversos afirma que todos os arquivos que não são reclamados pelos outros projetos. Dessa forma, editores personalizados podem abrir documentos antes editores padrão abri-los. Se um projeto arquivos diversos queixe-se um arquivo, o ambiente chama o OpenStandardEditor método para abrir o arquivo com um editor padrão. O ambiente verifica sua lista interna de editores registrados por um que lida com arquivos. rtf. Esta lista está localizada na seguinte chave do registro:

HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\ <versão> \Editors\ {<guid da fábrica de editor>} \Extensions]

O ambiente também verifica os identificadores de classe na chave HKEY_CLASSES_ROOT\CLSID. para quaisquer objetos que tenham uma subchave DocObject. Se a extensão de arquivo for encontrada, uma versão incorporada do aplicativo, como o Microsoft Word, é criada no local em Visual Studio. Esses objetos de documento devem ser compostos arquivos que implementam o IPersistStorage interface ou o objeto deve implementar a IPersistFileFormat interface.

Se não houver nenhuma fábrica de editor para arquivos. rtf no registro, o ambiente examina a chave do \.rtf HKEY_CLASSES_ROOT e abre o editor especificado ali. Se a extensão de arquivo não for encontrada em HKEY_CLASSES_ROOT, o ambiente usa o editor de texto de núcleo de Visual Studio para abrir o arquivo se ele for um arquivo de texto.

Se o editor de texto principal falhar, o que ocorre que se o arquivo não é um arquivo de texto, em seguida, o ambiente usa seu editor binário para o arquivo.

Se o ambiente de encontrar um editor para a extensão. rtf no seu registro, ele carrega o VSPackage que implementa esta fábrica de editor. As chamadas do ambiente de SetSite o VSPackage novo método. As chamadas VSPackage QueryService para SID_SVsRegistorEditor, usando o RegisterEditor método para registrar a fábrica de editor com o ambiente.

O ambiente agora re-checks a sua lista interna de editores registrados para encontrar a fábrica de editor registrado recentemente para arquivos. rtf. O ambiente chama a implementação da CreateEditorInstance método, passando o tipo de nome e o modo de exibição de arquivo para criar.

Consulte também

Referência

IPersistFileFormat

IPersistStorage

SetSite

IsDocumentInProject

OpenItem

OpenStandardEditor