In all the different features defined in this article, there are various useful categories for describing what an object requires from its container as well as what features an object supports, which is useful in a container's browsing UI. The following tables describe the meaning for categories as both "implemented" and "required" categories.
"Required" categories | Description |
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. |
"Implemented" categories | Description |
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. |
The following table provides the exact CATIDs assigned to each category.
Category | CATID |
CATID_RequiresDataPathHost | 0de86a50-2baa-11cf-a229-00aa003d7352 |
CATID_PersistsToMoniker | 0de86a51-2baa-11cf-a229-00aa003d7352 |
CATID_PersistsToStorage | 0de86a52-2baa-11cf-a229-00aa003d7352 |
CATID_PersistsToStreamInit | 0de86a53-2baa-11cf-a229-00aa003d7352 |
CATID_PersistsToStream | 0de86a54-2baa-11cf-a229-00aa003d7352 |
CATID_PersistsToMemory | 0de86a55-2baa-11cf-a229-00aa003d7352 |
CATID_PersistsToFile | 0de86a56-2baa-11cf-a229-00aa003d7352 |
CATID_PersistsToPropertyBag | 0de86a57-2baa-11cf-a229-00aa003d7352 |
CATID_InternetAware | 0de86a58-2baa-11cf-a229-00aa003d7352 |
For more information on categories, see the Component Categories document.