The build failure comes from `CreateDispatcherQueueController` taking a 12 byte struct as its first parameter by value. This needs 16 bytes on the stack, and the i386 stdcall export is supposed to be `CreateDispatcherQueueController(a)16` but with `(long ptr)` it ends up being `CreateDispatcherQueueController(a)8`. I don't know the proper fix for this, there are multiple options: 1) Not build the module for win32, assuming it's not available on Windows, (something like `enable_coremessaging=${enable_coremessaging:-aarch64,x86_64}` in `configure.ac` near `dnl *** Check for modules to disable by default`) 2) Use `@ stdcall CreateDispatcherQueueController(int128)` in the .spec, it's not exactly correct but it matches the stack size. I think the arguments are only needed for relay so that's maybe fine? 3) Keep it stub on 32bit, something like: ``` @ stdcall -arch=win64 CreateDispatcherQueueController(int128 ptr) @ stub -arch=win32 CreateDispatcherQueueController() ``` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5746#note_71729