Signed-off-by: Sven Baars sbaars@codeweavers.com --- dlls/mmdevapi/tests/mmdevenum.c | 7 ++++ dlls/mmdevapi/tests/render.c | 60 ++++++++++++++++++--------------- 2 files changed, 40 insertions(+), 27 deletions(-)
diff --git a/dlls/mmdevapi/tests/mmdevenum.c b/dlls/mmdevapi/tests/mmdevenum.c index 11df1f0229b..4708c2fef84 100644 --- a/dlls/mmdevapi/tests/mmdevenum.c +++ b/dlls/mmdevapi/tests/mmdevenum.c @@ -218,6 +218,13 @@ static void test_ActivateAudioInterfaceAsync(void)
h_mmdev = LoadLibraryA("mmdevapi.dll");
+ pActivateAudioInterfaceAsync = (void*)GetProcAddress(h_mmdev, "ActivateAudioInterfaceAsync"); + if (!pActivateAudioInterfaceAsync) + { + win_skip("ActivateAudioInterfaceAsync is not supported on Win <= 7\n"); + return; + } + /* some applications look this up by ordinal */ pActivateAudioInterfaceAsync = (void*)GetProcAddress(h_mmdev, (char *)17); ok(pActivateAudioInterfaceAsync != NULL, "mmdevapi.ActivateAudioInterfaceAsync missing!\n"); diff --git a/dlls/mmdevapi/tests/render.c b/dlls/mmdevapi/tests/render.c index 5800ec5fd66..3ad00eaa2e2 100644 --- a/dlls/mmdevapi/tests/render.c +++ b/dlls/mmdevapi/tests/render.c @@ -154,8 +154,11 @@ static void test_audioclient(void)
hr = IMMDevice_Activate(dev, &IID_IAudioClient2, CLSCTX_INPROC_SERVER, NULL, (void**)&ac2); - ok(hr == S_OK, "IAudioClient2 Activation failed with %08x\n", hr); - IAudioClient2_Release(ac2); + ok(hr == S_OK || + broken(hr == E_NOINTERFACE) /* win7 */, + "IAudioClient2 Activation failed with %08x\n", hr); + if(hr == S_OK) + IAudioClient2_Release(ac2);
hr = IMMDevice_Activate(dev, &IID_IAudioClient, CLSCTX_INPROC_SERVER, NULL, (void**)&ac); @@ -262,39 +265,42 @@ static void test_audioclient(void) }
hr = IAudioClient_QueryInterface(ac, &IID_IAudioClient2, (void**)&ac2); - ok(hr == S_OK, "Failed to query IAudioClient2 interface: %08x\n", hr); - - hr = IAudioClient2_IsOffloadCapable(ac2, AudioCategory_BackgroundCapableMedia, NULL); - ok(hr == E_INVALIDARG, "IsOffloadCapable gave wrong error: %08x\n", hr); + if (hr == S_OK) + { + hr = IAudioClient2_IsOffloadCapable(ac2, AudioCategory_BackgroundCapableMedia, NULL); + ok(hr == E_INVALIDARG, "IsOffloadCapable gave wrong error: %08x\n", hr);
- hr = IAudioClient2_IsOffloadCapable(ac2, AudioCategory_BackgroundCapableMedia, &offload_capable); - ok(hr == S_OK, "IsOffloadCapable failed: %08x\n", hr); + hr = IAudioClient2_IsOffloadCapable(ac2, AudioCategory_BackgroundCapableMedia, &offload_capable); + ok(hr == S_OK, "IsOffloadCapable failed: %08x\n", hr);
- hr = IAudioClient2_SetClientProperties(ac2, NULL); - ok(hr == E_POINTER, "SetClientProperties with NULL props gave wrong error: %08x\n", hr); + hr = IAudioClient2_SetClientProperties(ac2, NULL); + ok(hr == E_POINTER, "SetClientProperties with NULL props gave wrong error: %08x\n", hr);
- client_props.cbSize = 0; - client_props.bIsOffload = FALSE; - client_props.eCategory = AudioCategory_BackgroundCapableMedia; - client_props.Options = 0; + client_props.cbSize = 0; + client_props.bIsOffload = FALSE; + client_props.eCategory = AudioCategory_BackgroundCapableMedia; + client_props.Options = 0;
- hr = IAudioClient2_SetClientProperties(ac2, &client_props); - ok(hr == E_INVALIDARG, "SetClientProperties with invalid cbSize gave wrong error: %08x\n", hr); + hr = IAudioClient2_SetClientProperties(ac2, &client_props); + ok(hr == E_INVALIDARG, "SetClientProperties with invalid cbSize gave wrong error: %08x\n", hr);
- client_props.cbSize = sizeof(client_props); - client_props.bIsOffload = TRUE; + client_props.cbSize = sizeof(client_props); + client_props.bIsOffload = TRUE;
- hr = IAudioClient2_SetClientProperties(ac2, &client_props); - if(!offload_capable) - ok(hr == AUDCLNT_E_ENDPOINT_OFFLOAD_NOT_CAPABLE, "SetClientProperties(offload) gave wrong error: %08x\n", hr); - else - ok(hr == S_OK, "SetClientProperties(offload) failed: %08x\n", hr); + hr = IAudioClient2_SetClientProperties(ac2, &client_props); + if(!offload_capable) + ok(hr == AUDCLNT_E_ENDPOINT_OFFLOAD_NOT_CAPABLE, "SetClientProperties(offload) gave wrong error: %08x\n", hr); + else + ok(hr == S_OK, "SetClientProperties(offload) failed: %08x\n", hr);
- client_props.bIsOffload = FALSE; - hr = IAudioClient2_SetClientProperties(ac2, &client_props); - ok(hr == S_OK, "SetClientProperties failed: %08x\n", hr); + client_props.bIsOffload = FALSE; + hr = IAudioClient2_SetClientProperties(ac2, &client_props); + ok(hr == S_OK, "SetClientProperties failed: %08x\n", hr);
- IAudioClient2_Release(ac2); + IAudioClient2_Release(ac2); + } + else + win_skip("IAudioClient2 is not present on Win <= 7\n");
hr = IAudioClient_QueryInterface(ac, &IID_IAudioClient3, (void**)&ac3); ok(hr == S_OK ||