From: Matteo Bruni <mbruni@codeweavers.com> --- dlls/winmm/tests/capture.c | 22 +++++++++++++++++++++- dlls/winmm/tests/wave.c | 22 +++++++++++++++++++++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/dlls/winmm/tests/capture.c b/dlls/winmm/tests/capture.c index f34d4314522..4800f15e53b 100644 --- a/dlls/winmm/tests/capture.c +++ b/dlls/winmm/tests/capture.c @@ -646,12 +646,12 @@ static void wave_in_test_device(UINT_PTR device) static void wave_in_tests(void) { + DWORD preferred, voicecom, status; WAVEINCAPSA capsA; WAVEINCAPSW capsW; WAVEFORMATEX format; HWAVEIN win; MMRESULT rc; - DWORD preferred, status; UINT ndev,d; ndev=waveInGetNumDevs(); @@ -677,6 +677,26 @@ static void wave_in_tests(void) ok(rc == MMSYSERR_INVALPARAM || rc == MMSYSERR_BADDEVICEID, /* w2008+wvista */ "waveInMessage(DRVM_MAPPER_PREFERRED_GET) failed: %u\n", rc); + rc = waveInMessage((HWAVEIN)WAVE_MAPPER, DRVM_MAPPER_CONSOLEVOICECOM_GET, + (DWORD_PTR)&voicecom, (DWORD_PTR)&status); + ok((ndev == 0 && (rc == MMSYSERR_NODRIVER || rc == MMSYSERR_BADDEVICEID)) || + rc == MMSYSERR_NOTSUPPORTED || + rc == MMSYSERR_NOERROR, "waveInMessage(DRVM_MAPPER_CONSOLEVOICECOM_GET) failed: %u\n", rc); + + if(rc != MMSYSERR_NOTSUPPORTED) + ok((ndev == 0 && (voicecom == -1 || broken(voicecom != -1))) || + voicecom < ndev, "Got invalid voicecom device: 0x%lx\n", voicecom); + + rc = waveInMessage((HWAVEIN)WAVE_MAPPER, DRVM_MAPPER_CONSOLEVOICECOM_GET, + (DWORD_PTR)-1, 0); + ok(rc == MMSYSERR_INVALPARAM || rc == MMSYSERR_BADDEVICEID, /* w2008+wvista */ + "waveInMessage(DRVM_MAPPER_CONSOLEVOICECOM_GET) failed: %u\n", rc); + + rc = waveInMessage((HWAVEIN)WAVE_MAPPER, DRVM_MAPPER_CONSOLEVOICECOM_GET, + 0, (DWORD_PTR)&status); + ok(rc == MMSYSERR_INVALPARAM || rc == MMSYSERR_BADDEVICEID, /* w2008+wvista */ + "waveInMessage(DRVM_MAPPER_CONSOLEVOICECOM_GET) failed: %u\n", rc); + rc=waveInGetDevCapsA(ndev+1,&capsA,sizeof(capsA)); ok(rc==MMSYSERR_BADDEVICEID, "waveInGetDevCapsA(%s): MMSYSERR_BADDEVICEID expected, got %s\n", diff --git a/dlls/winmm/tests/wave.c b/dlls/winmm/tests/wave.c index f6917799207..69563c1f3c4 100644 --- a/dlls/winmm/tests/wave.c +++ b/dlls/winmm/tests/wave.c @@ -1483,12 +1483,12 @@ static void wave_out_test_device(UINT_PTR device) static void wave_out_tests(void) { + DWORD preferred, voicecom, status; WAVEOUTCAPSA capsA; WAVEOUTCAPSW capsW; WAVEFORMATEX format; HWAVEOUT wout; MMRESULT rc; - DWORD preferred, status; UINT ndev,d; ndev=waveOutGetNumDevs(); @@ -1514,6 +1514,26 @@ static void wave_out_tests(void) ok(rc == MMSYSERR_INVALPARAM || rc == MMSYSERR_BADDEVICEID, /* w2008+wvista */ "waveOutMessage(DRVM_MAPPER_PREFERRED_GET) failed: %u\n", rc); + rc = waveOutMessage((HWAVEOUT)WAVE_MAPPER, DRVM_MAPPER_CONSOLEVOICECOM_GET, + (DWORD_PTR)&voicecom, (DWORD_PTR)&status); + ok((ndev == 0 && (rc == MMSYSERR_NODRIVER || rc == MMSYSERR_BADDEVICEID)) || + rc == MMSYSERR_NOTSUPPORTED || + rc == MMSYSERR_NOERROR, "waveOutMessage(DRVM_MAPPER_CONSOLEVOICECOM_GET) failed: %u\n", rc); + + if(rc != MMSYSERR_NOTSUPPORTED) + ok((ndev == 0 && (voicecom == -1 || broken(voicecom != -1))) || + voicecom < ndev, "Got invalid voicecom device: 0x%lx\n", voicecom); + + rc = waveOutMessage((HWAVEOUT)WAVE_MAPPER, DRVM_MAPPER_CONSOLEVOICECOM_GET, + (DWORD_PTR)-1, 0); + ok(rc == MMSYSERR_INVALPARAM || rc == MMSYSERR_BADDEVICEID, /* w2008+wvista */ + "waveOutMessage(DRVM_MAPPER_CONSOLEVOICECOM_GET) failed: %u\n", rc); + + rc = waveOutMessage((HWAVEOUT)WAVE_MAPPER, DRVM_MAPPER_CONSOLEVOICECOM_GET, + 0, (DWORD_PTR)&status); + ok(rc == MMSYSERR_INVALPARAM || rc == MMSYSERR_BADDEVICEID, /* w2008+wvista */ + "waveOutMessage(DRVM_MAPPER_CONSOLEVOICECOM_GET) failed: %u\n", rc); + rc=waveOutGetDevCapsA(ndev+1,&capsA,sizeof(capsA)); ok(rc==MMSYSERR_BADDEVICEID, "waveOutGetDevCapsA(%s): MMSYSERR_BADDEVICEID expected, got %s\n", -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10828