ATL usa CComCoClass para definir o modelo padrão de classe fábrica e agregação de seu objeto. CComCoClass especifica as seguintes dois macros:
Você pode substituir qualquer um desses padrões especificando outra macro na sua definição de classe. Por exemplo, para usar CComClassFactory2 em vez de CComClassFactory, especifique a macro de DECLARE_CLASSFACTORY2usa:
classe CMyClass:..., nbsp; CComCoClass públicas < CMyClass & CLSID_CMyClass >
{
público:
DECLARE_CLASSFACTORY2(CMyLicense)
...
}
Incluem a duas outras macros que definem um classe factory DECLARE_CLASSFACTORY_AUTO_THREAD e DECLARE_CLASSFACTORY_SINGLETONusa.
ATL também usa o mecanismo de typedef para implementar comportamento padrão. Por exemplo, a macro DECLARE_AGGREGATABLE usa typedef para definir um tipo chamado _CreatorClass, que então é referência em toda a ATL. Observe que em uma classe derivada, um typedef usando o mesmo nome da classe base typedef resulta em ATL usando sua definição e substituindo o comportamento padrão.