按组件功能分类

组件类别可用于显示所有已安装组件的子集。 每个组件类别由 GUID 标识,称为类别 ID (CATID) 。 每个 CATID 都有一个区域设置标记、可读名称的列表,这些名称与它相关联。 CATID 和人可读名称的列表存储在注册表中的已知位置。

例如,实现 OLE 文档嵌入功能的所有组件都可以分类在组件类别中。 过去,这些对象将由注册表中的“可插入”键标识。 若要改用组件类别,以下信息将添加到注册表中:

HKEY_CLASSES_ROOT\Component Categories\{40FC6ED3-2438-11cf-A3DB-080036F12502}
   (Default) = ""
   409 = "Embeddable Objects"

实现与组件类别对应的功能的每个类都会在注册表的 CLSID 键中列出该类别的类别 ID。 由于单个组件可以支持各种功能,因此组件可以属于多个组件类别。 例如,特定的 OLE 控件可能支持作为 OLE 文档嵌入、Microsoft Visual Basic数据绑定和 Internet 功能参与所需的所有功能。 此类控件将具有以下信息存储在注册表中的 CLSID 密钥中:

;The CLSID for "My Super OLE Control" is {12345678-ABCD-4321-0101-00000000000C}HKEY_CLASSES_ROOT\CLSID\{12345678-ABCD-4321-0101-00000000000C}\Implemented Categories
;The CATID for "Insertable" is {40FC6ED3-2438-11cf-A3DB-080036F12502} HKEY_CLASSES_ROOT\CLSID\{12345678-ABCD-4321-0101-00000000000C}Implemented Categories\{40FC6ED3-2438-11cf-A3DB-080036F12502}
;The CATID for "Control" is {40FC6ED4-2438-11cf-A3DB-080036F12502} HKEY_CLASSES_ROOT\CLSID\{12345678-ABCD-4321-0101-00000000000C}Implemented Categories\{40FC6ED4-2438-11cf-A3DB-080036F12502}
;The CATID for an internet aware control is {...CATID_InternetAware...} HKEY_CLASSES_ROOT\CLSID\{12345678-ABCD-4321-0101-00000000000C}Implemented Categories\{...CATID_InternetAware...}
 

利用此信息,容器可以枚举安装在系统上的控件,并仅显示那些支持容器所需功能的控件。 使用组件类别提供了一种按组件实现的功能对组件进行分类的方法。

将图标与类别相关联

按容器功能分类

默认类和关联

定义组件类别

组件类别管理器