Added some structure tags and error defines.

diff --git a/include/mmsystem.h b/include/mmsystem.h
index e80271b..ac8482b 100644
--- a/include/mmsystem.h
+++ b/include/mmsystem.h
@@ -61,7 +61,7 @@
 #define MAXMIXERDRIVERS	10
 
 #define MAXPNAMELEN      32     /* max product name length (including NULL) */
-#define MAXERRORLENGTH   128    /* max error text length (including NULL) */
+#define MAXERRORLENGTH   256    /* max error text length (including NULL) */
 #define MAX_JOYSTICKOEMVXDNAME	260
 
 #ifndef _MCIERROR_
@@ -75,7 +75,7 @@
 #endif
 typedef	UINT	MMRESULT;
 
-typedef struct {
+typedef struct mmtime_tag {
     UINT    wType;
     union {
 	DWORD ms;
@@ -95,7 +95,7 @@
 	    DWORD songptrpos;
 	} midi;
     } u;
-} MMTIME,  *LPMMTIME;
+} MMTIME, *PMMTIME, *LPMMTIME;
 
 #define TIME_MS         0x0001  /* time in milliseconds */
 #define TIME_SAMPLES    0x0002  /* number of wave samples */
@@ -153,19 +153,29 @@
 #define MCI_WAVE_OFFSET        1152
 #define MCI_SEQ_OFFSET         1216
 
-#define MMSYSERR_NOERROR      	0                    /* no error */
-#define MMSYSERR_ERROR        	(MMSYSERR_BASE + 1)  /* unspecified error */
-#define MMSYSERR_BADDEVICEID  	(MMSYSERR_BASE + 2)  /* device ID out of range */
-#define MMSYSERR_NOTENABLED   	(MMSYSERR_BASE + 3)  /* driver failed enable */
-#define MMSYSERR_ALLOCATED    	(MMSYSERR_BASE + 4)  /* device already allocated */
-#define MMSYSERR_INVALHANDLE  	(MMSYSERR_BASE + 5)  /* device handle is invalid */
-#define MMSYSERR_NODRIVER     	(MMSYSERR_BASE + 6)  /* no device driver present */
-#define MMSYSERR_NOMEM        	(MMSYSERR_BASE + 7)  /* memory allocation error */
-#define MMSYSERR_NOTSUPPORTED 	(MMSYSERR_BASE + 8)  /* function isn't supported */
-#define MMSYSERR_BADERRNUM    	(MMSYSERR_BASE + 9)  /* error value out of range */
-#define MMSYSERR_INVALFLAG    	(MMSYSERR_BASE + 10) /* invalid flag passed */
-#define MMSYSERR_INVALPARAM   	(MMSYSERR_BASE + 11) /* invalid parameter passed */
-#define MMSYSERR_LASTERROR    	(MMSYSERR_BASE + 11) /* last error in range */
+#define MMSYSERR_NOERROR      0
+#define MMSYSERR_ERROR        (MMSYSERR_BASE + 1)
+#define MMSYSERR_BADDEVICEID  (MMSYSERR_BASE + 2)
+#define MMSYSERR_NOTENABLED   (MMSYSERR_BASE + 3)
+#define MMSYSERR_ALLOCATED    (MMSYSERR_BASE + 4)
+#define MMSYSERR_INVALHANDLE  (MMSYSERR_BASE + 5)
+#define MMSYSERR_NODRIVER     (MMSYSERR_BASE + 6)
+#define MMSYSERR_NOMEM        (MMSYSERR_BASE + 7)
+#define MMSYSERR_NOTSUPPORTED (MMSYSERR_BASE + 8)
+#define MMSYSERR_BADERRNUM    (MMSYSERR_BASE + 9)
+#define MMSYSERR_INVALFLAG    (MMSYSERR_BASE + 10)
+#define MMSYSERR_INVALPARAM   (MMSYSERR_BASE + 11)
+#define MMSYSERR_HANDLEBUSY   (MMSYSERR_BASE + 12)
+#define MMSYSERR_INVALIDALIAS (MMSYSERR_BASE + 13)
+#define MMSYSERR_BADDB        (MMSYSERR_BASE + 14)
+#define MMSYSERR_KEYNOTFOUND  (MMSYSERR_BASE + 15)
+#define MMSYSERR_READERROR    (MMSYSERR_BASE + 16)
+#define MMSYSERR_WRITEERROR   (MMSYSERR_BASE + 17)
+#define MMSYSERR_DELETEERROR  (MMSYSERR_BASE + 18)
+#define MMSYSERR_VALNOTFOUND  (MMSYSERR_BASE + 19)
+#define MMSYSERR_NODRIVERCB   (MMSYSERR_BASE + 20)
+#define MMSYSERR_MOREDATA     (MMSYSERR_BASE + 21)
+#define MMSYSERR_LASTERROR    (MMSYSERR_BASE + 21)
 
 #define CALLBACK_TYPEMASK   	0x00070000l    	/* callback type mask */
 #define CALLBACK_NULL       	0x00000000l    	/* no callback */
