Alterando a fábrica de classe padrão e modelo de agregação

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.

Index