This documentation is archived and is not being maintained.

Compiler Options Macros 

These macros control specific compiler features.


A symbol which enables errors in projects converted from previous versions of ATL.


Define if one or more of your objects use apartment threading.


Makes certain CString constructors explicit, preventing any unintentional conversions.


Define this macro in order to use C++ standard compliant syntax, which generates the C4867 compiler error when a non standard syntax is used to initialize a pointer to a member function.


Define if one or more of your objects use free or neutral threading.


A symbol that indicates the project will have objects that are marked as Both, Free or Neutral. The macro _ATL_FREE_THREADED should be used instead.


A symbol which prevents the default use of namespace as ATL.


A symbol which prevents COM-related code from being compiled with your project.


A symbol that prevents the vtable pointer from being initialized in the class's constructor and destructor.


A symbol that indicates a function should not be inlined.


Define if all of your objects use the single threading model.

See Also

Other Resources

ATL Macros