@@ -207,7 +217,7 @@
 #define GND_FORWARD  		0x00000000
 #define GND_REVERSE    		0x00000002
 
-typedef struct {
+typedef struct tagDRVCONFIGINFO {
     DWORD   			dwDCISize;
     LPCWSTR  			lpszDCISectionName;
     LPCWSTR  			lpszDCIAliasName;
@@ -447,7 +457,7 @@
 #define WAVE_FORMAT_96S16      0x00080000    /* 96     kHz, Stereo, 16-bit */
 
 /* General format structure common to all formats, same for Win16 and Win32 */
-typedef struct {
+typedef struct waveformat_tag {
     WORD	wFormatTag;
     WORD	nChannels;
     DWORD	nSamplesPerSec;
@@ -457,7 +467,7 @@
 
 #define WAVE_FORMAT_PCM     1
 
-typedef struct {
+typedef struct pcmwaveformat_tag {
     WAVEFORMAT	wf;
     WORD	wBitsPerSample;
 } PCMWAVEFORMAT, *LPPCMWAVEFORMAT;
@@ -465,7 +475,7 @@
 #ifndef _WAVEFORMATEX_
 #define _WAVEFORMATEX_
 /* dito same for Win16 / Win32 */
-typedef struct {
+typedef struct tWAVEFORMATEX {
     WORD	wFormatTag;
     WORD	nChannels;
     DWORD	nSamplesPerSec;
@@ -520,13 +530,15 @@
 UINT 		WINAPI  waveInGetID(HWAVEIN,UINT*);
 UINT           WINAPI  waveInMessage(HWAVEIN,UINT,DWORD_PTR,DWORD_PTR);
 
-#define MIDIERR_UNPREPARED    (MIDIERR_BASE + 0)   /* header not prepared */
-#define MIDIERR_STILLPLAYING  (MIDIERR_BASE + 1)   /* still something playing */
-#define MIDIERR_NOMAP         (MIDIERR_BASE + 2)   /* no current map */
-#define MIDIERR_NOTREADY      (MIDIERR_BASE + 3)   /* hardware is still busy */
-#define MIDIERR_NODEVICE      (MIDIERR_BASE + 4)   /* port no longer connected */
-#define MIDIERR_INVALIDSETUP  (MIDIERR_BASE + 5)   /* invalid setup */
-#define MIDIERR_LASTERROR     (MIDIERR_BASE + 5)   /* last error in range */
+#define MIDIERR_UNPREPARED    (MIDIERR_BASE + 0)
+#define MIDIERR_STILLPLAYING  (MIDIERR_BASE + 1)
+#define MIDIERR_NOMAP         (MIDIERR_BASE + 2)
+#define MIDIERR_NOTREADY      (MIDIERR_BASE + 3)
+#define MIDIERR_NODEVICE      (MIDIERR_BASE + 4)
+#define MIDIERR_INVALIDSETUP  (MIDIERR_BASE + 5)
+#define MIDIERR_BADOPENMODE   (MIDIERR_BASE + 6)
+#define MIDIERR_DONT_CONTINUE (MIDIERR_BASE + 7)
+#define MIDIERR_LASTERROR     (MIDIERR_BASE + 7)
 
 typedef LPDRVCALLBACK LPMIDICALLBACK;
 #define MIDIPATCHSIZE   128
@@ -699,12 +711,12 @@
 #define MHDR_INQUEUE    0x00000004       /* reserved for driver */
 #define MHDR_ISSTRM	0x00000008	 /* data is sent by Stream functions */
 
-typedef struct {
+typedef struct midiproptempo_tag {
     DWORD		cbStruct;
     DWORD		dwTempo;
 } MIDIPROPTEMPO, *LPMIDIPROPTEMPO;
 
-typedef struct {
+typedef struct midiproptimediv_tag {
     DWORD		cbStruct;
     DWORD		dwTimeDiv;
 } MIDIPROPTIMEDIV, *LPMIDIPROPTIMEDIV;
@@ -714,7 +726,7 @@
 #define MIDIPROP_TEMPO		0x00000002
 #define MIDIPROP_TIMEDIV	0x00000001
 
-typedef struct {
+typedef struct midievent_tag {
     DWORD dwDeltaTime;	/* Time, in MIDI ticks, between the previous
 			 * event and the current event. */
     DWORD dwStreamID;	/* Reserved; must be zero. */
@@ -1204,7 +1216,7 @@
 #define	MIXERLINE_TARGETTYPE_MIDIIN	4
 #define MIXERLINE_TARGETTYPE_AUX	5
 
-typedef struct {
+typedef struct tagMIXERLINEA {
     DWORD	cbStruct;
     DWORD	dwDestination;
     DWORD	dwSource;
@@ -1227,7 +1239,7 @@
     } Target;
 } MIXERLINEA, *LPMIXERLINEA;
 
-typedef struct {
+typedef struct tagMIXERLINEW {
     DWORD	cbStruct;
     DWORD	dwDestination;
     DWORD	dwSource;
@@ -1324,7 +1336,7 @@
 #define MIXERCONTROL_CONTROLTYPE_MILLITIME	(MIXERCONTROL_CT_CLASS_TIME | MIXERCONTROL_CT_SC_TIME_MILLISECS | MIXERCONTROL_CT_UNITS_UNSIGNED)
 
 
-typedef struct {
+typedef struct tagMIXERCONTROLA {
     DWORD		cbStruct;
     DWORD		dwControlID;
     DWORD		dwControlType;
@@ -1350,7 +1362,7 @@
     } Metrics;
 } MIXERCONTROLA, *LPMIXERCONTROLA;
 
-typedef struct {
+typedef struct MIXERCONTROLW {
     DWORD		cbStruct;
     DWORD		dwControlID;
     DWORD		dwControlType;
@@ -1379,7 +1391,7 @@
 DECL_WINELIB_TYPE_AW(MIXERCONTROL)
 DECL_WINELIB_TYPE_AW(LPMIXERCONTROL)
 
-typedef struct {
+typedef struct tagMIXERLINECONTROLSA {
     DWORD	cbStruct;
     DWORD	dwLineID;
     union {
@@ -1391,7 +1403,7 @@
     LPMIXERCONTROLA	pamxctrl;
 } MIXERLINECONTROLSA, *LPMIXERLINECONTROLSA;
 
-typedef struct {
+typedef struct tagMIXERLINECONTROLSW {
     DWORD	cbStruct;
     DWORD	dwLineID;
     union {
@@ -1406,7 +1418,7 @@
 DECL_WINELIB_TYPE_AW(MIXERLINECONTROLS)
 DECL_WINELIB_TYPE_AW(LPMIXERLINECONTROLS)
 
-typedef struct {
+typedef struct tMIXERCONTROLDETAILS {
     DWORD	cbStruct;
     DWORD	dwControlID;
     DWORD	cChannels;
@@ -1418,13 +1430,13 @@
     LPVOID	paDetails;
 } MIXERCONTROLDETAILS,*LPMIXERCONTROLDETAILS;
 
-typedef struct {
+typedef struct tagMIXERCONTROLDETAILS_LISTTEXTA {
     DWORD	dwParam1;
     DWORD	dwParam2;
     CHAR	szName[MIXER_LONG_NAME_CHARS];
 } MIXERCONTROLDETAILS_LISTTEXTA,*LPMIXERCONTROLDETAILS_LISTTEXTA;
 
-typedef struct {
+typedef struct tagMIXERCONTROLDETAILS_LISTTEXTW {
     DWORD	dwParam1;
     DWORD	dwParam2;
     WCHAR	szName[MIXER_LONG_NAME_CHARS];
@@ -1507,7 +1519,7 @@
 typedef LRESULT (CALLBACK *LPMMIOPROC)  (LPSTR lpmmioinfo, UINT uMessage,
 					 LPARAM lParam1, LPARAM lParam2);
 
-typedef struct {
+typedef struct _MMIOINFO {
         DWORD		dwFlags;
         FOURCC		fccIOProc;
         LPMMIOPROC	pIOProc;
@@ -1916,11 +1928,11 @@
 
 #define MCI_LOAD_FILE                   0x00000100L
 
-typedef struct {
+typedef struct tagMCI_GENERIC_PARMS {
        DWORD_PTR dwCallback;
 } MCI_GENERIC_PARMS, *LPMCI_GENERIC_PARMS;
 
-typedef struct {
+typedef struct tagMCI_OPEN_PARMSA {
        DWORD_PTR       dwCallback;
 	MCIDEVICEID	wDeviceID;
 	LPSTR		lpstrDeviceType;
@@ -1928,7 +1940,7 @@
 	LPSTR		lpstrAlias;
 } MCI_OPEN_PARMSA, *LPMCI_OPEN_PARMSA;
 
-typedef struct {
+typedef struct tagMCI_OPEN_PARMSW {
        DWORD_PTR       dwCallback;
 	MCIDEVICEID	wDeviceID;
 	LPWSTR		lpstrDeviceType;
@@ -1939,31 +1951,31 @@
 DECL_WINELIB_TYPE_AW(MCI_OPEN_PARMS)
 DECL_WINELIB_TYPE_AW(LPMCI_OPEN_PARMS)
 
-typedef struct {
+typedef struct tagMCI_PLAY_PARMS{
        DWORD_PTR dwCallback;
 	DWORD   dwFrom;
 	DWORD   dwTo;
 } MCI_PLAY_PARMS, *LPMCI_PLAY_PARMS;
 
-typedef struct {
+typedef struct tagMCI_SEEK_PARMS {
        DWORD_PTR dwCallback;
 	DWORD   dwTo;
 } MCI_SEEK_PARMS, *LPMCI_SEEK_PARMS;
 
-typedef struct {
+typedef struct tagMCI_STATUS_PARMS {
        DWORD_PTR dwCallback;
 	DWORD   dwReturn;
 	DWORD   dwItem;
 	DWORD   dwTrack;
 } MCI_STATUS_PARMS, *LPMCI_STATUS_PARMS;
 
-typedef struct {
+typedef struct tagMCI_INFO_PARMSA {
        DWORD_PTR dwCallback;
 	LPSTR   lpstrReturn;
 	DWORD   dwRetSize;
 } MCI_INFO_PARMSA, *LPMCI_INFO_PARMSA;
 
-typedef struct {
+typedef struct tagMCI_INFO_PARMSW {
        DWORD_PTR dwCallback;
 	LPSTR   lpstrReturn;
 	DWORD   dwRetSize;
@@ -1972,13 +1984,13 @@
 DECL_WINELIB_TYPE_AW(MCI_INFO_PARMS)
 DECL_WINELIB_TYPE_AW(LPMCI_INFO_PARMS)
 
-typedef struct {
+typedef struct tagMCI_GETDEVCAPS_PARMS {
        DWORD_PTR dwCallback;
 	DWORD   dwReturn;
 	DWORD   dwItem;
 } MCI_GETDEVCAPS_PARMS, *LPMCI_GETDEVCAPS_PARMS;
 
-typedef struct {
+typedef struct tagMCI_GETDEVCAPS_PARMSA {
        DWORD_PTR dwCallback;
 	LPSTR	lpstrReturn;
 	DWORD	dwRetSize;
@@ -1986,7 +1998,7 @@
 	UINT	wDeviceType;
 } MCI_SYSINFO_PARMSA, *LPMCI_SYSINFO_PARMSA;
 
-typedef struct {
+typedef struct tagMCI_GETDEVCAPS_PARMSW {
        DWORD_PTR dwCallback;
 	LPWSTR	lpstrReturn;
 	DWORD	dwRetSize;
@@ -1997,35 +2009,35 @@
 DECL_WINELIB_TYPE_AW(MCI_SYSINFO_PARMS)
 DECL_WINELIB_TYPE_AW(LPMCI_SYSINFO_PARMS)
 
-typedef struct {
+typedef struct tagMCI_SET_PARMS {
        DWORD_PTR dwCallback;
 	DWORD   dwTimeFormat;
 	DWORD   dwAudio;
 } MCI_SET_PARMS, *LPMCI_SET_PARMS;
 
-typedef struct {
+typedef struct tagMCI_BREAK_PARMS {
        DWORD_PTR dwCallback;
 	INT	nVirtKey;
 	HWND	hwndBreak;
 } MCI_BREAK_PARMS, *LPMCI_BREAK_PARMS;
 
 
-typedef struct {
+typedef struct tagMCI_SOUND_PARMS {
        DWORD_PTR dwCallback;
 	LPCSTR  lpstrSoundName;
 } MCI_SOUND_PARMS, *LPMCI_SOUND_PARMS;
 
-typedef struct {
+typedef struct tagMCI_SAVE_PARMS {
        DWORD_PTR dwCallback;
 	LPCSTR  lpfilename;
 } MCI_SAVE_PARMS, *LPMCI_SAVE_PARMS;
 
-typedef struct {
+typedef struct tagMCI_LOAD_PARMSA {
        DWORD_PTR dwCallback;
 	LPCSTR	lpfilename;
 } MCI_LOAD_PARMSA, *LPMCI_LOAD_PARMSA;
 
-typedef struct {
+typedef struct tagMCI_LOAD_PARMSW {
        DWORD_PTR dwCallback;
 	LPCWSTR	lpfilename;
 } MCI_LOAD_PARMSW, *LPMCI_LOAD_PARMSW;
@@ -2033,7 +2045,7 @@
 DECL_WINELIB_TYPE_AW(MCI_LOAD_PARMS)
 DECL_WINELIB_TYPE_AW(LPMCI_LOAD_PARMS)
 
-typedef struct {
+typedef struct tagMCI_RECORD_PARMS {
        DWORD_PTR dwCallback;
 	DWORD   dwFrom;
 	DWORD   dwTo;
@@ -2082,24 +2094,24 @@
 
 #define MCI_VD_ESCAPE_STRING            0x00000100L
 
-typedef struct {
+typedef struct tagMCI_VD_PLAY_PARMS {
        DWORD_PTR dwCallback;
 	DWORD   dwFrom;
 	DWORD   dwTo;
 	DWORD   dwSpeed;
 } MCI_VD_PLAY_PARMS, *LPMCI_VD_PLAY_PARMS;
 
-typedef struct {
+typedef struct tagMCI_VD_STEP_PARMS {
        DWORD_PTR dwCallback;
 	DWORD   dwFrames;
 } MCI_VD_STEP_PARMS, *LPMCI_VD_STEP_PARMS;
 
-typedef struct {
+typedef struct tagMCI_VD_ESCAPE_PARMSA {
        DWORD_PTR dwCallback;
 	LPCSTR	lpstrCommand;
 } MCI_VD_ESCAPE_PARMSA, *LPMCI_VD_ESCAPE_PARMSA;
 
-typedef struct {
+typedef struct tagMCI_VD_ESCAPE_PARMSW {
        DWORD_PTR dwCallback;
 	LPCWSTR	lpstrCommand;
 } MCI_VD_ESCAPE_PARMSW, *LPMCI_VD_ESCAPE_PARMSW;
@@ -2133,7 +2145,7 @@
 #define MCI_WAVE_GETDEVCAPS_INPUTS      0x00004001L
 #define MCI_WAVE_GETDEVCAPS_OUTPUTS     0x00004002L
 
-typedef struct {
+typedef struct tagMCI_WAVE_OPEN_PARMSA {
        DWORD_PTR       dwCallback;
 	MCIDEVICEID	wDeviceID;
 	LPCSTR		lpstrDeviceType;
@@ -2142,7 +2154,7 @@
 	DWORD   	dwBufferSeconds;
 } MCI_WAVE_OPEN_PARMSA, *LPMCI_WAVE_OPEN_PARMSA;
 
-typedef struct {
+typedef struct tagMCI_WAVE_OPEN_PARMSW {
        DWORD_PTR       dwCallback;
 	MCIDEVICEID	wDeviceID;
 	LPCWSTR		lpstrDeviceType;
@@ -2154,13 +2166,13 @@
 DECL_WINELIB_TYPE_AW(MCI_WAVE_OPEN_PARMS)
 DECL_WINELIB_TYPE_AW(LPMCI_WAVE_OPEN_PARMS)
 
-typedef struct {
+typedef struct tagMCI_WAVE_DELETE_PARMS {
        DWORD_PTR dwCallback;
 	DWORD   dwFrom;
 	DWORD   dwTo;
 } MCI_WAVE_DELETE_PARMS, *LPMCI_WAVE_DELETE_PARMS;
 
-typedef struct {
+typedef struct tagMCI_WAVE_SET_PARMS {
        DWORD_PTR dwCallback;
 	DWORD	dwTimeFormat;
 	DWORD	dwAudio;
@@ -2200,7 +2212,7 @@
 #define MCI_SEQ_SET_MASTER              0x00080000L
 #define MCI_SEQ_SET_OFFSET              0x01000000L
 
-typedef struct {
+typedef struct tagMCI_SEQ_SET_PARMS {
        DWORD_PTR dwCallback;
 	DWORD   dwTimeFormat;
 	DWORD   dwAudio;
@@ -2260,7 +2272,7 @@
 
 #define MCI_ANIM_UPDATE_HDC             0x00020000L
 
-typedef struct {
+typedef struct tagMCI_ANIM_OPEN_PARMSA {
        DWORD_PTR       dwCallback;
 	MCIDEVICEID	wDeviceID;
 	LPCSTR		lpstrDeviceType;
@@ -2270,7 +2282,7 @@
 	HWND		hWndParent;
 } MCI_ANIM_OPEN_PARMSA, *LPMCI_ANIM_OPEN_PARMSA;
 
-typedef struct {
+typedef struct tagMCI_ANIM_OPEN_PARMSW {
        DWORD_PTR       dwCallback;
 	MCIDEVICEID	wDeviceID;
 	LPCWSTR		lpstrDeviceType;
@@ -2283,26 +2295,26 @@
 DECL_WINELIB_TYPE_AW(MCI_ANIM_OPEN_PARMS)
 DECL_WINELIB_TYPE_AW(LPMCI_ANIM_OPEN_PARMS)
 
-typedef struct {
+typedef struct tagMCI_ANIM_PLAY_PARMS {
        DWORD_PTR dwCallback;
 	DWORD   dwFrom;
 	DWORD   dwTo;
 	DWORD   dwSpeed;
 } MCI_ANIM_PLAY_PARMS, *LPMCI_ANIM_PLAY_PARMS;
 
-typedef struct {
+typedef struct tagMCI_ANIM_STEP_PARMS {
        DWORD_PTR dwCallback;
 	DWORD   dwFrames;
 } MCI_ANIM_STEP_PARMS, *LPMCI_ANIM_STEP_PARMS;
 
-typedef struct {
+typedef struct tagMCI_ANIM_WINDOW_PARMSA {
        DWORD_PTR dwCallback;
 	HWND	hWnd;
 	UINT	nCmdShow;
 	LPCSTR	lpstrText;
 } MCI_ANIM_WINDOW_PARMSA, *LPMCI_ANIM_WINDOW_PARMSA;
 
-typedef struct {
+typedef struct tagMCI_ANIM_WINDOW_PARMSW {
        DWORD_PTR dwCallback;
 	HWND	hWnd;
 	UINT	nCmdShow;
@@ -2312,7 +2324,7 @@
 DECL_WINELIB_TYPE_AW(MCI_ANIM_WINDOW_PARMS)
 DECL_WINELIB_TYPE_AW(LPMCI_ANIM_WINDOW_PARMS)
 
-typedef struct {
+typedef struct tagMCI_ANIM_RECT_PARMS {
        DWORD_PTR dwCallback;
 #ifdef MCI_USE_OFFEXT
 	POINT	ptOffset;
@@ -2323,7 +2335,7 @@
 } MCI_ANIM_RECT_PARMS, *LPMCI_ANIM_RECT_PARMS;
 
 
-typedef struct {
+typedef struct tagMCI_ANIM_UPDATE_PARMS {
        DWORD_PTR dwCallback;
 	RECT  rc;
 	HDC   hDC;
@@ -2361,7 +2373,7 @@
 #define MCI_OVLY_WHERE_FRAME            0x00080000L
 #define MCI_OVLY_WHERE_VIDEO            0x00100000L
 
-typedef struct {
+typedef struct tagMCI_OVLY_OPEN_PARMSA {
        DWORD_PTR       dwCallback;
 	MCIDEVICEID	wDeviceID;
 	LPCSTR		lpstrDeviceType;
@@ -2371,7 +2383,7 @@
 	HWND		hWndParent;
 } MCI_OVLY_OPEN_PARMSA, *LPMCI_OVLY_OPEN_PARMSA;
 
-typedef struct {
+typedef struct tagMCI_OVLY_OPEN_PARMSW {
        DWORD_PTR       dwCallback;
 	MCIDEVICEID	wDeviceID;
 	LPCWSTR		lpstrDeviceType;
@@ -2384,14 +2396,14 @@
 DECL_WINELIB_TYPE_AW(MCI_OVLY_OPEN_PARMS)
 DECL_WINELIB_TYPE_AW(LPMCI_OVLY_OPEN_PARMS)
 
-typedef struct {
+typedef struct tagMCI_OVLY_WINDOW_PARMSA {
        DWORD_PTR dwCallback;
 	HWND	hWnd;
 	UINT	nCmdShow;
 	LPCSTR	lpstrText;
 } MCI_OVLY_WINDOW_PARMSA, *LPMCI_OVLY_WINDOW_PARMSA;
 
-typedef struct {
+typedef struct tagMCI_OVLY_WINDOW_PARMSW {
        DWORD_PTR dwCallback;
 	HWND	hWnd;
 	UINT	nCmdShow;
@@ -2401,7 +2413,7 @@
 DECL_WINELIB_TYPE_AW(MCI_OVLY_WINDOW_PARMS)
 DECL_WINELIB_TYPE_AW(LPMCI_OVLY_WINDOW_PARMS)
 
-typedef struct {
+typedef struct tagMCI_OVLY_RECT_PARMS {
        DWORD_PTR dwCallback;
 #ifdef MCI_USE_OFFEXT
 	POINT ptOffset;
@@ -2412,13 +2424,13 @@
 } MCI_OVLY_RECT_PARMS, *LPMCI_OVLY_RECT_PARMS;
 
 
-typedef struct {
+typedef struct tagMCI_OVLY_SAVE_PARMSA {
        DWORD_PTR dwCallback;
 	LPCSTR  lpfilename;
 	RECT  rc;
 } MCI_OVLY_SAVE_PARMSA, *LPMCI_OVLY_SAVE_PARMSA;
 
-typedef struct {
+typedef struct tagMCI_OVLY_SAVE_PARMSW {
        DWORD_PTR dwCallback;
 	LPCWSTR  lpfilename;
 	RECT  rc;
@@ -2427,13 +2439,13 @@
 DECL_WINELIB_TYPE_AW(MCI_OVLY_SAVE_PARMS)
 DECL_WINELIB_TYPE_AW(LPMCI_OVLY_SAVE_PARMS)
 
-typedef struct {
+typedef struct tagMCI_OVLY_LOAD_PARMSA {
        DWORD_PTR dwCallback;
 	LPCSTR	lpfilename;
 	RECT	rc;
 } MCI_OVLY_LOAD_PARMSA, *LPMCI_OVLY_LOAD_PARMSA;
 
-typedef struct {
+typedef struct tagMCI_OVLY_LOAD_PARMSW {
        DWORD_PTR dwCallback;
 	LPCWSTR	lpfilename;
 	RECT	rc;