https://bugs.winehq.org/show_bug.cgi?id=47710
--- Comment #2 from Zebediah Figura z.figura12@gmail.com --- (In reply to Zebediah Figura from comment #1)
It seems MIDL generates a name for all anonymous UDTs. I'll send a patch.
Nope, I was wrong. It does generate a name for top-level declarations, which we don't, but it doesn't generate a name for nested declarations. Instead the right thing to do seems to be to add the structure type _STGMEDIUM_UNION. Unfortunately Microsoft decided to violate the C spec (big surprise), so we need to define NONAMELESSUNION in every source file that includes objidl.idl before making this change.