ATL Typedef
活动模板库包括以下 typedef。
Typedef | 说明 |
---|---|
_ATL_BASE_MODULE | 根据 _ATL_BASE_MODULE70 定义为 typedef。 |
_ATL_COM_MODULE | 根据 _ATL_COM_MODULE70 定义为 typedef。 |
_ATL_MODULE | 根据 _ATL_MODULE70 定义为 typedef。 |
_ATL_WIN_MODULE | 根据 _ATL_WIN_MODULE70 定义为 typedef |
ATL_URL_PORT | 此类型由 CUrl 用于指定端口号。 |
CComDispatchDriver | 此类管理 COM 接口指针。 |
CComGlobalsThreadModel | 调用相应的线程模型方法,而不考虑正在使用的线程模型。 |
CComObjectThreadModel | 调用相应的线程模型方法,而不考虑正在使用的线程模型。 |
CContainedWindow | 此类是 CContainedWindowT 的专用化。 |
CPath | 使用 CString 的 CPathT 的专用化。 |
CPathA | 使用 CStringA 的 CPathT 的专用化。 |
CPathW | 使用 CStringW 的 CPathT 的专用化。 |
CSimpleValArray | 表示用于存储简单类型的数组。 |
DefaultThreadTraits | 默认线程特征类。 |
LPCURL | 指向常量 CUrl 对象的指针。 |
LPURL | 指向 CUrl 对象的指针。 |
_ATL_BASE_MODULE
根据 _ATL_BASE_MODULE70 定义为 typedef。
typedef ATL::_ATL_BASE_MODULE70 _ATL_BASE_MODULE;
备注
用于每个 ATL 项目。 基于 _ATL_BASE_MODULE70。
属于 ATL 7.0 模块类的类派生自 _ATL_BASE_MODULE 结构。 有关 ATL 模块类的详细信息,请参阅 COM 模块类。
要求
标头:atlcom.h
_ATL_COM_MODULE
根据 _ATL_COM_MODULE70 定义为 typedef。
typedef ATL::_ATL_COM_MODULE70 _ATL_COM_MODULE;
备注
由使用 COM 功能的 ATL 项目使用。 基于 _ATL_COM_MODULE70。
要求
标头:atlbase.h
_ATL_MODULE
根据 _ATL_MODULE70 定义为 typedef。
typedef ATL::_ATL_MODULE70 _ATL_MODULE;
要求
标头:
备注
基于 _ATL_MODULE70。
_ATL_WIN_MODULE
根据 _ATL_WIN_MODULE70 定义为 typedef。
typedef ATL::_ATL_WIN_MODULE70 _ATL_WIN_MODULE;
注解
由任何使用窗口功能的 ATL 项目使用。 基于 _ATL_WIN_MODULE70。
要求
标头:atlbase.h
ATL_URL_PORT
此类型由 CUrl 用于指定端口号。
typedef WORD ATL_URL_PORT;
要求
标头:atlutil.h
CComDispatchDriver
此类管理 COM 接口指针。
typedef CComQIPtr<IDispatch, &__uuidof(IDispatch)> CComDispatchDriver;
要求
标头:atlbase.h
CComGlobalsThreadModel
调用相应的线程模型方法,而不考虑正在使用的线程模型。
#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
备注
根据应用程序使用的线程模型,typedef
名称 CComGlobalsThreadModel
引用 CComSingleThreadModel 或 CComMultiThreadModel。 这些类提供其他 typedef
名称来引用关键节类。
注意
CComGlobalsThreadModel
不引用 CComMultiThreadModelNoCS 类。
使用 CComGlobalsThreadModel
可以让你不用指定特定线程模型类。 无论所使用哪种线程模型,都会调用相应的方法。
除了 CComGlobalsThreadModel
,ATL 还提供 typedef
名称 CComObjectThreadModel。 每个 typedef
引用的类取决于使用的线程模型,如下表所示:
typedef | 单线程处理 | 单元线程处理 | 免费线程处理 |
---|---|---|---|
CComObjectThreadModel |
S | S | M |
CComGlobalsThreadModel |
S | M | M |
S= CComSingleThreadModel
;M= CComMultiThreadModel
在单个对象类中使用 CComObjectThreadModel
。 在程序全局可用的对象中使用 CComGlobalsThreadModel
,或者想要跨多个线程保护模块资源时使用。
要求
标头:atlbase.h
CComObjectThreadModel
调用相应的线程模型方法,而不考虑正在使用的线程模型。
#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
备注
根据应用程序使用的线程模型,typedef
名称 CComObjectThreadModel
引用 CComSingleThreadModel 或 CComMultiThreadModel。 这些类提供其他 typedef
名称来引用关键节类。
注意
CComObjectThreadModel
不引用 CComMultiThreadModelNoCS 类。
使用 CComObjectThreadModel
可以让你不用指定特定线程模型类。 无论所使用哪种线程模型,都会调用相应的方法。
除了 CComObjectThreadModel
,ATL 还提供 typedef
名称 CComGlobalsThreadModel。 每个 typedef
引用的类取决于使用的线程模型,如下表所示:
typedef | 单线程处理 | 单元线程处理 | 免费线程处理 |
---|---|---|---|
CComObjectThreadModel |
S | S | M |
CComGlobalsThreadModel |
S | M | M |
S= CComSingleThreadModel
;M= CComMultiThreadModel
在单个对象类中使用 CComObjectThreadModel
。 在程序全局可用的对象中使用 CComGlobalsThreadModel
,或者想要跨多个线程保护模块资源时使用。
要求
标头:atlbase.h
CContainedWindow
此类是 CContainedWindowT
的专用化。
typedef CContainedWindowT<CWindow> CContainedWindow;
要求
标头:atlwin.h
备注
CContainedWindow
是 CContainedWindowT 的专用化。 如果你想要更改基类或特征,请直接使用 CContainedWindowT
。
CPath
使用 CString
的 CPathT 的专用化。
typedef CPathT<CString> CPath;
要求
标头:atlpath.h
CPathA
使用 CStringA
的 CPathT 的专用化。
typedef CPathT<CStringA> CPathA;
要求
标头:atlpath.h
CPathW
使用 CStringW
的 CPathT 的专用化。
typedef ATL::CPathT<CStringW> CPathW;
要求
标头:atlpath.h
CSimpleValArray
表示用于存储简单类型的数组。
#define CSimpleValArray CSimpleArray
注解
提供 CSimpleValArray
用于创建和管理包含简单数据类型的数组。 这是 CSimpleArray 的简单 #define。
要求
标头:atlsimpcoll.h
LPCURL
指向常量 CUrl 对象的指针。
typedef const CUrl* LPCURL;
要求
标头:atlutil.h
DefaultThreadTraits
默认线程特征类。
语法
#if defined(_MT)
typedef CRTThreadTraits DefaultThreadTraits;
#else
typedef Win32ThreadTraits DefaultThreadTraits;
#endif
备注
如果当前项目使用多线程 CRT,则 DefaultThreadTraits 定义为 CRTThreadTraits。 否则,使用 Win32ThreadTraits。
要求
标头:atlbase.h
LPURL
指向 CUrl 对象的指针。
typedef CUrl* LPURL;
要求
标头:atlutil.h