ATL Typedefs

The Active Template Library includes the following typedefs.

Typedef Description
_ATL_BASE_MODULE Defined as a typedef based on _ATL_BASE_MODULE70.
_ATL_COM_MODULE Defined as a typedef based on _ATL_COM_MODULE70.
_ATL_MODULE Defined as a typedef based on _ATL_MODULE70.
_ATL_WIN_MODULE Defined as a typedef based on _ATL_WIN_MODULE70
ATL_URL_PORT The type used by CUrl for specifying a port number.
CComDispatchDriver This class manages COM interface pointers.
CComGlobalsThreadModel Calls the appropriate thread model methods, regardless of the threading model being used.
CComObjectThreadModel Calls the appropriate thread model methods, regardless of the threading model being used.
CContainedWindow This class is a specialization of CContainedWindowT.
CPath A specialization of CPathT using CString.
CPathA A specialization of CPathT using CStringA.
CPathW A specialization of CPathT using CStringW.
CSimpleValArray Represents an array for storing simple types.
DefaultThreadTraits The default thread traits class.
LPCURL A pointer to a constant CUrl object.
LPURL A pointer to a CUrl object.

_ATL_BASE_MODULE

Defined as a typedef based on _ATL_BASE_MODULE70.

typedef ATL::_ATL_BASE_MODULE70 _ATL_BASE_MODULE;

Remarks

Used in every ATL project. Based on _ATL_BASE_MODULE70.

Classes that are part of the ATL 7.0 Module Classes derive from the _ATL_BASE_MODULE structure. For more information on ATL Module Classes, refer to COM Modules Classes.

Requirements

Header: atlcore.h

_ATL_COM_MODULE

Defined as a typedef based on _ATL_COM_MODULE70.

typedef ATL::_ATL_COM_MODULE70 _ATL_COM_MODULE;

Remarks

Used by ATL projects which use COM features. Based on _ATL_COM_MODULE70.

Requirements

Header: atlbase.h

_ATL_MODULE

Defined as a typedef based on _ATL_MODULE70.

typedef ATL::_ATL_MODULE70 _ATL_MODULE;

Requirements

Header:

Remarks

Based on _ATL_MODULE70.

_ATL_WIN_MODULE

Defined as a typedef based on _ATL_WIN_MODULE70.

typedef ATL::_ATL_WIN_MODULE70 _ATL_WIN_MODULE;

Remarks

Used by any ATL projects which use windowing features. Based on _ATL_WIN_MODULE70.

Requirements

Header: atlbase.h

ATL_URL_PORT

The type used by CUrl for specifying a port number.

typedef WORD ATL_URL_PORT;

Requirements

Header: atlutil.h

CComDispatchDriver

This class manages COM interface pointers.

typedef CComQIPtr<IDispatch, &__uuidof(IDispatch)> CComDispatchDriver;

Requirements

Header: atlbase.h

CComGlobalsThreadModel

Calls the appropriate thread model methods, regardless of the threading model being used.

#if defined(_ATL_SINGLE_THREADED)
typedef CComSingleThreadModel CComGlobalsThreadModel;
#elif defined(_ATL_APARTMENT_THREADED)
typedef CComMultiThreadModel CComGlobalsThreadModel;
#elif defined(_ATL_FREE_THREADED)
typedef CComMultiThreadModel CComGlobalsThreadModel;
#else
#pragma message ("No global threading model defined")
#endif

Remarks

Depending on the threading model used by your application, the typedef name CComGlobalsThreadModel references either CComSingleThreadModel or CComMultiThreadModel. These classes provide additional typedef names to reference a critical section class.

Note

CComGlobalsThreadModel does not reference class CComMultiThreadModelNoCS.

Using CComGlobalsThreadModel frees you from specifying a particular threading model class. Regardless of the threading model being used, the appropriate methods will be called.

In addition to CComGlobalsThreadModel, ATL provides the typedef name CComObjectThreadModel. The class referenced by each typedef depends on the threading model used, as shown in the following table:

typedef Single threading Apartment threading Free threading
CComObjectThreadModel S S M
CComGlobalsThreadModel S M M

S= CComSingleThreadModel; M= CComMultiThreadModel

Use CComObjectThreadModel within a single object class. Use CComGlobalsThreadModel in an object that is globally available to your program, or when you want to protect module resources across multiple threads.

Requirements

Header: atlbase.h

CComObjectThreadModel

Calls the appropriate thread model methods, regardless of the threading model being used.

#if defined(_ATL_SINGLE_THREADED)
typedef CComSingleThreadModel CComObjectThreadModel;
#elif defined(_ATL_APARTMENT_THREADED)
typedef CComSingleThreadModel CComObjectThreadModel;
#elif defined(_ATL_FREE_THREADED)
typedef CComMultiThreadModel CComObjectThreadModel;
#else
#pragma message ("No global threading model defined")
#endif

Remarks

Depending on the threading model used by your application, the typedef name CComObjectThreadModel references either CComSingleThreadModel or CComMultiThreadModel. These classes provide additional typedef names to reference a critical section class.

Note

CComObjectThreadModel does not reference class CComMultiThreadModelNoCS.

Using CComObjectThreadModel frees you from specifying a particular threading model class. Regardless of the threading model being used, the appropriate methods will be called.

In addition to CComObjectThreadModel, ATL provides the typedef name CComGlobalsThreadModel. The class referenced by each typedef depends on the threading model used, as shown in the following table:

typedef Single threading Apartment threading Free threading
CComObjectThreadModel S S M
CComGlobalsThreadModel S M M

S= CComSingleThreadModel; M= CComMultiThreadModel

Use CComObjectThreadModel within a single object class. Use CComGlobalsThreadModel in an object that is either globally available to your program, or when you want to protect module resources across multiple threads.

Requirements

Header: atlbase.h

CContainedWindow

This class is a specialization of CContainedWindowT.

typedef CContainedWindowT<CWindow> CContainedWindow;

Requirements

Header: atlwin.h

Remarks

CContainedWindow is a specialization of CContainedWindowT. If you want to change the base class or traits, use CContainedWindowT directly.

CPath

A specialization of CPathT using CString.

typedef CPathT<CString> CPath;

Requirements

Header: atlpath.h

CPathA

A specialization of CPathT using CStringA.

typedef CPathT<CStringA> CPathA;

Requirements

Header: atlpath.h

CPathW

A specialization of CPathT using CStringW.

typedef ATL::CPathT<CStringW> CPathW;

Requirements

Header: atlpath.h

CSimpleValArray

Represents an array for storing simple types.

#define CSimpleValArray CSimpleArray

Remarks

CSimpleValArray is provided for creating and managing arrays containing simple data types. It is a simple #define of CSimpleArray.

Requirements

Header: atlsimpcoll.h

LPCURL

A pointer to a constant CUrl object.

typedef const CUrl* LPCURL;

Requirements

Header: atlutil.h

DefaultThreadTraits

The default thread traits class.

Syntax

#if defined(_MT)
   typedef CRTThreadTraits DefaultThreadTraits;
#else
   typedef Win32ThreadTraits DefaultThreadTraits;
#endif

Remarks

If the current project uses the multithreaded CRT, DefaultThreadTraits is defined as CRTThreadTraits. Otherwise, Win32ThreadTraits is used.

Requirements

Header: atlbase.h

LPURL

A pointer to a CUrl object.

typedef CUrl* LPURL;

Requirements

Header: atlutil.h

See also

ATL COM Desktop Components
Functions
Global Variables
Classes and structs
Macros