[WINMM] check waveOutGetVolume parameter
Robert Reif
reif at earthlink.net
Mon May 8 19:51:23 CDT 2006
Check waveOutGetVolume parameter with test.
-------------- next part --------------
Index: dlls/winmm/winmm.c
===================================================================
RCS file: /home/wine/wine/dlls/winmm/winmm.c,v
retrieving revision 1.58
diff -p -u -r1.58 winmm.c
--- dlls/winmm/winmm.c 28 Nov 2005 11:01:05 -0000 1.58
+++ dlls/winmm/winmm.c 9 May 2006 00:48:20 -0000
@@ -2425,7 +2425,12 @@ UINT WINAPI waveOutGetVolume(HWAVEOUT hW
TRACE("(%p, %08lx);\n", hWaveOut, (DWORD)lpdw);
- if ((wmld = MMDRV_Get(hWaveOut, MMDRV_WAVEOUT, TRUE)) == NULL)
+ if (lpdw == NULL) {
+ WARN("invalid parameter\n");
+ return MMSYSERR_INVALPARAM;
+ }
+
+ if ((wmld = MMDRV_Get(hWaveOut, MMDRV_WAVEOUT, TRUE)) == NULL)
return MMSYSERR_INVALHANDLE;
return MMDRV_Message(wmld, WODM_GETVOLUME, (DWORD_PTR)lpdw, 0L, TRUE);
Index: dlls/winmm/tests/wave.c
===================================================================
RCS file: /home/wine/wine/dlls/winmm/tests/wave.c,v
retrieving revision 1.54
diff -p -u -r1.54 wave.c
--- dlls/winmm/tests/wave.c 8 May 2006 13:03:30 -0000 1.54
+++ dlls/winmm/tests/wave.c 9 May 2006 00:48:21 -0000
@@ -640,6 +640,9 @@ static void wave_out_test_deviceOut(int
frag.dwFlags=0;
frag.dwLoops=0;
+ rc=waveOutGetVolume(wout,0);
+ ok(rc==MMSYSERR_INVALPARAM,"waveOutGetVolume(%s,0) expected "
+ "MMSYSERR_INVALPARAM, got %s\n", dev_name(device),wave_out_error(rc));
rc=waveOutGetVolume(wout,&volume);
ok(has_volume ? rc==MMSYSERR_NOERROR : rc==MMSYSERR_NOTSUPPORTED,
"waveOutGetVolume(%s): rc=%s\n",dev_name(device),wave_out_error(rc));
More information about the wine-patches
mailing list