https://bugs.winehq.org/show_bug.cgi?id=49772
--- Comment #3 from Nikolay Sivov bunglehead@gmail.com --- It's probably anonymous struct within a union here:
--- union { struct { char gh; }; char df; }; ---
Does it work if you give it a name? If it does it's probably a duplicate of bug 49797 or vice versa.
Garbled filenames are probably temporary files that get left behind when widl crashes.