From: Giovanni Mascellani <gmascellani@codeweavers.com> --- dlls/winmm/tests/wave.c | 2 -- dlls/winmm/waveform.c | 10 +++++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/dlls/winmm/tests/wave.c b/dlls/winmm/tests/wave.c index b23209541da..e1f7bf0768c 100644 --- a/dlls/winmm/tests/wave.c +++ b/dlls/winmm/tests/wave.c @@ -2088,7 +2088,6 @@ static void test_format(WAVEFORMATEXTENSIBLE *fmt) /* Native seems to largely ignore when the channel mask has nonsensical values, while Wine is more picky. */ || (fmt->Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE && __popcnt(fmt->dwChannelMask) != fmt->Format.nChannels))) ok(mmr == expected || broken(channel_mismatch), "waveOutOpen(0) got result %#08x, expected %#08x\n", mmr, expected); - todo_wine_if((mmr == MMSYSERR_NOERROR) != !!hwo) ok((mmr == MMSYSERR_NOERROR) == !!hwo, "Unexpected waveout %p\n", hwo); if (hwo && hwo != (void *)0xdeadf00d) @@ -2108,7 +2107,6 @@ static void test_format(WAVEFORMATEXTENSIBLE *fmt) || (fmt->Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE && __popcnt(fmt->dwChannelMask) != fmt->Format.nChannels))) ok(mmr == expected || (mmr == MMSYSERR_INVALPARAM && expected == WAVERR_BADFORMAT) || broken(channel_mismatch), "waveOutOpen(DIRECT) got result %#08x, expected %#08x\n", mmr, expected); - todo_wine_if((mmr == MMSYSERR_NOERROR) != !!hwo) ok((mmr == MMSYSERR_NOERROR) == !!hwo, "Unexpected waveout %p\n", hwo); if (hwo && hwo != (void *)0xdeadf00d) diff --git a/dlls/winmm/waveform.c b/dlls/winmm/waveform.c index 8ede1282c8d..56ff56ea6d0 100644 --- a/dlls/winmm/waveform.c +++ b/dlls/winmm/waveform.c @@ -2742,8 +2742,16 @@ MMRESULT WINAPI waveOutOpen(LPHWAVEOUT lphWaveOut, UINT uDeviceID, res = SendMessageW(g_devices_hwnd, WODM_OPEN, (DWORD_PTR)&info, 0); InterlockedDecrement(&g_devthread_token); - if(res != MMSYSERR_NOERROR || (dwFlags & WAVE_FORMAT_QUERY)) + + if (dwFlags & WAVE_FORMAT_QUERY) + return res; + + if (res != MMSYSERR_NOERROR) + { + if (lphWaveOut) + *lphWaveOut = 0; return res; + } if(lphWaveOut) *lphWaveOut = (HWAVEOUT)info.handle; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10224