The default defines for C/C++ compilers on Windows defines "Windows" and "WIN32".
The definition of "Windows" clashes with the shldisp.h header file from the Win32 API (which is included if you try to use any shell32.dll functions) -- which results in a lot of error messages.
I know this can be resolved by overriding the default defines, but it might be worth taking into account in the future, including if, by default, defining something not in all uppercase is a good idea.