d3c4106d6f6d587ec4b9013692dc1cf6da29c279 still doesn't fix the initial problem (see log below).
There is still another problem in shlobj.h caused by the inclusion on shobjidl.h from an extern C block:
http://source.winehq.org/git/wine.git/?a=blob;f=include/shlobj.h;h=cda130601...
Should I send a patch to move the three includes before extern C?
How to reproduce the problem:
$ cat test.cpp #include <shlobj.h>
$ wineg++ test.cpp In file included from /usr/local/include/wine/windows/propsys.h:164, from /usr/local/include/wine/windows/shobjidl.h:368, from /usr/local/include/wine/windows/shlobj.h:39, from test.cpp:1: /usr/local/include/wine/windows/propkeydef.h: In function ‘bool operator==(const PROPERTYKEY&, const PROPERTYKEY&)’: /usr/local/include/wine/windows/propkeydef.h:61: error: declaration of C function ‘bool operator==(const PROPERTYKEY&, const PROPERTYKEY&)’ conflicts with /usr/local/include/wine/windows/guiddef.h:110: error: previous declaration ‘bool operator==(const GUID&, const GUID&)’ here /usr/local/include/wine/windows/propkeydef.h: In function ‘bool operator!=(const PROPERTYKEY&, const PROPERTYKEY&)’: /usr/local/include/wine/windows/propkeydef.h:65: error: declaration of C function ‘bool operator!=(const PROPERTYKEY&, const PROPERTYKEY&)’ conflicts with /usr/local/include/wine/windows/guiddef.h:114: error: previous declaration ‘bool operator!=(const GUID&, const GUID&)’ here winegcc: g++ failed