共用方式為


分類巨集

這些宏會定義類別對應。

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()

另請參閱

巨集