Turns out that the WINVER definition is set in the property pages of the project
Open up the properties for FRED2 and make sure that you're selected all configurations
Remove the WINVER=0x410 from the preprocessor definitions
In stdafx.h add the following before anything else:
After the commented out VC_EXTRALEAN, add this:
#ifndef WINVER // Specifies that the minimum required platform is Windows Vista.
#define WINVER 0x0502 // Change this to the appropriate value to target other versions of Windows.
#endif
#ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows Vista.
#define _WIN32_WINNT 0x0502 // Change this to the appropriate value to target other versions of Windows.
#endif
#ifndef _WIN32_WINDOWS // Specifies that the minimum required platform is Windows 98.
#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
#endif
#ifndef _WIN32_IE // Specifies that the minimum required platform is Internet Explorer 7.0.
#define _WIN32_IE 0x0700 // Change this to the appropriate value to target other versions of IE.
#endif
That sets the target as WindowsXP
My guess for the reason is that VS2008 has different MFC headers (VC feature pack will do that to you!)
Hope this helps!
EDIT: You'll need to add stdafx.h as the first include in folderdlg.cpp to ensure that the winver definition is used there as well
(NB: I might have missed something else - fighting with the featurepack redist which doesn't install on vista!, so I can't run it atm, can only compile
)