I tried building dlls/oleaut32/tests/olepicture.c on Windows using cygwin, but ran into a couple small problems. The main problem is:
/cygdrive/c/DOCUME~1/Liz/LOCALS~1/Temp/ccXL7SF3.o:olepicture.c:(.text+0x18e5): undefined reference to `_IPictureDisp_Invoke'
That sounds fishy - is that test using a wine-specific shortcut? If so, what's the kosher windows way to do what it's doing?
Here's the procedure I followed:
1. Download and run the installer from http://cygwin.com Use it to install gcc and git 2. Open a cygwin window 3. Grab a copy of the Wine sources using git as normal 4. cd wine/dlls/oleaut32/tests 5. to avoid conflicts between the win32 headers from wine and from cygwin, just use the cygwin ones. But we do have to copy one header from wine: mkdir -p include/wine cp ../../../include/wine/test.h include/wine 6. Try compiling and linking with $ gcc -DSTANDALONE -Iinclude olepicture.c -mwindows -loleaut32 -lole32 -luuid This fails with all sorts of errors about LOGFONTA. That's because the include lines in olepicture.c are in the wrong order! Edit olepicture.c and change the lines
#include <winuser.h> #include <wingdi.h>
to read
#include <wingdi.h> #include <winuser.h>
7. Try compiling again. Now you fail with a handful of errors like /cygdrive/c/DOCUME~1/Liz/LOCALS~1/Temp/ccXL7SF3.o:olepicture.c:(.text+0x18e5): u ndefined reference to `_IPictureDisp_Invoke'
Seems like a portability problem in tests/olepicture.c.