Ativação in-loco
Se o modo de exibição do editor hospedar ActiveX ou outros controles de ativos, você deve implementar o seu modo de exibição do editor como um controle de ActiveX ou como um objeto de dados do documento ativo usando o modelo de ativação no local.
Suporte para Menus, barras de ferramentas e comandos
Visual Studio permite a exibição de editor para utilizar os menus e barras de ferramentas do IDE. Essas extensões são chamadas de OLE in loco componentes. Para obter mais informações, consulte o IOleInPlaceComponent e IOleInPlaceComponentUIManager.
Se você implementar um controle ActiveX, você pode hospedar outros objetos incorporados. Se você implementar um objeto de dados do documento, a moldura da janela limita sua capacidade de usar os controles de ActiveX.
Dica
O IOleDocument e IOleDocumentView interface permite uma separação de dados e o modo de exibição.Entretanto, o Visual Studio não oferece suporte a essa funcionalidade, e essas interfaces são usadas apenas para representar o objeto de exibição do documento.
Editores que usam o SOleComponentUIManager serviço pode fornecer o menu, barra de ferramentas e a integração do comando chamando os métodos da IOleInPlaceComponentUIManager interface implementada pela SOleComponentUIManager service. Editores podem também oferecem outras funcionalidades de Visual Studio, como, por exemplo, seleção de controle, a macro gravando e desfazer o gerenciamento. Para obter mais informações, consulte Criação de Designers e editores de texto personalizado.
Objetos e Interfaces usadas
Os objetos que são usados para criar a ativação in-loco são mostrados na ilustração a seguir.
Editor de ativação in-loco
Dica
Objetos deste desenho, somente o CYourEditorFactory objeto é necessário para criar um editor padrão.Se você estiver criando um editor personalizado, você não é necessário para implementar IVsPersistDocData2 porque seu editor provavelmente terá seu próprio mecanismo de persistência particular.Para obter mais informações, consulte Criação de Designers e editores de texto personalizado.
Todas as interfaces que são implementadas para criar uma ativação in-loco editor são mostradas na única CYourEditorDocument objeto, mas esta configuração suporta apenas um único modo de exibição de dados do documento. Para obter mais informações sobre o suporte a vários modos de exibição dos dados do documento, consulte Suporte a vários modos de exibição de documento.
Interface |
Tipo de objeto |
Uso |
---|---|---|
View |
Permite que objetos de VSPackage in loco operar como componentes totalmente integradas do IDE usando o SOleComponentUIManager service. Esse serviço integra os menus, barras de ferramentas e comandos do objeto ao IDE e emite notificações de alterações de estado. |
|
View |
Principais meios pelos quais um objeto incorporado fornece funcionalidade básica para seu recipiente e se comunica com ele. |
|
View |
Gerencia a ativação e desativação de objetos no local e, em seguida, determina quanto do objeto no local deve estar visível. |
|
View |
Fornece um canal direto de comunicação entre um objeto no local, janela de quadro mais externo do aplicativo associado e a janela de documento no aplicativo que contém o objeto incorporado. |
|
View |
Implementa um objeto ActiveX. Observe que os métodos de IOleDocument e T:Microsoft.VisualStudio.OLE.Interop.IOleDocumentView dados de documento separado e o modo de exibição não são usadas no IDE. |
|
Exibir/dados |
Permite que o objeto de dados do documento, o objeto de exibição de documento ou ambos para participar de manipulação de comando. |
|
View |
Permite atualizações da barra de status. |
|
View |
Permite adicionar itens à caixa de ferramentas. |
|
Dados |
Envia a notificação de alterações para o arquivo editado. (Essa interface é opcional). |
|
Dados |
Usado para habilitar o recurso Salvar como para um tipo de arquivo. |
|
Dados |
Permite a persistência para o documento. Para arquivos somente leitura, ligue para SetDocDataReadOnly para fornecer o ícone "bloquear" que indica os arquivos somente leitura. |
|
Dados |
Determina se as alterações nos dados do documento devem ser ignoradas. |