Partilhar via


Interface do usuário de propriedades do projeto

Um subtipo de projeto pode usar os itens na caixa de diálogo Páginas de Propriedades do projeto conforme eles são fornecidos pelo projeto base, ocultar ou tornar controles somente leitura e páginas inteiras conforme fornecido, ou adicionar páginas específicas do subtipo do projeto à caixa de diálogo Páginas de Propriedades.

Estendendo a caixa de diálogo Propriedade do projeto

Um subtipo de projeto implementa extensores de automação e objetos de navegação de configuração de projeto. Esses extensores implementam a IFilterProperties interface para tornar determinadas propriedades ocultas ou somente leitura. A caixa de diálogo Páginas de Propriedades do projeto base, implementada pelo projeto base, honra a filtragem executada pelos Extensores de Automação.

O processo de extensão de uma caixa de diálogo Propriedade do Projeto é descrito abaixo:

Para determinar os CATIDs para o escopo do projeto, o subtipo de projeto recupera as propriedades acima para VSITEMID. Raiz do VSITEMID typedef. Um subtipo de projeto também pode querer controlar quais páginas de caixa de diálogo Páginas de propriedades são exibidas para o projeto, dependendo da configuração e independente da configuração. Alguns subtipos de projeto podem precisar remover páginas internas e adicionar páginas específicas de subtipo de projeto. Para habilitar isso, o projeto de cliente gerenciado chama o GetProperty método para as seguintes propriedades:

  • VSHPROPID_PropertyPagesCLSIDList — uma lista delimitada por ponto-e-vírgula de CLSIDs de páginas de propriedades independentes de configuração.

  • VSHPROPID_CfgPropertyPagesCLSIDList — uma lista delimitada por ponto-e-vírgula de CLSIDs de páginas de propriedades dependentes de configuração.

Como o subtipo de projeto agrega o IVsHierarchy objeto, ele pode substituir a definição dessas propriedades para controlar quais caixas de diálogo Páginas de Propriedades são exibidas. O subtipo de projeto pode recuperar essas propriedades do projeto base interno e, em seguida, adicionar ou remover CLSIDs conforme necessário.

Novas páginas de propriedades adicionadas por um subtipo de projeto recebem um objeto de navegação de configuração de projeto da implementação do projeto base. Este objeto de navegação de configuração de projeto oferece suporte a extensores de automação. Para obter mais informações sobre AutomationExtenders, consulte Implementando e usando extensores de automação. As páginas de propriedades implementadas pela chamada Extender[] de subtipo de projeto para recuperar seu próprio objeto de navegação de configuração de subtipo de projeto que estende o objeto de navegação de configuração do projeto base.

Confira também