Clipboard Formats
Every node type implies one or more clipboard formats that a data object for any node of that node type must support. For example, the node type for a user might imply that the object supports clipboard formats that provide the domain in which the user is located, and the distinguished name of the user. With a few exceptions the snap-in, and not MMC, defines these clipboard formats and the format of the data they return.
All clipboard formats supported by snap-ins (stand-alone or extension) must be registered. You can do this by using the Windows RegisterClipboardFormat function.
Snap-ins must include support for the following four clipboard formats in all data objects that they provide to MMC as a result of calls to IComponentData::QueryDataObject or IComponent::QueryDataObject:
CCF_NODETYPE
CCF_SZNODETYPE
CCF_DISPLAY_NAME
CCF_SNAPIN_CLASSID
MMC uses the CCF_NODETYPE and CCF_SZNODETYPE formats to request the node type GUID of the currently selected scope or result item in class identifier (CLSID) and string form, respectively. Be aware that support for these two formats does not imply that MMC treats items differently according to node type; instead, an item's node type provides a way to determine which other snap-ins extend that item. For example, when a snap-in registers itself as extending the property sheets of objects generated by other snap-ins, it actually extends the property sheets for scope or result items of one or more specific node types.
The CCF_DISPLAY_NAME format is used to request the display name of a stand-alone snap-in's static node. Finally, CCF_SNAPIN_CLASSID is used to retrieve the snap-in's CLSID.
In most cases, MMC uses IDataObject::GetDataHere to specify the format of the requested data and the storage medium for the data. For example, MMC determines the node type by calling IDataObject::GetDataHere on the data object for a specified scope or result item, using the CCF_NODETYPE clipboard format.