頭檔案
afximpl.h 實現了一套模板庫,如CArray, CList, CMap等。因為在發布時STL尚未進入C++語言標準,因此ATL自行開發實現了一套。
編譯選項
ATL定義三個宏來來影響生成的COM伺服器的最佳化。
•_ATL_MIN_CRT 伺服器不連結標準的C/C++運行庫,並且ATL提供了函式malloc、realloc、new和delete的一個實現。不能調用任何其他的C/C++運行庫的函式。_mainATL嚮導生成的ATL工程為所有的Release版本的定義了_ATL_MIN_CRT,但是沒有為Debug版本定義這個符號宏。
•_ATL_DLL 伺服器動態連結工具函式館atl.dll
•_ATL_STATIC_REGISTRY 伺服器靜態連結對組件註冊的支持
Debug配置沒有定義上述三個符號宏。Release MinSize配置定義了_ATL_MIN_CRT和_ATL_DLL。Release MinDependency配置定義了_ATL_MIN_CRT和_ATL_STATIC_REGISTRY。
歷史版本
•ATL版本3.0 (Visual Studio 6.0)
•ATL版本7.0 (Visual Studio 2003)
•ATL版本8.0 (Visual Studio 2005)
支持類
ATL包含了許多RAII類以簡化對COM類型的管理。常用的有:
•CComPtr通用智慧型指針
•CComBSTRBSTR包裝
•CComVariantVARIANT包裝
•CComSafeArraySAFEARRAY包裝
編譯器COM支持類
雖然不是ATL的正式組成部分,Microsoft Visual C++包含額外的C++ RAII類以簡化對COM類型的管理,可替代或配合ATL中對應的部分:
•_com_ptr_t裝飾COM接口的智慧型執政,前綴以"Ptr"。
•_bstr_tBSTR包裝器
•_variant_tVARIANT包裝器
•_com_errorHRESULT包裝器
注意從Visual Studio 2012起,編譯器COM支持類不再包含SAFEARRAY包裝器。