=?UTF-8?Q?J=C3=B6rg=20H=C3=B6hle=20?=: winmm: WAVE_OPEN_QUERY causes no WIM /WOM_OPEN notification.

Alexandre Julliard julliard at winehq.org
Fri Feb 22 14:14:00 CST 2013


Module: wine
Branch: master
Commit: 4f0743bffabe49db064248881ade24813cbb63ec
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4f0743bffabe49db064248881ade24813cbb63ec

Author: Jörg Höhle <hoehle at users.sourceforge.net>
Date:   Wed Feb 20 22:53:33 2013 +0100

winmm: WAVE_OPEN_QUERY causes no WIM/WOM_OPEN notification.

---

 dlls/winmm/tests/wave.c |   10 ++++++++++
 dlls/winmm/waveform.c   |    4 ++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/dlls/winmm/tests/wave.c b/dlls/winmm/tests/wave.c
index 9e59e2f..992cca7 100644
--- a/dlls/winmm/tests/wave.c
+++ b/dlls/winmm/tests/wave.c
@@ -854,6 +854,16 @@ static void wave_out_test_deviceOut(int device, double duration,
     rc=WaitForSingleObject(hevent,1500);
     ok(rc==WAIT_OBJECT_0, "missing WOM_CLOSE notification\n");
 
+    wout = (HWAVEOUT)0xdeadf00d;
+    rc=waveOutOpen(&wout,device,pwfx,callback,callback_instance,flags|WAVE_FORMAT_QUERY);
+    ok(rc==MMSYSERR_NOERROR, "WAVE_FORMAT_QUERY(%s): rc=%s\n",dev_name(device),
+       wave_out_error(rc));
+    ok(wout==(HWAVEOUT)0xdeadf00d, "WAVE_FORMAT_QUERY handle %p\n", wout);
+
+    rc=WaitForSingleObject(hevent,20);
+    ok(rc==WAIT_TIMEOUT, "Notification from %s rc=%x\n",
+       wave_open_flags(flags|WAVE_FORMAT_QUERY),rc);
+
     HeapFree(GetProcessHeap(), 0, buffer);
 EXIT:
     if ((flags & CALLBACK_TYPEMASK) == CALLBACK_THREAD) {
diff --git a/dlls/winmm/waveform.c b/dlls/winmm/waveform.c
index a5ffbc0..1dceb26 100644
--- a/dlls/winmm/waveform.c
+++ b/dlls/winmm/waveform.c
@@ -2726,7 +2726,7 @@ MMRESULT WINAPI waveOutOpen(LPHWAVEOUT lphWaveOut, UINT uDeviceID,
     info.reset = TRUE;
 
     res = SendMessageW(g_devices_hwnd, WODM_OPEN, (DWORD_PTR)&info, 0);
-    if(res != MMSYSERR_NOERROR)
+    if(res != MMSYSERR_NOERROR || (dwFlags & WAVE_FORMAT_QUERY))
         return res;
 
     if(lphWaveOut)
@@ -3356,7 +3356,7 @@ MMRESULT WINAPI waveInOpen(HWAVEIN* lphWaveIn, UINT uDeviceID,
     info.reset = TRUE;
 
     res = SendMessageW(g_devices_hwnd, WIDM_OPEN, (DWORD_PTR)&info, 0);
-    if(res != MMSYSERR_NOERROR)
+    if(res != MMSYSERR_NOERROR || (dwFlags & WAVE_FORMAT_QUERY))
         return res;
 
     if(lphWaveIn)




More information about the wine-cvs mailing list