Module: wine Branch: master Commit: 4a0db15622b6ea3ce5b0bd827363a83af504d7e0 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4a0db15622b6ea3ce5b0bd8273...
Author: Anton Baskanov baskanov@gmail.com Date: Thu Jul 28 21:59:51 2016 +0600
amstream: Fix AMAudioData::QueryInterface.
Signed-off-by: Anton Baskanov baskanov@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/amstream/audiodata.c | 1 - dlls/amstream/tests/amstream.c | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-)
diff --git a/dlls/amstream/audiodata.c b/dlls/amstream/audiodata.c index c3bc1a6..7adb0c2 100644 --- a/dlls/amstream/audiodata.c +++ b/dlls/amstream/audiodata.c @@ -43,7 +43,6 @@ static HRESULT WINAPI IAudioDataImpl_QueryInterface(IAudioData *iface, REFIID ri TRACE("(%p)->(%s,%p)\n", iface, debugstr_guid(riid), ret_iface);
if (IsEqualGUID(riid, &IID_IUnknown) || - IsEqualGUID(riid, &IID_IMemoryData) || IsEqualGUID(riid, &IID_IAudioData)) { IAudioData_AddRef(iface); diff --git a/dlls/amstream/tests/amstream.c b/dlls/amstream/tests/amstream.c index c9e9392..b4ead56 100644 --- a/dlls/amstream/tests/amstream.c +++ b/dlls/amstream/tests/amstream.c @@ -593,6 +593,39 @@ error: IAMMultiMediaStream_Release(pams); }
+static IUnknown *create_audio_data(void) +{ + IUnknown *audio_data = NULL; + HRESULT result = CoCreateInstance(&CLSID_AMAudioData, NULL, CLSCTX_INPROC_SERVER, + &IID_IUnknown, (void **)&audio_data); + ok(S_OK == result, "got 0x%08x\n", result); + return audio_data; +} + +static void test_audiodata_query_interface(void) +{ + IUnknown *unknown = create_audio_data(); + IMemoryData *memory_data = NULL; + IAudioData *audio_data = NULL; + + HRESULT result; + + result = IUnknown_QueryInterface(unknown, &IID_IMemoryData, (void **)&memory_data); + ok(E_NOINTERFACE == result, "got 0x%08x\n", result); + + result = IUnknown_QueryInterface(unknown, &IID_IAudioData, (void **)&audio_data); + ok(S_OK == result, "got 0x%08x\n", result); + if (S_OK == result) + { + result = IAudioData_QueryInterface(audio_data, &IID_IMemoryData, (void **)&memory_data); + ok(E_NOINTERFACE == result, "got 0x%08x\n", result); + + IAudioData_Release(audio_data); + } + + IUnknown_Release(unknown); +} + START_TEST(amstream) { HANDLE file; @@ -611,5 +644,7 @@ START_TEST(amstream) test_renderfile(); }
+ test_audiodata_query_interface(); + CoUninitialize(); }