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.