Module: wine Branch: master Commit: 19a0350bde8543b9d977e7105d37fa549a379897 URL: http://source.winehq.org/git/wine.git/?a=commit;h=19a0350bde8543b9d977e7105d...
Author: Alexandre Goujon ale.goujon@gmail.com Date: Fri Sep 17 16:33:14 2010 +0200
quartz: avisplitter Fix query interface test.
---
dlls/quartz/parser.c | 13 +++-------- dlls/quartz/tests/avisplitter.c | 40 ++++++++++++++++---------------------- 2 files changed, 21 insertions(+), 32 deletions(-)
diff --git a/dlls/quartz/parser.c b/dlls/quartz/parser.c index da5e9d3..f95d3e7 100644 --- a/dlls/quartz/parser.c +++ b/dlls/quartz/parser.c @@ -114,16 +114,11 @@ HRESULT WINAPI Parser_QueryInterface(IBaseFilter * iface, REFIID riid, LPVOID *
*ppv = NULL;
- if (IsEqualIID(riid, &IID_IUnknown)) - *ppv = This; - else if (IsEqualIID(riid, &IID_IPersist)) - *ppv = This; - else if (IsEqualIID(riid, &IID_IMediaFilter)) + if ( IsEqualIID(riid, &IID_IUnknown) + || IsEqualIID(riid, &IID_IPersist) + || IsEqualIID(riid, &IID_IMediaFilter) + || IsEqualIID(riid, &IID_IBaseFilter) ) *ppv = This; - else if (IsEqualIID(riid, &IID_IBaseFilter)) - *ppv = This; - else if (IsEqualIID(riid, &IID_IMediaSeeking)) - *ppv = &This->mediaSeeking;
if (*ppv) { diff --git a/dlls/quartz/tests/avisplitter.c b/dlls/quartz/tests/avisplitter.c index 33a0d6d..3a0a9e2 100644 --- a/dlls/quartz/tests/avisplitter.c +++ b/dlls/quartz/tests/avisplitter.c @@ -89,29 +89,23 @@ static void test_query_interface(void) ULONG ref; IUnknown *iface= NULL;
- hr = IUnknown_QueryInterface(pAviSplitter, &IID_IBaseFilter, - (void**)&iface); - - ok(hr == S_OK, - "IID_IBaseFilter should exist, got %08x!\n", GetLastError()); - if (hr == S_OK) - { - ref = IUnknown_Release(iface); - iface = NULL; - ok(ref == 1, "Reference is %u, expected 1\n", ref); - } - - hr = IUnknown_QueryInterface(pAviSplitter, &IID_IMediaSeeking, - (void**)&iface); - if (hr == S_OK) - ref = IUnknown_Release(iface); - iface = NULL; - todo_wine ok(hr == E_NOINTERFACE, - "Query for IMediaSeeking returned: %08x\n", hr); - -/* These interfaces should not be present: - IID_IKsPropertySet, IID_IMediaPosition, IID_IQualityControl, IID_IQualProp -*/ +#define TEST_INTERFACE(riid,expected) do { \ + hr = IUnknown_QueryInterface(pAviSplitter, &riid, (void**)&iface); \ + ok( hr == expected, #riid" should %s got %08X\n", expected==S_OK ? "exist" : "not be present", GetLastError() ); \ + if (hr == S_OK) { \ + ref = IUnknown_Release(iface); \ + ok(ref == 1, "Reference is %u, expected 1\n", ref); \ + } \ + iface = NULL; \ + } while(0) + + TEST_INTERFACE(IID_IBaseFilter,S_OK); + TEST_INTERFACE(IID_IMediaSeeking,E_NOINTERFACE); + TEST_INTERFACE(IID_IKsPropertySet,E_NOINTERFACE); + TEST_INTERFACE(IID_IMediaPosition,E_NOINTERFACE); + TEST_INTERFACE(IID_IQualityControl,E_NOINTERFACE); + TEST_INTERFACE(IID_IQualProp,E_NOINTERFACE); +#undef TEST_INTERFACE }
static void test_pin(IPin *pin)