按容器功能分类

组件通常需要容器中的某些功能,并且不会使用不提供支持的容器。 用户界面应筛选掉需要容器不支持的功能的组件。 为此,可以对组件按所需的容器功能进行分类。

需要容器中功能且在不支持该功能的容器中无法正常工作的组件示例是简单的框架 OLE 控件。 按容器功能分类可通过组件 CLSID 项中的附加注册表项完成:

;The CLSID for "Simple Frame Control" is {123456FF-ABCD-4321-0101-00000000000C}HKEY_CASSES_ROOT\CLSID\{12346FF-ABCD-4321-0101-00000000000C}\Implemented Categories
;The CATID for "Control" is {40FC6ED4-2438-11cf-A3DB-080036F12502} HKEY_CLASSES_ROOT\CLSID\{123456FF-ABCD-4321-0101-00000000000C}Implemented Categories\{40FC6ED4-2438-11cf-A3DB-080036F12502}
;The CATID for simple frame controls is {...CATID_SimpleFrameControl...} HKEY_CLASSES_ROOT\CLSID\{123456FF-ABCD-4321-0101-00000000000C}Implemented Categories\{...CATID_SimpleFrameControl...}
HKEY_CLASSES_ROOT\CLSID\{123456FF-ABCD-4321-0101-00000000000C}Required Categories\{...CATID_SimpleFrameControl...}
 

如本示例所示,组件可以属于指示支持的功能的组件类别,以及指示所需功能的组件类别。

在以下示例中,按钮控件是一个不支持其他功能的通用 OLE 控件。 它将在任何 OLE 控件容器中正常工作。

HKEY_CLASSES_ROOT\CLSID\{...CLSID_Button...}\Implemented Categories
HKEY_CLASSES_ROOT\CLSID\{...CLSID_Button...}\Implemented Categories\{...CATID_Control...}
 

将前面的示例与下一个示例进行比较;在下一个示例中,如果容器支持,MyDBControl 可以使用 Visual Basic 数据绑定。 但是,已将其定义为可在不支持 Visual Basic 数据绑定(可能由其他数据库 API 提供)的容器中正常工作:

HKEY_CLASSES_ROOT\CLSID\{...CLSID_MyDBControl...}\Implemented Categories
HKEY_CLASSES_ROOT\CLSID\{...CLSID_MyDBControl...}\Implemented Categories\{...CATID_Control...}
HKEY_CLASSES_ROOT\CLSID\{...CLSID_MyDBControl...}\Implemented Categories\{...CATID_VBDatabound...}
 

GroupBox 控件是一个简单的框架控件。 它依赖于实现 ISimpleFrameSite 接口的容器,并且仅将在此类容器中正常工作:

HKEY_CLASSES_ROOT\CLSID\{...CLSID_GroupBox...}\Implemented Categories
HKEY_CLASSES_ROOT\CLSID\{...CLSID_GroupBox...}\Implemented Categories\{...CATID_Control...}
HKEY_CLASSES_ROOT\CLSID\{...CLSID_GroupBox...}\Implemented Categories\{...CATID_SimpleFrame...}
HKEY_CLASSES_ROOT\CLSID\{...CLSID_GroupBox...}\Required Categories\{...CATID_SimpleFrame...}
 

若容器支持 Visual Basic 数据绑定控件但不支持简单框架控件,则将指定插入控件用户界面的 CATID_Control 和 CATID_VBDatabound。 向用户显示的控件列表将包含 CLSID_Button 和 CLSID_MyDBControl。 不会显示 CLSID_GroupBox。

将图标与类别关联

按组件功能分类

默认类和关联

定义组件类别

组件类别管理器