共用方式為


專案子類型所擴充的屬性和方法

專案子類型具有許多影響項目行為的力量,因為它建構為基底專案的匯總工具。 本節摘要說明項目子類型可以增強或修改的一些功能。

匯總取得的功能

下表摘要說明匯總可讓專案子類型在基底專案中覆寫的許多方法。

依匯總覆寫的方法 項目子類型
IVsHierarchy:

GetProperty

SetProperty

GetGuidProperty

SetGuidProperty
啟用項目子類型

- 變更項目節點 標題 和圖示。
- 完全覆寫項目 Browse 物件。
- 控制是否可以重新命名專案。
- 控制排序順序。
- 控制動態說明的用戶內容。
IVsProject:

GetItemContext
可讓專案子類型控制提供給設計工具與編輯器的內容相關服務。
IOleCommandTarget:

QueryStatus

Exec

QueryStatusCommand

ExecCommand
啟用項目子類型

- 參與專案命令的命令路由。
- 新增、移除或停用項目環境命令和 方案總管 使用中命令。
IVsFilterAddProjectItemDlg2 可讓專案子類型篩選使用者在 [ 新增專案 ] 對話框中看到的內容。
IVsSingleFileGeneratorFactory 啟用項目子類型

- 判斷指定擴展名的預設產生器。
- 將人類可讀取的產生器名稱對應至 COM 物件。

項目子類型所使用的屬性

環境和基底項目系統可以使用 __VSSPROPID 下表中詳述的屬性和 __VSSPROPID2 列舉,讓專案子類型控制專案系統的各種功能。

VSHPROPID 屬性 項目子類型
AddItemTemplatesGuid 允許項目子類型控制 [新增專案] 對話框的內容。 項目子類型可以提供範本目錄的新規格、加入新種類的專案、移除現有專案,以及重新組織基底專案的 [新增專案 ] 對話框中的專案子集。
PropertyPagesCLSIDList 允許項目子類型新增或移除與組態無關的屬性頁。
CfgPropertyPagesCLSIDList 允許項目子類型新增或移除與組態相關的屬性頁。
ExtObjectCATID 允許專案子類型知道 Extender CATID,為專案或項目專案物件提供自動化擴充器。 例如,專案子類型可以提供自定義 Project.Extender("<subtype>") 物件。
BrowseObjectCATID 允許專案子類型知道 Extender CATID,為 Browse 物件提供自動化擴充器。 例如,專案子類型可以將額外的屬性新增至 Properties 集合。
CfgBrowseObjectCATID 允許項目子類型為專案組態瀏覽物件提供 Automation Extender。 例如,專案子類型可以將額外的屬性新增至 Properties 集合。
CfgExtObjectCATID 允許項目子類型為組態物件提供 Automation Extender。
DefaultPlatformName 允許專案子類型判斷專案組態物件的平台名稱。

基底專案會提供上述屬性的預設實作。 基底專案會藉由在最外層的專案子類型上呼叫 QueryInterface IVsHierarchy 來取得這些專案,因此允許專案子類型覆寫屬性的實作。

另請參閱