When including atlwin.h from the Microsoft ATL libraries in Visual Studio 2013 building will result in numerous complier errors about undefined elements.
i.e.
<The problem is with the targeted version of windows in the stdafx.h file
from MSDN
Visual C++ no longer supports targeting Windows 95, Windows 98, Windows ME, or Windows NT. If your WINVER or _WIN32_WINNT macros are assigned to one of these versions of Windows, you must modify the macros. When you upgrade a project that was created by using an earlier version of Visual C++, you may see compilation errors related to the WINVER or _WIN32_WINNT macros if they are assigned to a version of Windows that is no longer supported.
So, changing
#ifndef WINVER
#define WINVER 0x0400
#endif
to
#ifndef WINVER
#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
#endif
corrects the build problem
CWindowImpl
is defined in <atlwin.h>
, so you need to include that. I don't know what the file atldwin.h
that you're including is, but apparently it doesn't contain that class.
Edit: According to a comment below by CCondron, this is due to targeting versions of Windows no longer supported by Visual C++. To fix, add:
#define WINVER 0x0500
#define _WIN32_WINNT 0x0500