IUnknown Implementation Classes

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at IUnknown Implementation Classes (ATL).

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

Class Overview
Aggregation and Class Factory Macros
COM Map Macros
COM Map Global Functions