mmsystem.h CAP2 patch

Robert Reif reif at earthlink.net
Thu Aug 5 07:22:48 CDT 2004


Adds CAPS2 structures.
-------------- next part --------------
Index: include/mmsystem.h
===================================================================
RCS file: /home/wine/wine/include/mmsystem.h,v
retrieving revision 1.72
diff -u -r1.72 mmsystem.h
--- include/mmsystem.h	16 Jul 2004 19:15:40 -0000	1.72
+++ include/mmsystem.h	5 Aug 2004 12:17:48 -0000
@@ -315,7 +315,7 @@
 #define WHDR_ENDLOOP    0x00000008  /* loop end block */
 #define WHDR_INQUEUE    0x00000010  /* reserved for driver */
 
-typedef struct {
+typedef struct tagWAVEOUTCAPSA {
     WORD	wMid;			/* manufacturer ID */
     WORD	wPid;			/* product ID */
     MMVERSION	vDriverVersion;		/* version of the driver */
@@ -326,7 +326,7 @@
     DWORD	dwSupport;		/* functionality supported by driver */
 } WAVEOUTCAPSA, *LPWAVEOUTCAPSA;
 
-typedef struct {
+typedef struct tagWAVEOUTCAPSW {
     WORD	wMid;			/* manufacturer ID */
     WORD	wPid;			/* product ID */
     MMVERSION	vDriverVersion;		/* version of the driver */
@@ -339,6 +339,36 @@
 DECL_WINELIB_TYPE_AW(WAVEOUTCAPS)
 DECL_WINELIB_TYPE_AW(LPWAVEOUTCAPS)
 
+typedef struct tagWAVEOUTCAPS2A {
+    WORD	wMid;			/* manufacturer ID */
+    WORD	wPid;			/* product ID */
+    MMVERSION	vDriverVersion;		/* version of the driver */
+    CHAR	szPname[MAXPNAMELEN];	/* product name (0 terminated string) */
+    DWORD	dwFormats;		/* formats supported */
+    WORD	wChannels;		/* number of sources supported */
+    WORD	wReserved1;		/* padding */
+    DWORD	dwSupport;		/* functionality supported by driver */
+    GUID	ManufacturerGuid;	/* for extensible MID mapping */
+    GUID	ProductGuid;		/* for extensible PID mapping */
+    GUID	NameGuid;		/* for name lookup in registry */
+} WAVEOUTCAPS2A, *LPWAVEOUTCAPS2A;
+
+typedef struct tagWAVEOUTCAPS2W {
+    WORD	wMid;			/* manufacturer ID */
+    WORD	wPid;			/* product ID */
+    MMVERSION	vDriverVersion;		/* version of the driver */
+    WCHAR	szPname[MAXPNAMELEN];	/* product name (0 terminated string) */
+    DWORD	dwFormats;		/* formats supported */
+    WORD	wChannels;		/* number of sources supported */
+    WORD	wReserved1;		/* padding */
+    DWORD	dwSupport;		/* functionality supported by driver */
+    GUID	ManufacturerGuid;	/* for extensible MID mapping */
+    GUID	ProductGuid;		/* for extensible PID mapping */
+    GUID	NameGuid;		/* for name lookup in registry */
+} WAVEOUTCAPS2W, *LPWAVEOUTCAPS2W;
+DECL_WINELIB_TYPE_AW(WAVEOUTCAPS2)
+DECL_WINELIB_TYPE_AW(LPWAVEOUTCAPS2)
+
 #define WAVECAPS_PITCH          0x0001   /* supports pitch control */
 #define WAVECAPS_PLAYBACKRATE   0x0002   /* supports playback rate control */
 #define WAVECAPS_VOLUME         0x0004   /* supports volume control */
@@ -347,7 +377,7 @@
 #define WAVECAPS_SAMPLEACCURATE 0x0020	 /* position is sample accurate */
 #define WAVECAPS_DIRECTSOUND	0x0040   /* ? */
 
-typedef struct {
+typedef struct tagWAVEINCAPSA {
     WORD	wMid;			/* manufacturer ID */
     WORD	wPid;			/* product ID */
     MMVERSION	vDriverVersion;		/* version of the driver */
@@ -356,7 +386,7 @@
     WORD	wChannels;		/* number of channels supported */
     WORD	wReserved1;
 } WAVEINCAPSA, *LPWAVEINCAPSA;
-typedef struct {
+typedef struct tagWAVEINCAPSW {
     WORD	wMid;			/* manufacturer ID */
     WORD	wPid;			/* product ID */
     MMVERSION	vDriverVersion;		/* version of the driver */
@@ -368,6 +398,33 @@
 DECL_WINELIB_TYPE_AW(WAVEINCAPS)
 DECL_WINELIB_TYPE_AW(LPWAVEINCAPS)
 
+typedef struct tagWAVEINCAPS2A {
+    WORD	wMid;			/* manufacturer ID */
+    WORD	wPid;			/* product ID */
+    MMVERSION	vDriverVersion;		/* version of the driver */
+    CHAR	szPname[MAXPNAMELEN];	/* product name (0 terminated string) */
+    DWORD	dwFormats;		/* formats supported */
+    WORD	wChannels;		/* number of channels supported */
+    WORD	wReserved1;
+    GUID	ManufacturerGuid;	/* for extensible MID mapping */
+    GUID	ProductGuid;		/* for extensible PID mapping */
+    GUID	NameGuid;		/* for name lookup in registry */
+} WAVEINCAPS2A, *LPWAVEINCAPS2A;
+typedef struct tagWAVEINCAPS2W {
+    WORD	wMid;			/* manufacturer ID */
+    WORD	wPid;			/* product ID */
+    MMVERSION	vDriverVersion;		/* version of the driver */
+    WCHAR	szPname[MAXPNAMELEN];	/* product name (0 terminated string) */
+    DWORD	dwFormats;		/* formats supported */
+    WORD	wChannels;		/* number of channels supported */
+    WORD	wReserved1;
+    GUID	ManufacturerGuid;	/* for extensible MID mapping */
+    GUID	ProductGuid;		/* for extensible PID mapping */
+    GUID	NameGuid;		/* for name lookup in registry */
+} WAVEINCAPS2W, *LPWAVEINCAPS2W;
+DECL_WINELIB_TYPE_AW(WAVEINCAPS2)
+DECL_WINELIB_TYPE_AW(LPWAVEINCAPS2)
+
 #define WAVE_INVALIDFORMAT     0x00000000    /* invalid format */
 #define WAVE_FORMAT_1M08       0x00000001    /* 11.025 kHz, Mono,   8-bit  */
 #define WAVE_FORMAT_1S08       0x00000002    /* 11.025 kHz, Stereo, 8-bit  */
@@ -509,7 +566,7 @@
 #define MIDI_CACHE_QUERY    3
 #define MIDI_UNCACHE        4
 
-typedef struct {
+typedef struct tagMIDIOUTCAPSA {
     WORD	wMid;		/* manufacturer ID */
     WORD	wPid;		/* product ID */
     MMVERSION	vDriverVersion;	/* version of the driver */
@@ -521,7 +578,7 @@
     DWORD	dwSupport;	/* functionality supported by driver */
 } MIDIOUTCAPSA, *LPMIDIOUTCAPSA;
 
-typedef struct {
+typedef struct tagMIDIOUTCAPSW {
     WORD	wMid;		/* manufacturer ID */
     WORD	wPid;		/* product ID */
     MMVERSION	vDriverVersion;	/* version of the driver */
@@ -536,6 +593,39 @@
 DECL_WINELIB_TYPE_AW(MIDIOUTCAPS)
 DECL_WINELIB_TYPE_AW(LPMIDIOUTCAPS)
 
+typedef struct tagMIDIOUTCAPS2A {
+    WORD	wMid;		/* manufacturer ID */
+    WORD	wPid;		/* product ID */
+    MMVERSION	vDriverVersion;	/* version of the driver */
+    CHAR	szPname[MAXPNAMELEN];/* product name (NULL terminated string) */
+    WORD	wTechnology;	/* type of device */
+    WORD	wVoices;	/* # of voices (internal synth only) */
+    WORD	wNotes;		/* max # of notes (internal synth only) */
+    WORD	wChannelMask;	/* channels used (internal synth only) */
+    DWORD	dwSupport;	/* functionality supported by driver */
+    GUID	ManufacturerGuid;/* for extensible MID mapping */
+    GUID	ProductGuid;	/* for extensible PID mapping */
+    GUID	NameGuid;	/* for name lookup in registry */
+} MIDIOUTCAPS2A, *LPMIDIOUTCAPS2A;
+
+typedef struct tagMIDIOUTCAPS2W {
+    WORD	wMid;		/* manufacturer ID */
+    WORD	wPid;		/* product ID */
+    MMVERSION	vDriverVersion;	/* version of the driver */
+    WCHAR	szPname[MAXPNAMELEN];/* product name (NULL terminated string) */
+    WORD	wTechnology;	/* type of device */
+    WORD	wVoices;	/* # of voices (internal synth only) */
+    WORD	wNotes;		/* max # of notes (internal synth only) */
+    WORD	wChannelMask;	/* channels used (internal synth only) */
+    DWORD	dwSupport;	/* functionality supported by driver */
+    GUID	ManufacturerGuid;/* for extensible MID mapping */
+    GUID	ProductGuid;	/* for extensible PID mapping */
+    GUID	NameGuid;	/* for name lookup in registry */
+} MIDIOUTCAPS2W, *LPMIDIOUTCAPS2W;
+
+DECL_WINELIB_TYPE_AW(MIDIOUTCAPS2)
+DECL_WINELIB_TYPE_AW(LPMIDIOUTCAPS2)
+
 #define MOD_MIDIPORT    1  /* output port */
 #define MOD_SYNTH       2  /* generic internal synth */
 #define MOD_SQSYNTH     3  /* square wave internal synth */
@@ -547,7 +637,7 @@
 #define MIDICAPS_CACHE		0x0004
 #define MIDICAPS_STREAM		0x0008  /* capable of supporting stream buffer */
 
-typedef struct {
+typedef struct tagMIDIINCAPSA {
     WORD	wMid;		/* manufacturer ID */
     WORD	wPid;		/* product ID */
     MMVERSION	vDriverVersion;	/* version of the driver */
@@ -555,7 +645,7 @@
     DWORD	dwSupport;	/* included in win95 and higher */
 } MIDIINCAPSA, *LPMIDIINCAPSA;
 
-typedef struct {
+typedef struct tagMIDIINCAPSW {
     WORD	wMid;		/* manufacturer ID */
     WORD	wPid;		/* product ID */
     MMVERSION	vDriverVersion;	/* version of the driver */
@@ -566,6 +656,31 @@
 DECL_WINELIB_TYPE_AW(MIDIINCAPS)
 DECL_WINELIB_TYPE_AW(LPMIDIINCAPS)
 
+typedef struct tagMIDIINCAPS2A {
+    WORD	wMid;		/* manufacturer ID */
+    WORD	wPid;		/* product ID */
+    MMVERSION	vDriverVersion;	/* version of the driver */
+    CHAR	szPname[MAXPNAMELEN];/* product name (NULL terminated string) */
+    DWORD	dwSupport;	/* included in win95 and higher */
+    GUID	ManufacturerGuid;/* for extensible MID mapping */
+    GUID	ProductGuid;	/* for extensible PID mapping */
+    GUID	NameGuid;	/* for name lookup in registry */
+} MIDIINCAPS2A, *LPMIDIINCAPS2A;
+
+typedef struct tagMIDIINCAPS2W {
+    WORD	wMid;		/* manufacturer ID */
+    WORD	wPid;		/* product ID */
+    MMVERSION	vDriverVersion;	/* version of the driver */
+    WCHAR	szPname[MAXPNAMELEN];/* product name (NULL terminated string) */
+    DWORD	dwSupport;	/* included in win95 and higher */
+    GUID	ManufacturerGuid;/* for extensible MID mapping */
+    GUID	ProductGuid;	/* for extensible PID mapping */
+    GUID	NameGuid;	/* for name lookup in registry */
+} MIDIINCAPS2W, *LPMIDIINCAPS2W;
+
+DECL_WINELIB_TYPE_AW(MIDIINCAPS2)
+DECL_WINELIB_TYPE_AW(LPMIDIINCAPS2)
+
 /* It seems that Win32 has a slightly different structure than Win 16.
  * sigh....
  */
@@ -672,7 +787,7 @@
 
 #define AUX_MAPPER     (-1)
 
-typedef struct {
+typedef struct tagAUXCAPSA {
     WORD	wMid;			/* manufacturer ID */
     WORD	wPid;			/* product ID */
     MMVERSION	vDriverVersion;		/* version of the driver */
@@ -682,7 +797,7 @@
     DWORD	dwSupport;		/* functionality supported by driver */
 } AUXCAPSA, *LPAUXCAPSA;
 
-typedef struct {
+typedef struct tagAUXCAPSW {
     WORD	wMid;			/* manufacturer ID */
     WORD	wPid;			/* product ID */
     MMVERSION	vDriverVersion;		/* version of the driver */
@@ -695,6 +810,35 @@
 DECL_WINELIB_TYPE_AW(AUXCAPS)
 DECL_WINELIB_TYPE_AW(LPAUXCAPS)
 
+typedef struct tagAUXCAPS2A {
+    WORD	wMid;			/* manufacturer ID */
+    WORD	wPid;			/* product ID */
+    MMVERSION	vDriverVersion;		/* version of the driver */
+    CHAR	szPname[MAXPNAMELEN];	/* product name (NULL terminated string) */
+    WORD	wTechnology;		/* type of device */
+    WORD	wReserved1;		/* padding */
+    DWORD	dwSupport;		/* functionality supported by driver */
+    GUID	ManufacturerGuid;	/* for extensible MID mapping */
+    GUID	ProductGuid;		/* for extensible PID mapping */
+    GUID	NameGuid;		/* for name lookup in registry */
+} AUXCAPS2A, *LPAUXCAPS2A;
+
+typedef struct tagAUXCAPS2W {
+    WORD	wMid;			/* manufacturer ID */
+    WORD	wPid;			/* product ID */
+    MMVERSION	vDriverVersion;		/* version of the driver */
+    WCHAR	szPname[MAXPNAMELEN];	/* product name (NULL terminated string) */
+    WORD	wTechnology;		/* type of device */
+    WORD	wReserved1;		/* padding */
+    DWORD	dwSupport;		/* functionality supported by driver */
+    GUID	ManufacturerGuid;	/* for extensible MID mapping */
+    GUID	ProductGuid;		/* for extensible PID mapping */
+    GUID	NameGuid;		/* for name lookup in registry */
+} AUXCAPS2W, *LPAUXCAPS2W;
+
+DECL_WINELIB_TYPE_AW(AUXCAPS2)
+DECL_WINELIB_TYPE_AW(LPAUXCAPS2)
+
 #define AUXCAPS_CDAUDIO    1       /* audio from internal CD-ROM drive */
 #define AUXCAPS_AUXIN      2       /* audio from auxiliary input jacks */
 
@@ -722,7 +866,7 @@
 #define TIME_CALLBACK_EVENT_PULSE 	0x0020	/* callback is event - use PulseEvent */
 #define TIME_KILL_SYNCHRONOUS           0x0100
 
-typedef struct {
+typedef struct timecaps_tag {
     UINT	wPeriodMin;
     UINT	wPeriodMax;
 } TIMECAPS, *LPTIMECAPS;
@@ -798,7 +942,7 @@
 #define JOY_CAL_READUONLY	0x04000000
 #define JOY_CAL_READVONLY	0x08000000
 
-typedef struct {
+typedef struct tagJOYCAPSA {
     WORD wMid;
     WORD wPid;
     CHAR szPname[MAXPNAMELEN];
@@ -825,7 +969,7 @@
     CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME];
 } JOYCAPSA, *LPJOYCAPSA;
 
-typedef struct {
+typedef struct tagJOYCAPSW {
     WORD wMid;
     WORD wPid;
     WCHAR szPname[MAXPNAMELEN];
@@ -854,14 +998,76 @@
 DECL_WINELIB_TYPE_AW(JOYCAPS)
 DECL_WINELIB_TYPE_AW(LPJOYCAPS)
 
-typedef struct {
+typedef struct tagJOYCAPS2A {
+    WORD wMid;
+    WORD wPid;
+    CHAR szPname[MAXPNAMELEN];
+    UINT wXmin;
+    UINT wXmax;
+    UINT wYmin;
+    UINT wYmax;
+    UINT wZmin;
+    UINT wZmax;
+    UINT wNumButtons;
+    UINT wPeriodMin;
+    UINT wPeriodMax;
+    UINT wRmin;
+    UINT wRmax;
+    UINT wUmin;
+    UINT wUmax;
+    UINT wVmin;
+    UINT wVmax;
+    UINT wCaps;
+    UINT wMaxAxes;
+    UINT wNumAxes;
+    UINT wMaxButtons;
+    CHAR szRegKey[MAXPNAMELEN];
+    CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME];
+    GUID	ManufacturerGuid;	/* for extensible MID mapping */
+    GUID	ProductGuid;		/* for extensible PID mapping */
+    GUID	NameGuid;		/* for name lookup in registry */
+} JOYCAPS2A, *LPJOYCAPS2A;
+
+typedef struct tagJOYCAPS2W {
+    WORD wMid;
+    WORD wPid;
+    WCHAR szPname[MAXPNAMELEN];
+    UINT wXmin;
+    UINT wXmax;
+    UINT wYmin;
+    UINT wYmax;
+    UINT wZmin;
+    UINT wZmax;
+    UINT wNumButtons;
+    UINT wPeriodMin;
+    UINT wPeriodMax;
+    UINT wRmin;
+    UINT wRmax;
+    UINT wUmin;
+    UINT wUmax;
+    UINT wVmin;
+    UINT wVmax;
+    UINT wCaps;
+    UINT wMaxAxes;
+    UINT wNumAxes;
+    UINT wMaxButtons;
+    WCHAR szRegKey[MAXPNAMELEN];
+    WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME];
+    GUID ManufacturerGuid;	/* for extensible MID mapping */
+    GUID ProductGuid;		/* for extensible PID mapping */
+    GUID NameGuid;		/* for name lookup in registry */
+} JOYCAPS2W, *LPJOYCAPS2W;
+DECL_WINELIB_TYPE_AW(JOYCAPS2)
+DECL_WINELIB_TYPE_AW(LPJOYCAPS2)
+
+typedef struct joyinfo_tag {
     UINT wXpos;
     UINT wYpos;
     UINT wZpos;
     UINT wButtons;
 } JOYINFO, *LPJOYINFO;
 
-typedef struct {
+typedef struct joyinfoex_tag {
     DWORD	dwSize;		/* size of structure */
     DWORD	dwFlags;	/* flags to indicate what to return */
     DWORD	dwXpos;		/* x position */
@@ -895,7 +1101,7 @@
 #define MIXERR_INVALVALUE	(MIXERR_BASE + 2)
 #define MIXERR_LASTERROR	(MIXERR_BASE + 2)
 
-typedef struct {
+typedef struct tagMIXERCAPSA {
 	WORD		wMid;
 	WORD		wPid;
 	MMVERSION	vDriverVersion;
@@ -904,7 +1110,7 @@
 	DWORD		cDestinations;
 } MIXERCAPSA,*LPMIXERCAPSA;
 
-typedef struct {
+typedef struct tagMIXERCAPSW {
 	WORD		wMid;
 	WORD		wPid;
 	MMVERSION	vDriverVersion;
@@ -915,6 +1121,33 @@
 
 DECL_WINELIB_TYPE_AW(MIXERCAPS)
 DECL_WINELIB_TYPE_AW(LPMIXERCAPS)
+
+typedef struct tagMIXERCAPS2A {
+	WORD		wMid;
+	WORD		wPid;
+	MMVERSION	vDriverVersion;
+	CHAR		szPname[MAXPNAMELEN];
+	DWORD		fdwSupport;
+	DWORD		cDestinations;
+	GUID		ManufacturerGuid;	/* for extensible MID mapping */
+	GUID		ProductGuid;		/* for extensible PID mapping */
+	GUID		NameGuid;		/* for name lookup in registry */
+} MIXERCAPS2A,*LPMIXERCAPS2A;
+
+typedef struct tagMIXERCAPS2W {
+	WORD		wMid;
+	WORD		wPid;
+	MMVERSION	vDriverVersion;
+	WCHAR		szPname[MAXPNAMELEN];
+	DWORD		fdwSupport;
+	DWORD		cDestinations;
+	GUID		ManufacturerGuid;	/* for extensible MID mapping */
+	GUID		ProductGuid;		/* for extensible PID mapping */
+	GUID		NameGuid;		/* for name lookup in registry */
+} MIXERCAPS2W,*LPMIXERCAPS2W;
+
+DECL_WINELIB_TYPE_AW(MIXERCAPS2)
+DECL_WINELIB_TYPE_AW(LPMIXERCAPS2)
 
 #define MIXER_SHORT_NAME_CHARS		16
 #define MIXER_LONG_NAME_CHARS		64


More information about the wine-patches mailing list