共用方式為


專案模型的核心元件

下表詳述的專案模型。 資料表顯示的介面和服務在模型中的介面和特定的物件相關聯的服務中所識別的簡短描述。 此外,資料表將詳細說明其他都是在專案建立和維護您的特定專案類型的需求而定選擇性的介面。

如需詳細資訊,請參閱 支援符號瀏覽工具

封裝物件

介面

註解

IVsPackage

初始化在 IDE 中的 VSPackage 並將它的服務提供對 IDE。

專案工廠物件

介面

註解

IVsProjectFactory

建立新的專案並開啟現有專案管理。

專案的物件

介面

註解

IVsProject3

管理加入和移除專案項目、 開啟編輯器,並會維護每個文件 moniker 之間的對應和VSITEMID。 繼承自IVsProjectIVsProject2

IVsHierarchy

管理 [巡覽] 和 [顯示] 屬性,並提供的事件。

IVsUIHierarchy

啟用指令執行類似的IOleCommandTarget如剪下] 和 [重新命名套用只有當焦點位於方案總管] 中的命令。

IOleCommandTarget

當做專案階層架構的主要命令目標介面。 這是標準的介面來查詢它們的命令狀態] 或 [狀態] 和 [執行] 命令的物件。 當您沒有焦點放在 [專案] 視窗中可以使用。

IPersistFileFormat

協調專案狀態的保存性。 一般而言,專案的狀態儲存為專案檔案,但可以適用於不是以檔案為基礎的存放系統。

IVsPersistHierarchyItem2

可讓專案管理其專案項目,以磁碟或其他存放裝置系統中的物件上的檔案的保存性的所有層面。 IVsPeristHierarchyItem2介面用於項目不會實作IVsPersistDocData2介面。

IVsSccProject2

協調與原始程式碼控制互動。

IVsProjectFlavorCfgProvider

可讓專案管理的組態資訊。

IVsCfgProvider2

管理專案組態的物件,例如偵錯/發行組態。 建置、 部署和偵錯作業會透過專案組態的物件一致。

IVsHierarchyDeleteHandler

實作階層來控制刪除 (刪除),或移除階層架構的項目 (非破壞性) 的選項。 呼叫查詢介面上IVsHierarchyDeleteHandler介面從IVsHierarchy介面。

IVsGetCfgProvider

提供實作可以讓物件可支援IVsCfgProvider2上不同的 COM 識別專案物件和實作介面IVsHierarchy介面。

IVsProjectStartupServices

若要讓您專案的 「 可延伸實作由其他開發人員的選擇性介面。 IVsProjectStartupServices介面可以讓要註冊您保存到專案檔案,以便每次您的專案載入時,您會載入協力廠商服務 GUID 到您的專案檔和呼叫的 GUID 的協力廠商 VSPackage QueryService的 GUID。

IVsUIHierWinClipboardHelperEvents

由來源的階層架構中實作UIHierarchy協調剪貼簿] 作業,例如剪下]、 [複製],並貼上的視窗。 使用AdviseClipboardHelperEvents登錄剪貼簿事件的介面。

IVsHierarchyDropDataSource2

提供在 UI 階層視窗中拖放作業期間拖曳的項目,相對於其資料來源的相關資訊。 從呼叫IVsHierarchy介面。

IVsHierarchyDropDataTarget

提供在 UI 階層視窗中拖放作業期間拖曳的項目,相對於其置放目標的相關資訊。 從呼叫IVsHierarchy介面。

Configuration 物件

介面

註解

IVsCfg

提供設定的相關資訊。

IVsProjectCfg2

可讓專案管理的組態資訊。

IVsDebuggableProjectCfg

可讓偵錯工具控制下執行的專案。

IVsDeployableProjectCfg

實作執行其他專案的部署作業的部署專案。

設定產生器物件

介面

註解

IVsBuildableProjectCfg

管理專案組態的建置作業。

其他專案的物件

介面

註解

IDispatch

ISpecifyPropertyPages

顯示項目中的屬性屬性視窗。

IVsOutput2

IVsEnumOutputs

顯示部署的輸出。

下表顯示專案模型中所識別的服務的簡短描述。

服務

服務

註解

SVsRegisterProjectTypes

由其專案工廠有 IDE 實作專案型別註冊的 VSPackages。 必須呼叫您的 VSPackage QueryService ,此服務,並登錄它的專案時IVsPackage::SetSite就會呼叫方法。 如果SetSite不會呼叫方法,您的專案不具現化。

SVsSolution

提供在 IDE 內部、 內建概念,目前的方案,例如列舉專案、 建立新的專案、 專案的變更,好等等的能力的存取。

SVsSccManager

呼叫被想要加入原始檔控制的專案。

SVsRunningDocumentTable

維持開啟的文件,以判斷是否有一個以上的專案項目都已開啟的資料表。

SVsUIShellOpenDocument

包含介面和方法呼叫,以實際開啟專案項目使用標準編輯器] 或 [特定的編輯器。

SVsTrackProjectDocuments

必要時所要呼叫的所有專案也可以新增、 移除或重新命名其項目。

SVsFileChangeEx

管理檔案或目錄的變更並告知用戶端,當磁碟上已選取的檔案。

SVsQueryEditQuerySave

需要它們骯髒的項目,或將它們儲存之前,由所有的專案和編輯器呼叫。

SVsSolutionBuildManager

管理專案組態的建置和部署作業的順序。

SVsShellDebugger

提供用於大多數的偵錯控制項的低階偵錯工具服務的存取。

SVsShellMonitorSelection

可讓 VSPackages 存取目前選取項目的相關資訊,並讓與通訊屬性視窗。

SVsUIShell

提供基本的 UI 相關的 IDE 功能,例如建立和列舉的工具視窗或文件視窗,或向使用者報告錯誤的能力。

SVsStatusbar

提供 IDE 的狀態列上的存取。

IVsExtensibility3

用來實作 automation 模型。 在專案模型中,您將會傳回內容物件,可讓您建立該物件的執行個體。

SVsUIHierWinClipboardHelper

用來在專案中的物件階層架構中實作剪貼簿] 的事件。 SVsUIHierWinClipboardHelper可讓您正確的控制代碼剪下、 複製及貼上作業。

請參閱

參考

IOleCommandTarget

概念

檢查清單: 建立新的專案類型

支援符號瀏覽工具

專案模型的項目

其他資源

Implementation of Project Interfaces Using HierUtil7