Component Categories for Describing Internet-Aware Objects
A category identifier (CATID) is a GUID that is stored in the registry as an attribute of a class. There are various useful categories for introducing a Microsoft ActiveX control to its container; they describe which features the object requires and those it implements. The following tables list the categories used to Internet-aware objects: first, those that a control might require, and then those that it might implement.
|CATID_PersistsToMoniker, CATID_PersistsToStreamInit, CATID_PersistsToStream, CATID_PersistsToStorage, CATID_PersistsToMemory, CATID_PersistsToFile, CATID_PersistsToPropertyBag||Each category is mutually exclusive and is used only when an object supports but one persistence mechanism at all—thus the mutual exclusion. Containers that do not support the persistence mechanism described by one of these categories should prevent themselves from creating an object of classes so marked.|
|CATID_RequiresDataPathHost||The object requires the ability to save data to one or more paths and requires container involvement, therefore requiring container support for IBindHost.|
|CATID_PersistsToMoniker, CATID_PersistsToStreamInit, CATID_PersistsToStream, CATID_PersistsToStorage, CATID_PersistsToMemory, CATID_PersistsToFile, CATID_PersistsToPropertyBag||Object supports the corresponding IPersist* mechanism for the category.|
|CATID_InternetAware||The object is Internet-aware, meaning that the object needs no special behavior to work well in the Internet environment, or the object uses large data sets but is written to retrieve that data asynchronously. In addition, all Internet-aware objects are marked with OLEMISC_SETCLIENTSITEFIRST. This category is defined to help authoring tools differentiate between objects that might or might not understand the special implications of the Internet.|
|CATID_SafeForInitializing||The control can safely be initialized from untrusted data. Controls that guarantee no security breach regardless of the data source are considered safe for initialization.|
|CATID_SafeForScripting||The control is considered safe even if used from untrusted script. Such controls generally do not rely on system settings, nor attempt to write to or read from privileged areas of the system disk or registry.|
|CATID_DesignTimeUIActivatableControl||The control implements a design-time UI.|
|CATID_Insertable, CATID_Control, CATID_Programmable, CATID_IsShortcut, CATID_NeverShowExt, CATID_DocObject, CATID_Printable||Not used.|
The following table provides the exact CATID value assigned to each category.
For more information on categories, see the Component Categories document.
- Safe Initialization and Scripting for ActiveX Controls
- Storage of Control Persistent Data