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.

Fundamentals of ATL COM Objects

See Also

Other Resources

ATL Class Overview

Aggregation and Class Factory Macros

COM Map Macros

COM Map Global Functions