Propriedades e métodos estendidos por subtipos de projeto

Um subtipo de projeto tem muito poder de influenciar o comportamento do projeto porque ele é construído como um agregador de um projeto base. Esta seção resume alguns dos recursos que podem ser aprimorados ou modificados por subtipos de projeto.

Recursos obtidos pela agregação

A tabela a seguir resume muitos dos métodos que a agregação permite que os subtipos de projeto substituam em projetos base.

Métodos substituídos por agregação Subtipo de projeto
De IVsHierarchy:

GetProperty

SetProperty

GetGuidProperty

SetGuidProperty
Permite que um subtipo de projeto para

- Alterar legenda e ícone do nó do projeto.
- Substituir completamente o objeto do projeto Browse .
- Controlar se o projeto pode ser renomeado.
- Controle a ordem de classificação.
- Controle o contexto do usuário para ajuda dinâmica.
De IVsProject:

GetItemContext
Permite que um subtipo de projeto controle quais serviços contextuais são fornecidos a designers e editores.
De IOleCommandTarget:

QueryStatus

Exec

QueryStatusCommand

ExecCommand
Permite que um subtipo de projeto para

- Participar do roteamento de comandos para comandos do projeto.
- Adicionar, remover ou desabilitar os comandos de ambiente do projeto e os comandos ativos do Gerenciador de Soluções.
IVsFilterAddProjectItemDlg2 Permite que o subtipo de projeto filtre o que o usuário vê na caixa de diálogo Adicionar Novo Item .
IVsSingleFileGeneratorFactory Permite que um subtipo de projeto para

- Determine o gerador padrão dado uma extensão de arquivo.
- Mapeie um nome de gerador legível por humanos para um objeto COM.

Propriedades usadas por subtipos de projeto

O ambiente e o sistema de projeto base podem usar as propriedades de e __VSSPROPID2 enumerações detalhadas na tabela a seguir para habilitar um subtipo de projeto para controlar vários recursos do sistema de __VSSPROPID projeto.

Propriedade VSHPROPID Subtipo de projeto
AddItemTemplatesGuid Permite que um subtipo de projeto controle o conteúdo da caixa de diálogo Adicionar Item . O subtipo de projeto pode fornecer uma nova especificação de diretórios de modelo, adicionar novos tipos de itens, remover itens existentes e reorganizar um subconjunto dos itens na caixa de diálogo Adicionar Item do projeto base.
PropertyPagesCLSIDList Permite que um subtipo de projeto adicione ou remova páginas de propriedades independentes de configuração.
CfgPropertyPagesCLSIDList Permite que um subtipo de projeto adicione ou remova páginas de propriedades dependentes da configuração.
ExtObjectCATID Permite que um subtipo de projeto forneça um Extensor de Automação para os objetos de projeto ou item de projeto conhecendo o CATID do Extensor. Por exemplo, um subtipo de projeto pode fornecer um objeto personalizado Project.Extender("<subtype>") .
BrowseObjectCATID Permite que um subtipo de projeto forneça um extensor de automação para o objeto conhecendo o Browse extensor CAID. Por exemplo, um subtipo de projeto pode adicionar propriedades extras à Properties coleção.
CfgBrowseObjectCATID Permite que um subtipo de projeto forneça um Extensor de Automação para o objeto de pesquisa de configuração do projeto. Por exemplo, um subtipo de projeto pode adicionar propriedades extras à Properties coleção.
CfgExtObjectCATID Permite que um subtipo de projeto forneça um Extensor de Automação para o objeto de configuração.
DefaultPlatformName Permite que um subtipo de projeto determine o nome da plataforma para os objetos de configuração do projeto.

O projeto base fornece uma implementação padrão das propriedades acima. O projeto base os obtém chamando QueryInterface IVsHierarchy o subtipo de projeto mais externo, permitindo assim que o subtipo de projeto substitua a implementação das propriedades.

Confira também