Lionel Ulmer wrote:
Well, the problem seems to come from an incompatibility between g++ and the way Wine defines COM objects. From my experiences, the g++ vtable starts at offset 8 whereas Wine defines COM object vtables as starting at offset 0 (ie vtable[0] == first method whereas for g++ vtable[2] == first method).
Now as this is a purely WineLib problem, I will let people more competent than me solve the issue, it's just not DirectDraw related at all, but COM related... From what I could find out in 'obj_base.h', you should try rebuilding Wine with the 'ICOM_MSVTABLE_COMPAT' define set to 1 (and read the relevant warning in the associated comment of course :-) ).
Lionel
I've looked at what's done with ICOM_MSVTABLE_COMPAT and it seems that if you recompile WINE with it, this will break native apps that use COM objects.