Module: wine Branch: master Commit: 631d834022833dfde3bf904f65ea92b096a6c59a URL: http://source.winehq.org/git/wine.git/?a=commit;h=631d834022833dfde3bf904f65...
Author: Andrew Eikum aeikum@codeweavers.com Date: Fri May 6 10:34:37 2011 -0500
mmdevapi/tests: Make capture.c more easily extendible.
---
dlls/mmdevapi/tests/capture.c | 26 +++++++++++++++----------- 1 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/dlls/mmdevapi/tests/capture.c b/dlls/mmdevapi/tests/capture.c index ed497df..4ee7412 100644 --- a/dlls/mmdevapi/tests/capture.c +++ b/dlls/mmdevapi/tests/capture.c @@ -34,6 +34,8 @@ #include "mmdeviceapi.h" #include "audioclient.h"
+static IMMDevice *dev = NULL; + static void test_uninitialized(IAudioClient *ac) { HRESULT hr; @@ -137,15 +139,23 @@ static void test_capture(IAudioClient *ac, HANDLE handle, WAVEFORMATEX *wfx) IUnknown_Release(acc); }
-static void test_audioclient(IAudioClient *ac) +static void test_audioclient(void) { + IAudioClient *ac; IUnknown *unk; HRESULT hr; ULONG ref; WAVEFORMATEX *pwfx, *pwfx2; REFERENCE_TIME t1, t2; + HANDLE handle;
- HANDLE handle = CreateEventW(NULL, FALSE, FALSE, NULL); + hr = IMMDevice_Activate(dev, &IID_IAudioClient, CLSCTX_INPROC_SERVER, + NULL, (void**)&ac); + ok(hr == S_OK, "Activation failed with %08x\n", hr); + if(hr != S_OK) + return; + + handle = CreateEventW(NULL, FALSE, FALSE, NULL);
hr = IAudioClient_QueryInterface(ac, &IID_IUnknown, NULL); ok(hr == E_POINTER, "QueryInterface(NULL) returned %08x\n", hr); @@ -290,6 +300,7 @@ static void test_audioclient(IAudioClient *ac)
test_capture(ac, handle, pwfx);
+ IAudioClient_Release(ac); CloseHandle(handle); CoTaskMemFree(pwfx); } @@ -298,8 +309,6 @@ START_TEST(capture) { HRESULT hr; IMMDeviceEnumerator *mme = NULL; - IMMDevice *dev = NULL; - IAudioClient *ac = NULL;
CoInitializeEx(NULL, COINIT_MULTITHREADED); hr = CoCreateInstance(&CLSID_MMDeviceEnumerator, NULL, CLSCTX_INPROC_SERVER, &IID_IMMDeviceEnumerator, (void**)&mme); @@ -320,13 +329,8 @@ START_TEST(capture) goto cleanup; }
- hr = IMMDevice_Activate(dev, &IID_IAudioClient, CLSCTX_INPROC_SERVER, NULL, (void**)&ac); - ok(hr == S_OK, "Activation failed with %08x\n", hr); - if (ac) - { - test_audioclient(ac); - IAudioClient_Release(ac); - } + test_audioclient(); + IMMDevice_Release(dev);
cleanup: