http://bugs.winehq.org/show_bug.cgi?id=20759
--- Comment #3 from Rob Shearman robertshearman@gmail.com 2009-11-23 09:13:16 --- I can confirm that Alexandre is correct - widl matches MIDL in the size and alignment of REMQIRESULT, so the problem is indeed in gcc's alignment of the hyper & MIDL_uhyper types not matching what we expect.
I have a patch in my tree that changes hyper to use INT64 instead of __int64, as Alexandre suggests, and this does indeed fix the discrepancy. I presume Alexandre will commit such a change later today.
However, there are other places in the source tree where __int64 is used and where the alignment will not be correct. These should be audited and fixed.