分类宏

这些宏定义类别映射。

说明
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_AUTOOBJECT_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()

示例

请参阅有关 EGIN_CATEGORY_MAP 的示例。

IMPLEMENTED_CATEGORY

将 IMPLEMENTED_CATEGORY 宏添加到组件的类别映射中,以指定应将其注册为实现 catID 参数标识的类别。

IMPLEMENTED_CATEGORY(catID)

参数

catID
[in] 含实现类别的全局唯一标识符 (GUID) 的 CATID 常量或变量。 catID 的地址将获取并添加到映射中。 有关股票类别的选择,请参阅下表。

备注

如果类具有关联的 OBJECT_ENTRY_AUTOOBJECT_ENTRY_NON_CREATEABLE_EX_AUTO 宏,则注册模块时映射中列出的组件类别将自动注册。

客户端可以使用为该类注册的类别信息来确定其功能和要求,而无需创建其实例。

有关组件类别的详细信息,请参阅 Windows SDK 中的组件类别是什么及其作用

股票类别的选择

说明 符号 注册表 GUID
安全进行脚本编写 CATID_SafeForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
安全进行初始化 CATID_SafeForInitializing {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}
Internet-Aware 对象 有关示例列表,请参阅 Windows SDK 中的 Internet Aware 对象

示例

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_AUTOOBJECT_ENTRY_NON_CREATEABLE_EX_AUTO 宏,则注册模块时映射中列出的组件类别将自动注册。

客户端可以使用为该类注册的类别信息来确定其功能和要求,而无需创建其实例。 例如,控件可能需要容器支持数据绑定。 容器可以通过查询类别管理器来查找该控件所需的类别,以确定它是否具有托管控件所需的功能。 如果容器不支持所需功能,则可能会拒绝托管 COM 对象。

有关组件类别(包括示例列表)的详细信息,请参阅 Windows SDK 中的组件类别是什么及其作用

股票类别的选择

说明 符号 注册表 GUID
安全进行脚本编写 CATID_SafeForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
安全进行初始化 CATID_SafeForInitializing {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}
Internet-Aware 对象 有关示例列表,请参阅 Windows SDK 中的 Internet Aware 对象

示例

BEGIN_CATEGORY_MAP(CMyWindow)
   REQUIRED_CATEGORY(CATID_InternetAware)
END_CATEGORY_MAP()

另请参阅