Aggregation and Class Factory Macros

These macros provide ways of controlling aggregation and of declaring class factories.

DECLARE_AGGREGATABLE

Declares that your object can be aggregated (the default).

DECLARE_CLASSFACTORY

Declares the class factory to be CComClassFactory, the ATL default class factory.

DECLARE_CLASSFACTORY_EX

Declares your class factory object to be the class factory.

DECLARE_CLASSFACTORY2

Declares CComClassFactory2 to be the class factory.

DECLARE_CLASSFACTORY_AUTO_THREAD

Declares CComClassFactoryAutoThread to be the class factory.

DECLARE_CLASSFACTORY_SINGLETON

Declares CComClassFactorySingleton to be the class factory.

DECLARE_GET_CONTROLLING_UNKNOWN

Declares a virtual GetControllingUnknown function.

DECLARE_NOT_AGGREGATABLE

Declares that your object cannot be aggregated.

DECLARE_ONLY_AGGREGATABLE

Declares that your object must be aggregated.

DECLARE_POLY_AGGREGATABLE

Checks the value of the outer unknown and declares your object aggregatable or not aggregatable, as appropriate.

DECLARE_PROTECT_FINAL_CONSTRUCT

Protects the outer object from deletion during construction of an inner object.

DECLARE_VIEW_STATUS

Specifies the VIEWSTATUS flags to the container.

See Also

Concepts

ATL Macros