Interfejs użytkownika właściwości projektu
Podtyp projektu może używać elementów w oknie dialogowym Strony właściwości projektu, ponieważ są one dostarczane przez projekt podstawowy, ukrywać lub tworzyć kontrolki tylko do odczytu i całe strony zgodnie z podanymi informacjami lub dodawać strony specyficzne dla podtypu projektu do okna dialogowego Strony właściwości.
Rozszerzanie właściwości projektu, okno dialogowe
Podtyp projektu implementuje rozszerzenia automatyzacji i konfigurację projektu przeglądania obiektów. Te rozszerzenia implementują interfejs, IFilterProperties aby określone właściwości były ukryte lub tylko do odczytu. Okno dialogowe Strony właściwości projektu podstawowego implementowane przez projekt podstawowy honoruje filtrowanie wykonywane przez rozszerzenia automatyzacji.
Proces rozszerzania okna dialogowego Właściwości projektu został opisany poniżej:
Projekt podstawowy pobiera rozszerzenia z podtypu projektu przez zaimplementowanie interfejsu IInternalExtenderProvider . Przeglądanie, automatyzacja projektu i konfiguracja projektu przeglądaj obiekty projektu podstawowego wszystkie implementują ten interfejs.
Implementacja IInternalExtenderProvider obiektu przeglądania projektu i obiektu automatyzacji projektu delegowania do IInternalExtenderProvider implementacji agregatora podtypu projektu (czyli
QueryInterface
dla IInternalExtenderProvider obiektu IVsHierarchy projektu).Podstawowa konfiguracja projektu przeglądania obiektu implementuje również bezpośrednie przewody IInternalExtenderProvider w rozszerzeniu automatyzacji z obiektu konfiguracji podtypu projektu. Jego implementacja deleguje do interfejsu IInternalExtenderProvider zaimplementowanego przez agregator podtypu projektu.
GetProjectItem, zaimplementowany przez obiekt przeglądania IVsHierarchy konfiguracji projektu, zwraca obiekt .
GetCfg, również zaimplementowany przez obiekt przeglądania IVsCfg konfiguracji projektu, zwraca obiekt.
Podtyp projektu może określić odpowiednie identyfikatory CATID dla różnych rozszerzalnych obiektów projektu podstawowego w czasie wykonywania, pobierając następujące __VSHPROPID2 wartości:
Aby określić identyfikatory CATID dla zakresu projektu, podtyp projektu pobiera powyższe właściwości dla vsITEMID. Katalog główny z folderu VSITEMID typedef
. Podtyp projektu może również chcieć kontrolować, które strony dialogowe strony właściwości są wyświetlane dla projektu, zarówno zależne od konfiguracji, jak i niezależne od konfiguracji. Niektóre podtypy projektu mogą wymagać usunięcia wbudowanych stron i dodania określonych stron podtypu projektu. Aby to umożliwić, zarządzany projekt klienta wywołuje metodę GetProperty dla następujących właściwości:
VSHPROPID_PropertyPagesCLSIDList
— rozdzielana średnikami lista identyfikatorów CLSID stron właściwości niezależnych od konfiguracji.VSHPROPID_CfgPropertyPagesCLSIDList —
rozdzielana średnikami lista identyfikatorów CLSID stron właściwości zależnych od konfiguracji.
Ponieważ podtyp projektu agreguje IVsHierarchy obiekt, może zastąpić definicję tych właściwości, aby kontrolować, które okna dialogowe strony właściwości są wyświetlane. Podtyp projektu może pobrać te właściwości z wewnętrznego projektu podstawowego, a następnie w razie potrzeby dodać lub usunąć identyfikatory CLSID.
Nowe strony właściwości dodane przez podtyp projektu są przekazywane obiekt przeglądania konfiguracji projektu z implementacji projektu podstawowego. Ta konfiguracja projektu przeglądania obiektu obsługuje rozszerzenia automatyzacji. Aby uzyskać więcej informacji na temat usługi AutomationExtenders, zobacz Implementowanie i używanie rozszerzeń automatyzacji. Strony właściwości implementowane przez wywołanie Extender[] podtypu projektu w celu pobrania własnego obiektu przeglądania podtypu projektu, który rozszerza obiekt przeglądania konfiguracji projektu podstawowego.