專案模型的核心元件
下表會展開專案模型。 數據表會簡短描述模型中識別的介面和服務,以及與特定對象相關聯的介面和服務。 此外,數據表會根據特定項目類型的需求,詳細說明專案建立和維護中選擇性的其他介面。
如需詳細資訊,請參閱 支援符號瀏覽工具。
Package 物件
介面 | 註解 |
---|---|
IVsPackage | 初始化 IDE 中的 VSPackage,並讓其服務可供 IDE 使用。 |
Project Factory 物件
介面 | 註解 |
---|---|
IVsProjectFactory | 管理建立新項目並開啟現有的專案。 |
項目物件
介面 | 註解 |
---|---|
IVsProject3 | 管理項目專案的新增和移除、開啟編輯器,以及維護每個檔Moniker與 VSITEMID 之間的對應。 繼承自 IVsProject 和 IVsProject2 。 |
IVsHierarchy | 管理導覽和顯示屬性,並提供事件。 |
IVsUIHierarchy | 針對 [剪下] 和 [重新命名] 等命令,啟用類似 的IOleCommandTarget 命令執行,只有在焦點位於 方案總管 時才會套用。 |
IOleCommandTarget | 做為項目階層的主要命令目標介面。 這是查詢物件的命令狀態或狀態和執行命令的標準介面。 當您未將焦點放在 [專案] 視窗中時可用。 |
IPersistFileFormat | 協調項目狀態的持續性。 一般而言,項目狀態會儲存為項目檔,但可以調整為不是以檔案為基礎的儲存系統。 |
IVsPersistHierarchyItem2 | 可讓專案管理其項目專案的所有持續性層面,無論是磁碟上的檔案,還是其他儲存系統中的物件。 介面 IVsPersistHierarchyItem2 用於未實 IVsPersistDocData2 作 介面的專案。 |
IVsSccProject2 | 協調與原始程式碼控件的互動。 |
IVsProjectFlavorCfgProvider | 可讓專案管理組態資訊。 |
IVsCfgProvider2 | 管理項目組態物件,例如偵錯/發行組態。 建置、部署和偵錯作業會透過專案組態對象進行協調。 |
IVsHierarchyDeleteHandler | 由階層實作,以控制階層專案的刪除(破壞性)或移除(非破壞性)選項。 從 IVsHierarchy 介面呼叫 介面上的IVsHierarchyDeleteHandler 查詢介面。 |
IVsGetCfgProvider | 提供實作選項,讓物件支援 IVsCfgProvider2 與實 IVsHierarchy 作介面之項目物件不同的 COM 身分識別上的介面。 |
IVsProjectStartupServices | 實作的選擇性介面可讓其他開發人員擴充您的專案。 介面 IVsProjectStartupServices 可讓第三方 VSPackage 註冊您保存至項目檔的 GUID,以便在每次專案載入時,將第三方服務 GUID 載入專案檔,並呼叫 QueryService 該 GUID。 |
IVsUIHierWinClipboardHelperEvents | 由視窗中的來源階層 UIHierarchy 實作,以協調剪貼簿作業,例如剪下、複製和貼上。 AdviseClipboardHelperEvents 使用 介面來註冊剪貼簿事件。 |
IVsHierarchyDropDataSource2 | 在UI階層視窗中的拖放作業期間,提供有關拖曳專案相對於其數據源的資訊。 從 IVsHierarchy 介面呼叫。 |
IVsHierarchyDropDataTarget | 提供UI階層視窗中拖放作業期間拖曳專案相對於其置放目標的相關信息。 從 IVsHierarchy 介面呼叫。 |
組態物件
介面 | 註解 |
---|---|
IVsCfg | 提供設定的相關信息。 |
IVsProjectCfg2 | 可讓專案管理組態資訊。 |
IVsDebuggableProjectCfg | 可讓專案在調試程式的控件下執行。 |
IVsDeployableProjectCfg | 由執行其他專案的部署作業的部署項目實作。 |
組態產生器物件
介面 | 註解 |
---|---|
IVsBuildableProjectCfg | 管理項目組態的建置作業。 |
其他 Project 物件
介面 | 註解 |
---|---|
IDispatch ISpecifyPropertyPages |
在 [ 屬性 ] 視窗中顯示項目屬性。 |
IVsOutput2 IVsEnumOutputs |
顯示部署的輸出。 |
下表提供專案模型中所識別服務的簡短描述。
服務
服務 | 註解 |
---|---|
SVsRegisterProjectTypes | VSPackage 用來實作項目類型,以向IDE 註冊其項目處理站存在。 呼叫 方法時IVsPackage::SetSite ,VSPackage 必須呼叫QueryService 此服務並註冊其項目處理站。 SetSite 如果未呼叫 方法,則不會具現化您的專案。 |
SVsSolution | 提供 IDE 內部內建概念的存取權,例如列舉專案、建立新專案、注意項目變更等等。 |
SVsSccManager | 由想要參與原始檔控制的專案呼叫。 |
SVsRunningDocumentTable | 維護開啟文件的數據表,以判斷是否已開啟一或多個項目專案。 |
SVsUIShellOpenDocument | 包含呼叫的介面和方法,以實際使用標準編輯器或特定編輯器開啟項目專案。 |
SVsTrackProjectDocuments | 當所有專案新增、移除或重新命名其專案時,都必須呼叫。 |
SVsFileChangeEx | 管理檔案或目錄的變更,並在磁碟上變更選取的檔案時通知用戶端。 |
SVsQueryEditQuerySave | 所有專案和編輯器都必須在變更專案或儲存專案之前呼叫。 |
SVsSolutionBuildManager | 管理項目組態的建置和部署作業順序。 |
SVsShellDebugger | 提供對大部分偵錯控件所使用的低階調試程式服務的存取。 |
SVsShellMonitorSelection | 啟用 VSPackage 存取目前選取範圍的相關信息,並啟用與 [屬性] 視窗的通訊。 |
SVsUIShell | 提供基本的 UI 相關 IDE 功能,例如建立和列舉工具視窗或文檔視窗,或向使用者報告錯誤的能力。 |
SVsStatusbar | 提供 IDE 狀態列的存取權。 |
IVsExtensibility3 | 用來實作自動化模型。 在專案模型中,您將傳回屬性物件,讓您建立該對象的實例。 |
SVsUIHierWinClipboardHelper | 用來在階層中的項目對象上實作剪貼簿事件。 SVsUIHierWinClipboardHelper 可讓您正確處理剪下、複製和貼上作業。 |