Uživatelské rozhraní vlastností projektu
Podtyp projektu může použít položky v dialogovém okně Stránky vlastností projektu, které jsou poskytovány základním projektem, skrýt nebo nastavit ovládací prvky jen pro čtení a celé stránky podle potřeby, nebo přidat stránky specifické pro projekt podtypů do dialogového okna Stránky vlastností.
Rozšíření dialogového okna vlastností projektu
Podtyp projektu implementuje rozšiřující objekty pro automatizaci a konfiguraci projektu. Tyto rozšiřující moduly implementují IFilterProperties rozhraní, aby byly určité vlastnosti skryté nebo jen pro čtení. Dialogové okno Stránky vlastností základního projektu, implementované základním projektem, respektuje filtrování prováděné extendery automation.
Proces rozšíření dialogového okna Vlastností projektu je uveden níže:
Základní projekt načte rozšiřující moduly z podtypu projektu implementací IInternalExtenderProvider rozhraní. Procházet, automatizace projektů a konfigurace projektu procházet objekty základního projektu všechny implementovat toto rozhraní.
Implementace objektu IInternalExtenderProvider procházení projektu a objekt automatizace projektu deleguje na IInternalExtenderProvider implementaci agregátoru podtypu projektu (to znamená, že
QueryInterface
pro IInternalExtenderProvider IVsHierarchy objekt projektu).Objekt procházení základního projektu také implementuje IInternalExtenderProvider přímé připojení v extenderu Automation z objektu konfigurace podtypu projektu. Jeho implementace deleguje na IInternalExtenderProvider rozhraní implementované agregátorem podtypu projektu.
GetProjectItem, implementovaný objektem procházení konfigurace projektu, vrátí IVsHierarchy objekt.
GetCfg, také implementované objektem procházení konfigurace projektu, vrátí IVsCfg objekt.
Podtyp projektu může určit odpovídající identifikátory CATID pro různé rozšiřitelné objekty základního projektu za běhu načtením následujících __VSHPROPID2 hodnot:
Pokud chcete určit identifikátory CATID pro obor projektu, podtyp projektu načte výše uvedené vlastnosti pro VSITEMID. Kořen z VSITEMID typedef
adresáře . Podtyp projektu může také chtít určit, které stránky dialogového okna Stránky vlastností se zobrazí pro projekt, a to jak závislé na konfiguraci, tak nezávisle na konfiguraci. Některé podtypy projektu můžou potřebovat odebrat předdefinované stránky a přidat konkrétní stránky podtypu projektu. Aby to bylo možné povolit, spravovaný klientský projekt volá metodu GetProperty pro následující vlastnosti:
VSHPROPID_PropertyPagesCLSIDList
— středník oddělený seznam identifikátorů CLSID stránek vlastností nezávislých na konfiguraci.VSHPROPID_CfgPropertyPagesCLSIDList —
středník oddělený seznam identifikátorů CLSID stránek vlastností závislých na konfiguraci.
Vzhledem k tomu, že podtyp projektu agreguje IVsHierarchy objekt, může přepsat definici těchto vlastností tak, aby bylo možné určit, které stránky vlastností jsou zobrazeny dialogová okna. Podtyp projektu může načíst tyto vlastnosti z vnitřního základního projektu a podle potřeby přidat nebo odebrat identifikátory CLSID.
Nové stránky vlastností přidané podtypem projektu jsou předány objekt procházení konfigurace projektu ze základní implementace projektu. Tento objekt pro procházení projektu podporuje extendery služby Automation. Další informace o automationExtenders naleznete v tématu Implementace a použití rozšiřujících prvků automation. Stránky vlastností implementované voláním Extender[] podtypu projektu pro načtení vlastního objektu procházení podtypu projektu, který rozšiřuje objekt procházení konfigurace základního projektu.