This also converts the opaque pointers passed across the PE->Unix interface to opaque types represented as UINT64 which store the unix side pointer. This makes the thunking simpler and should avoid anyone accidently dereferencing the unix pointer in the PE code.
This was tested with warcraft 3 (1.26, the last non-reforged release), and is consistent with the standard 32bit build. ~~But since movies on warcraft 3 are broken in standard 32bit builds I could only test that that the gstreamer graph gets built up similarly and not verify the video playback. Id appreciate if someone knew of a working exercise of the gstreamer code.~~ it works great, the issue with cinematics ended up being related to modesetting under xwayland, running with a virtual desktop in winecfg confirms playback working perfectly.
-- v8: Fixup: define sized bool and enums in params Fixup: assert struct sizes with bool/enum Fixup: designated initializers winegstreamer: Implement Wow64 entrypoints in the Unix library.