coclass

This statement describes the globally unique ID (GUID) and the supported interfaces for a Component Object Model (COM).

Syntax

[attributes]
coclass classname {
    [attributes2] [interface | dispinterface] interfacename;
};

Syntax Elements

attributes
The uuid attribute is required on a coclass. This is the same uuid that is registered as a CLSID in the system registration database. The helpstring, helpcontext, licensed, version, control, hidden, and appobject attributes are accepted, but not required, before a coclass definition. For more information about the attributes accepted before a coclass definition, see "Attribute Descriptions" earlier in this chapter. The appobject attribute makes the functions and properties of the coclass globally available in the type library.
classname
Name by which the common object is known in the type library.
attributes2
Optional attributes for the interface or dispinterface. The source, default, and restricted attributes are accepted on an interface or dispinterface in a coclass.
interfacename
Either an interface declared with the interface keyword, or a dispinterface declared with the dispinterface keyword.

Comments

The Component Object Model defines a class as an implementation that allows QueryInterface between a set of interfaces.

Example

[ uuid(BFB73347-822A-1068-8849-00DD011087E8), version(1.0), helpstring("A class"), helpcontext(2481), appobject]
coclass myapp {
    [source] interface IMydocfuncs;
    dispinterface DMydocfuncs;
};

[uuid 00000000-0000-0000-0000-123456789019] 
coclass foo
{
    [restricted] interface bar;
    interface bar;
}