coclass macro
This statement describes the globally unique ID (GUID) and the supported interfaces for a Component Object Model (COM).
Syntax
coclass(
attributes,
classname,
attributes2,
interfacename
);
Parameters
-
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, version, licensed, version, control, hidden, and appobject attributes are accepted, but not required, before a coclass definition. The appobject attribute makes the functions and properties of the coclass globally available in the type library.
-
classname
-
The 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.
Remarks
[attributes]
coclass classname {
[attributes2] [interface | dispinterface] interfacename;
};
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 test
{
[restricted] interface ITest;
interface ITest;
}