IUnknown Implementation Classes
The following classes implement IUnknown and related methods:
CComObjectRootEx Manages reference counting for both aggregated and nonaggregated objects. Allows you to specify a threading model.
CComObjectRoot Manages reference counting for both aggregated and nonaggregated objects. Uses the default threading model of the server.
CComAggObject Implements IUnknown for an aggregated object.
CComObject Implements IUnknown for a nonaggregated object.
CComPolyObject Implements IUnknown for aggregated and nonaggregated objects. Using CComPolyObject avoids having both CComAggObject and CComObject in your module. A single CComPolyObject object handles both aggregated and nonaggregated cases.
CComObjectNoLock Implements IUnknown for a nonaggregated object, without modifying the module lock count.
CComTearOffObject Implements IUnknown for a tear-off interface.
CComCachedTearOffObject Implements IUnknown for a "cached" tear-off interface.
CComContainedObject Implements IUnknown for the inner object of an aggregation or a tear-off interface.
CComObjectGlobal Manages a reference count on the module to ensure your object won't be deleted.
CComObjectStack Creates a temporary COM object, using a skeletal implementation of IUnknown.
Related Articles
Fundamentals of ATL COM Objects