分類巨集
這些宏會定義類別對應。
Macro | 描述 |
---|---|
BEGIN_CATEGORY_MAP | 標記類別目錄對應的開頭。 |
END_CATEGORY_MAP | 標記類別目錄對應的結尾。 |
IMPLEMENTED_CATEGORY | 指出 COM 物件所實作的類別。 |
REQUIRED_CATEGORY | 指出 COM 物件所需的容器類別。 |
需求
標頭: atlcom.h
BEGIN_CATEGORY_MAP
標記類別目錄對應的開頭。
BEGIN_CATEGORY_MAP(theClass)
參數
theClass
[in]包含類別對應之類別的名稱。
備註
類別對應是用來指定 COM 類別將實作哪些元件類別,以及其容器所需的類別。
將IMPLEMENTED_CATEGORY 專案新增至 COM 類別所實作之每個類別的對應。 針對類別需要其用戶端實作的每個類別,將REQUIRED_CATEGORY 專案新增至對應。 使用 END_CATEGORY_MAP 宏標記地圖的結尾。
如果類別具有相關聯的 OBJECT_ENTRY_AUTO 或 OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO ,則會在註冊模組時,自動註冊對應中所列的元件類別。
注意
ATL 會使用標準元件類別管理員來註冊元件類別。 如果註冊模組時系統沒有管理員,註冊就會成功,但元件類別不會註冊該類別。
如需元件類別的詳細資訊,請參閱 什麼是元件類別,以及如何在 Windows SDK 中運作 。
範例
BEGIN_CATEGORY_MAP(CMyCtrl)
IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()
END_CATEGORY_MAP
標記類別目錄對應的結尾。
END_CATEGORY_MAP()
範例
請參閱BEGIN_CATEGORY_MAP 範例 。
IMPLEMENTED_CATEGORY
將IMPLEMENTED_CATEGORY宏新增至元件的 類別對應 ,以指定它應該註冊為實作 catID 參數所識別的 類別。
IMPLEMENTED_CATEGORY(catID)
參數
catID
[in]包含實作類別之全域唯一識別碼 (GUID) 的 CATID 常數或變數。 catID 的 位址將採用並新增至地圖。 如需股票類別的選取專案,請參閱下表。
備註
如果類別具有相關聯的 OBJECT_ENTRY_AUTO 或 OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO 宏,則當模組註冊時,對應中所列的元件類別會自動註冊。
用戶端可以使用為 類別註冊的類別資訊來判斷其功能和需求,而不需要建立它的實例。
如需元件類別的詳細資訊,請參閱 什麼是元件類別,以及如何在 Windows SDK 中運作 。
股票類別的選取專案
描述 | 符號 | 登錄 GUID |
---|---|---|
用於腳本的保管庫 | CATID_保管庫ForScripting | {7DD95801-9882-11CF-9FA9-00AA006C42C4} |
初始化的保管庫 | CATID_保管庫ForInitializing | {7DD95802-9882-11CF-9FA9-00AA006C42C4} |
簡單框架網站內含專案 | CATID_SimpleFrameControl | {157083E0-2368-11cf-87B9-00AA006C8166} |
簡單資料繫結 | CATID_PropertyNotifyControl | {157083E1-2368-11cf-87B9-00AA006C8166} |
進階資料系結 | CATID_VBDataBound | {157083E2-2368-11cf-87B9-00AA006C8166} |
無視窗控制項 | CATID_WindowlessObject | {1D06B600-3AE3-11cf-87B9-00AA006C8166} |
網際網路感知物件 | 如需範例清單,請參閱 Windows SDK 中的網際網路感知物件 。 |
範例
BEGIN_CATEGORY_MAP(CMyCtrl)
IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()
REQUIRED_CATEGORY
將REQUIRED_CATEGORY宏新增至元件的 類別對應 ,以指定它應該註冊為需要 catID 參數識別的 類別。
REQUIRED_CATEGORY( catID )
參數
catID
[in]包含必要類別之全域唯一識別碼 (GUID) 的 CATID 常數或變數。 catID 的 位址將採用並新增至地圖。 如需股票類別的選取專案,請參閱下表。
備註
如果類別具有相關聯的 OBJECT_ENTRY_AUTO 或 OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO 宏,則當模組註冊時,對應中所列的元件類別會自動註冊。
用戶端可以使用為 類別註冊的類別資訊來判斷其功能和需求,而不需要建立它的實例。 例如,控制項可能需要容器支援資料系結。 容器可藉由查詢該控制項所需的類別管理員,找出它是否有裝載控制項所需的功能。 如果容器不支援必要的功能,它可以拒絕裝載 COM 物件。
如需元件類別的詳細資訊,包括範例清單,請參閱 什麼是元件類別,以及如何在 Windows SDK 中運作 。
股票類別的選取專案
描述 | 符號 | 登錄 GUID |
---|---|---|
用於腳本的保管庫 | CATID_保管庫ForScripting | {7DD95801-9882-11CF-9FA9-00AA006C42C4} |
初始化的保管庫 | CATID_保管庫ForInitializing | {7DD95802-9882-11CF-9FA9-00AA006C42C4} |
簡單框架網站內含專案 | CATID_SimpleFrameControl | {157083E0-2368-11cf-87B9-00AA006C8166} |
簡單資料繫結 | CATID_PropertyNotifyControl | {157083E1-2368-11cf-87B9-00AA006C8166} |
進階資料系結 | CATID_VBDataBound | {157083E2-2368-11cf-87B9-00AA006C8166} |
無視窗控制項 | CATID_WindowlessObject | {1D06B600-3AE3-11cf-87B9-00AA006C8166} |
網際網路感知物件 | 如需範例清單,請參閱 Windows SDK 中的網際網路感知物件 。 |
範例
BEGIN_CATEGORY_MAP(CMyWindow)
REQUIRED_CATEGORY(CATID_InternetAware)
END_CATEGORY_MAP()
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應