Classes in the Active Template Library (ATL) can be categorized as follows:
See Also ATL Article Overview
The following classes implement or support a class factory:
See Also Aggregation and Class Factory Macros
Back to Top
The following class provides support for retrieving class information:
- IProvideClassInfo2Impl Provides access to type information. Retrieves the outgoing IID for the object's default event
set.
Back to Top
The following classes provide support for a COM module:
Back to Top
The following classes provide support for connection points:
Related Articles Connection Points
See Also Connection Point Macros and Global Functions
Back to Top
The following classes provide general support for ATL controls:
- CComControl Consists of helper functions and data members that are essential to ATL controls.
- IOleControlImpl Provides methods necessary for controls.
- IOleObjectImpl Provides the principal methods through which a container communicates with a control. Manages the
activation and deactivation of in-place controls.
- IQuickActivateImpl Combines initialization into a single call to help containers avoid delays when loading controls.
- IPointerInactiveImpl Provides minimal mouse interaction for an otherwise inactive control.
Related Articles ATL Tutorial
Back to Top
The following classes support various types of data transfer:
- IDataObjectImpl Supports Uniform Data Transfer by using standard formats to retrieve and set data. Handles data
change notifications by managing connections to advise sinks.
- CBindStatusCallback Allows an asynchronous moniker to send and receive information about the asynchronous data
transfer to and from your object.
Back to Top
The following classes wrap C++ data types:
Back to Top
The following class provides support for dual interfaces:
- IDispatchImpl Implements the IDispatch portion of a dual interface.
Back to Top
The following class indicates how error information is handled:
- ISupportErrorInfoImpl Determines whether the object supports the IErrorInfo interface. IErrorInfo allows error
information to be propagated back to the client.
Back to Top
The following classes manage a given interface pointer:
- CComPtr Performs automatic reference counting.
- CComQIPtr Similar to CComPtr, but also performs automatic querying of interfaces.
Back to Top
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.
- 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 can handle 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
See Also Aggregation and Class Factory Macros, COM Map Macros and Global Functions
Back to Top
The following class provides support for object safety:
- IObjectSafetyImpl Allows an object to be marked as safe for initialization or safe for scripting.
Related Articles ATL Tutorial
Back to Top
The following classes implement object persistence:
Related Articles ATL Tutorial
See Also Property Map Macros
Back to Top
The following classes support properties and property pages:
Related Articles ATL Tutorial
See Also Property Map Macros, Stock Property Macros
Back to Top
The following class provides registry support:
- CRegKey Contains methods for manipulating values in the system registry.
Related Articles The ATL Registry Component (Registrar)
See Also Registry Macros
Back to Top
The following class provides support for running objects:
- IRunnableObjectImpl Determines if an object is running, forces it to run, or locks it into the running state.
Related Articles ATL Tutorial
Back to Top
The following classes allow an object to communicate with its site:
- IObjectWithSiteImpl Retrieves and sets a pointer to an object's site. Used for objects that are not controls.
- IOleObjectImpl Retrieves and sets a pointer to an object's site. Used for controls.
Back to Top
The following classes provide support for tear-off interfaces:
Back to Top
The following classes support thread pooling:
Back to Top
The following classes define a threading model and critical section:
- CComMultiThreadModel Provides thread-safe methods for incrementing and decrementing a variable. Provides a
critical section.
- CComMultiThreadModelNoCS Provides thread-safe methods for incrementing and decrementing a variable. Does
not provide a critical section.
- CComSingleThreadModel Provides methods for incrementing and decrementing a variable. Does not provide a
critical section.
- CComObjectThreadModel Determines the appropriate threading-model class for a single object class.
- CComGlobalsThreadModel Determines the appropriate threading-model class for an object that is globally
available.
- CComAutoCriticalSection Contains methods for obtaining and releasing a critical section. The critical section is
automatically initialized.
- CComCriticalSection Contains methods for obtaining and releasing a critical section. The critical section must be
explicitly initialized.
- CComFakeCriticalSection Mirrors the methods in CComCriticalSection without providing a critical section. The
methods in CComFakeCriticalSection do nothing.
Back to Top
The following classes provide general UI support:
- IOleObjectImpl Provides the principal methods through which a container communicates with a control. Manages the
activation and deactivation of in-place controls.
- IOleInPlaceObjectWindowlessImpl Manages the reactivation of in-place controls. Enables a windowless control to
receive messages, as well as to participate in drag and drop operations.
- IOleInPlaceActiveObjectImpl Assists communication between an in-place control and its container.
- IViewObjectExImpl Enables a control to display itself directly and to notify the container of changes in its display.
Provides support for flicker-free drawing, non-rectangular and transparent controls, and hit testing.
Related Articles ATL Tutorial
Back to Top
The following classes provide support for windows:
- CWindow Contains methods for manipulating a window. CWindow is the base class for CContainedWindowImpl,
CDialogImpl, and CWindowImpl.
- CWindowImpl Implements a window based on a new window class. Also allows you to subclass or superclass the
window.
- CContainedWindow Implements a window contained within another object. Allows you to subclass or superclass the
window.
- CDialogImpl Implements a dialog box.
- CWndClassInfo Manages the information for a new window class.
- CDynamicChain Supports dynamic chaining of message maps.
- CMessageMap Allows an object to expose its message maps to other objects.
Related Articles ATL Window Classes, ATL Tutorial
See Also Message Map Macros, Window Class Macros
Back to Top