Macro definitions

I’d like to understand more about how/where/when various macros are defined. Currently I’m attempting to build the project generator in @domamato 's VS2015 feature branch. I believe this is a disconnect with my environment (rather than a problem with that branch) because I was having similar problems with the current master branch of oF in VS2012. The error that I’m seeing is “Unsupported Windows Version”

##macro definitions
sdkddkver.h in the External Dependencies of oF defines _WIN32_WINNT_WINBLUE = 0x0603 which is the windows-provided value used to identify win 8.1.

Platform_WIN32.h should define _WIN32_WINNT = _WIN32_WINNT_WINBLUE if _WIN32_WINNT_WINBLUE is defined. If nothing is defined, it will default to setting _WIN32_WINNT = 0x0501 (winXP)

ofConstants.h will define _WIN32_WINNT = 0x500 (win2k according to sdkddkver.h) if _WIN32_WINNT is not already defined

UnWindows.h will log “Unsupported Windows Version” if _WIN32_WINNT is defined and is < 0x0501

##naiive expectations
I would expect that sdkddkver.h gets included early, then Poco’s Platform_WIN32.h get included later, correctly setting _WIN32_WINNT, then no error should be logged by UnWindows.h and ofConstants.h won’t re-define _WIN32_WINNT

##Thus
what is going on?

my setup:
Windows 8.1 Enterprise
VS 2015 CTP

See also https://github.com/openframeworks/openFrameworks/issues/3853