Componentes principais do projeto modelo

As tabelas a seguir expandem o modelo de projeto. As tabelas apresentam breves descrições das interfaces e serviços identificados no modelo, e as interfaces e serviços associados a objetos específicos. Além disso, as tabelas detalham outras interfaces que são opcionais na criação e manutenção do projeto, dependendo dos requisitos do seu tipo de projeto específico.

Para obter mais informações, consulte Dando suporte a ferramentas de navegação de símbolos.

Objeto de pacote

Interface Comentários
IVsPackage Inicializa um VSPackage no IDE e disponibiliza seus serviços para o IDE.

Objeto Project Factory

Interface Comentários
IVsProjectFactory Gerencia a criação de novos projetos e abertura de projetos existentes.

Objetos de projeto

Interfaces Comentários
IVsProject3 Gerencia a adição e remoção de itens de projeto, abre editores e mantém o mapeamento entre cada moniker de documento e o VSITEMID. Herda de IVsProject e IVsProject2.
IVsHierarchy Gerencia propriedades de navegação e exibição e fornece eventos.
IVsUIHierarchy Permite a execução de comandos semelhante à de comandos como Recortar e Renomear que se aplicam somente quando o foco está no Gerenciador de IOleCommandTarget Soluções.
IOleCommandTarget Serve como a interface de destino de comando principal para uma hierarquia de projeto. É a interface padrão para consultar objetos para seu status ou estado de comando e comandos em execução. Disponível quando você não está focado na janela Projeto.
IPersistFileFormat Coordena a persistência do estado do projeto. Normalmente, o estado do projeto é armazenado como um arquivo de projeto, mas pode ser adaptado para sistemas de armazenamento que não são baseados em arquivo.
IVsPersistHierarchyItem2 Permite que o projeto gerencie todos os aspectos de persistência de seus itens de projeto, como arquivos em disco ou objetos em outros sistemas de armazenamento. A IVsPersistHierarchyItem2 interface é usada para itens que não implementam a IVsPersistDocData2 interface.
IVsSccProject2 Coordena as interações com o controle do código-fonte.
IVsProjectFlavorCfgProvider Permite que os projetos gerenciem informações de configuração.
IVsCfgProvider2 Gerencia objetos de configuração do projeto, como configurações de Depuração/Versão. As operações de compilação, implantação e depuração são coordenadas por meio de objetos de configuração do projeto.
IVsHierarchyDeleteHandler Implementado por hierarquias para controlar as opções de exclusão (destrutiva) ou remoção (não destrutiva) de itens de hierarquia. Chame a Interface de Consulta na interface a IVsHierarchyDeleteHandler partir da IVsHierarchy interface.
IVsGetCfgProvider Fornece a opção de implementação de ter o objeto que oferece suporte à IVsCfgProvider2 interface em uma identidade COM diferente do objeto de projeto que implementa a IVsHierarchy interface.
IVsProjectStartupServices Interface opcional implementada para tornar seu projeto extensível por outros desenvolvedores. A IVsProjectStartupServices interface permite que um VSPackage de terceiros registre um GUID que você persiste no arquivo de projeto para que, sempre que o projeto for carregado, você carregue o GUID de serviço de terceiros no arquivo de projeto e chame QueryService esse GUID.
IVsUIHierWinClipboardHelperEvents Implementado por hierarquias de origem em uma UIHierarchy janela para coordenar operações da área de transferência, como recortar, copiar e colar. Use a interface para registrar eventos da AdviseClipboardHelperEvents área de transferência.
IVsHierarchyDropDataSource2 Fornece informações sobre um item arrastado em relação à sua fonte de dados durante uma operação de arrastar e soltar em uma janela de hierarquia da interface do usuário. Chamado a partir da IVsHierarchy interface.
IVsHierarchyDropDataTarget Fornece informações sobre um item arrastado em relação ao seu destino de soltar durante uma operação de arrastar e soltar em uma janela de hierarquia da interface do usuário. Chamado a partir da IVsHierarchy interface.

Objeto de configuração

Interfaces Comentários
IVsCfg Fornece informações sobre uma configuração.
IVsProjectCfg2 Permite que os projetos gerenciem informações de configuração.
IVsDebuggableProjectCfg Permite que um projeto seja executado sob o controle do depurador.
IVsDeployableProjectCfg Implementado por projetos de implantação que executam operações de implantação para outros projetos.

Objeto do Configuration Builder

Interfaces Comentários
IVsBuildableProjectCfg Gerencia a operação de compilação de uma configuração de projeto.

Objetos de projeto adicionais

Interfaces Comentários
IDispatch

ISpecifyPropertyPages
Exibe as propriedades do item na janela Propriedades .
IVsOutput2

IVsEnumOutputs
Exibe saídas para implantação.

A tabela a seguir apresenta breves descrições dos serviços identificados no modelo de projeto.

Serviços

Serviço Comentários
SVsRegisterProjectTypes Usado por VSPackages que implementam tipos de projeto para registrar que sua fábrica de projeto existe com o IDE. Seu VSPackage deve chamar QueryService para esse serviço e registrar sua fábrica de projeto quando IVsPackage::SetSite o método é chamado. Se o SetSite método não for chamado, seu projeto não será instanciado.
SVsSolution Fornece acesso à noção interna e interna do IDE da solução atual, como a capacidade de enumerar projetos, criar novos projetos, tomar conhecimento de alterações de projeto e assim por diante.
SVsSccManager Chamados por projetos que desejam participar do controle de fontes.
SVsRunningDocumentTable Mantém uma tabela de documentos abertos para determinar se um ou mais itens do projeto já estão abertos.
SVsUIShellOpenDocument Contém as interfaces e métodos chamados para realmente abrir um item de projeto usando o editor padrão ou um editor específico.
SVsTrackProjectDocuments Necessário para ser chamado por todos os projetos quando eles adicionam, removem ou renomeiam seus itens.
SVsFileChangeEx Gerencia alterações em um arquivo ou diretório e notifica os clientes quando os arquivos selecionados foram alterados no disco.
SVsQueryEditQuerySave Necessário para ser chamado por todos os projetos e editores antes de sujar itens ou salvá-los.
SVsSolutionBuildManager Gerencia a ordem das operações de compilação e implantação para configurações de projeto.
SVsShellDebugger Fornece acesso a serviços de depurador de baixo nível usados para a maioria dos controles de depuração.
SVsShellMonitorSelection Permite o acesso do VSPackages a informações sobre seleções atuais e permite a comunicação com a janela Propriedades .
SVsUIShell Fornece funcionalidade IDE básica relacionada à interface do usuário, como a capacidade de criar e enumerar janelas de ferramentas ou janelas de documentos ou relatar um erro ao usuário.
SVsStatusbar Fornece acesso à barra de status do IDE.
IVsExtensibility3 Utilizado para implementar o modelo de automação. Em seu modelo de projeto, você retornará um objeto de propriedades que permite criar uma instância desse objeto.
SVsUIHierWinClipboardHelper Usado para implementar eventos da área de transferência no objeto de projeto na hierarquia. SVsUIHierWinClipboardHelper permite manipular corretamente as operações de recortar, copiar e colar.

Confira também