Commit 4bc76025 authored by Alexander Dorofeyev's avatar Alexander Dorofeyev Committed by Alexandre Julliard

quartz/tests: Test querying IFilterMapper2 from FilterGraph.

parent 0bea470d
...@@ -286,12 +286,70 @@ static void test_legacy_filter_registration(void) ...@@ -286,12 +286,70 @@ static void test_legacy_filter_registration(void)
if (pMapper2) IFilterMapper2_Release(pMapper2); if (pMapper2) IFilterMapper2_Release(pMapper2);
} }
static ULONG getRefcount(IUnknown *iface)
{
IUnknown_AddRef(iface);
return IUnknown_Release(iface);
}
static void test_ifiltermapper_from_filtergraph(void)
{
IFilterGraph2* pgraph2 = NULL;
IFilterMapper2 *pMapper2 = NULL;
IFilterGraph *filtergraph = NULL;
HRESULT hr;
ULONG refcount;
hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, &IID_IFilterGraph2, (LPVOID*)&pgraph2);
ok(hr == S_OK, "CoCreateInstance failed with %08x\n", hr);
if (!pgraph2) goto out;
hr = IFilterGraph2_QueryInterface(pgraph2, &IID_IFilterMapper2, (LPVOID*)&pMapper2);
ok(hr == S_OK, "IFilterGraph2_QueryInterface failed with %08x\n", hr);
if (!pMapper2) goto out;
refcount = getRefcount((IUnknown*)pgraph2);
ok(refcount == 2, "unexpected reference count: %u\n", refcount);
refcount = getRefcount((IUnknown*)pMapper2);
ok(refcount == 2, "unexpected reference count: %u\n", refcount);
IFilterMapper2_AddRef(pMapper2);
refcount = getRefcount((IUnknown*)pgraph2);
ok(refcount == 3, "unexpected reference count: %u\n", refcount);
refcount = getRefcount((IUnknown*)pMapper2);
ok(refcount == 3, "unexpected reference count: %u\n", refcount);
IFilterMapper2_Release(pMapper2);
hr = IFilterMapper2_QueryInterface(pMapper2, &IID_IFilterGraph, (LPVOID*)&filtergraph);
ok(hr == S_OK, "IFilterMapper2_QueryInterface failed with %08x\n", hr);
if (!filtergraph) goto out;
IFilterMapper2_Release(pMapper2);
pMapper2 = NULL;
IFilterGraph_Release(filtergraph);
filtergraph = NULL;
hr = CoCreateInstance(&CLSID_FilterMapper2, NULL, CLSCTX_INPROC_SERVER, &IID_IFilterMapper2, (LPVOID*)&pMapper2);
ok(hr == S_OK, "CoCreateInstance failed with %08x\n", hr);
if (!pMapper2) goto out;
hr = IFilterMapper2_QueryInterface(pMapper2, &IID_IFilterGraph, (LPVOID*)&filtergraph);
ok(hr == E_NOINTERFACE, "IFilterMapper2_QueryInterface unexpected result: %08x\n", hr);
out:
if (pMapper2) IFilterMapper2_Release(pMapper2);
if (filtergraph) IFilterGraph_Release(filtergraph);
if (pgraph2) IFilterGraph2_Release(pgraph2);
}
START_TEST(filtermapper) START_TEST(filtermapper)
{ {
CoInitialize(NULL); CoInitialize(NULL);
test_fm2_enummatchingfilters(); test_fm2_enummatchingfilters();
test_legacy_filter_registration(); test_legacy_filter_registration();
test_ifiltermapper_from_filtergraph();
CoUninitialize(); CoUninitialize();
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment