專案子類型所擴充的屬性和方法
專案子類型具有許多影響項目行為的力量,因為它建構為基底專案的匯總工具。 本節摘要說明項目子類型可以增強或修改的一些功能。
匯總取得的功能
下表摘要說明匯總可讓專案子類型在基底專案中覆寫的許多方法。
依匯總覆寫的方法 | 項目子類型 |
---|---|
從 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 來取得這些專案,因此允許專案子類型覆寫屬性的實作。