Seems I made a mistake when I copied these structures into wtypes.idl, I left out the "u". This is supposed to be the name of the encapsulated union field, which right now is just hardcoded as "u" in widl. This widl bug is fixed (along with many other things) in my tree, but it's probably best to fix wtypes.idl before I submit it. (wtypes.h does not need to be regenerated after applying this, as it would be unchanged because of the currently hardcoded value.) Log: Ove Kaaven <ovek@transgaming.com> Added missing union names for some encapsulated unions. Index: include/wtypes.idl =================================================================== RCS file: /cvsroot/rewind/rewind/include/wtypes.idl,v retrieving revision 1.1 diff -u -r1.1 wtypes.idl --- include/wtypes.idl 18 Nov 2002 18:22:50 -0000 1.1 +++ include/wtypes.idl 27 Nov 2002 19:16:51 -0000 @@ -217,7 +217,7 @@ const unsigned long WDT_INPROC_CALL = 0x48746457; const unsigned long WDT_REMOTE_CALL = 0x52746457; -typedef union _userCLIPFORMAT switch(long fContext) { +typedef union _userCLIPFORMAT switch(long fContext) u { case WDT_INPROC_CALL: DWORD dwValue; case WDT_REMOTE_CALL: [string] WCHAR *pwszName; } userCLIPFORMAT; @@ -233,7 +233,7 @@ [size_is(cbData)] byte data[]; } RemHMETAFILEPICT; -typedef union _userHMETAFILE switch(long fContext) { +typedef union _userHMETAFILE switch(long fContext) u { case WDT_INPROC_CALL: long hInproc; case WDT_REMOTE_CALL: BYTE_BLOB *hRemote; default: long hGlobal; @@ -248,7 +248,7 @@ userHMETAFILE *hMF; } remoteMETAFILEPICT; -typedef union _userHMETAFILEPICT switch(long fContext) { +typedef union _userHMETAFILEPICT switch(long fContext) u { case WDT_INPROC_CALL: long hInproc; case WDT_REMOTE_CALL: remoteMETAFILEPICT *hRemote; default: long hGlobal;