https://bugs.winehq.org/show_bug.cgi?id=47041
Bug ID: 47041 Summary: wire_marshal attribute ignored and the underlying type is used instead Product: Wine Version: 3.2 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: rpc Assignee: wine-bugs@winehq.org Reporter: richard@torproject.org Distribution: ---
Assuming the following idl snippet:
typedef struct _FooWindowHandle {long data1; long data2;}; typedef [unique] FooWindowHandle * fooWH; cpp_quote("#if 0") typedef [wire_marshal(fooWH)] void* WH; cpp_quote("#endif // 0")
The wire_marshal attribute appears to be ignored, and for interfaces using the WH type, void* is used instead. As _FooWindowHandle ends up not being used, its definition is not included in the final tlb.
I've created a branch with a min-repro here:
https://github.com/pospeselr/mingw-widl-bug/tree/wire_marshal_bug
This branch includes the typelib generated by the midl.exe version 8.01.0622 from the VS 2019 SDK. Also note that I'm working against version 3.2 today, but this issue also occurs in version 4.5.