Michael Stefaniuc : quartz/tests: COM cleanup for the IClassFactory iface.
Alexandre Julliard
julliard at winehq.org
Mon Jun 20 14:24:12 CDT 2011
Module: wine
Branch: master
Commit: b21c2d652244257669198575b4020a4205d3a088
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b21c2d652244257669198575b4020a4205d3a088
Author: Michael Stefaniuc <mstefani at redhat.de>
Date: Sun Jun 19 14:24:43 2011 +0200
quartz/tests: COM cleanup for the IClassFactory iface.
---
dlls/quartz/tests/filtergraph.c | 39 ++++++++++++++++++++++++++++-----------
1 files changed, 28 insertions(+), 11 deletions(-)
diff --git a/dlls/quartz/tests/filtergraph.c b/dlls/quartz/tests/filtergraph.c
index e95aa5b..582e2cc 100644
--- a/dlls/quartz/tests/filtergraph.c
+++ b/dlls/quartz/tests/filtergraph.c
@@ -1354,11 +1354,16 @@ static const IBaseFilterVtbl TestFilter_Vtbl =
typedef struct TestClassFactoryImpl
{
- IClassFactoryVtbl *lpVtbl;
+ IClassFactory IClassFactory_iface;
const TestFilterPinData *filterPinData;
const CLSID *clsid;
} TestClassFactoryImpl;
+static inline TestClassFactoryImpl *impl_from_IClassFactory(IClassFactory *iface)
+{
+ return CONTAINING_RECORD(iface, TestClassFactoryImpl, IClassFactory_iface);
+}
+
static HRESULT WINAPI Test_IClassFactory_QueryInterface(
LPCLASSFACTORY iface,
REFIID riid,
@@ -1394,7 +1399,7 @@ static HRESULT WINAPI Test_IClassFactory_CreateInstance(
REFIID riid,
LPVOID *ppvObj)
{
- TestClassFactoryImpl *This = (TestClassFactoryImpl *)iface;
+ TestClassFactoryImpl *This = impl_from_IClassFactory(iface);
HRESULT hr;
IUnknown *punk = NULL;
@@ -1522,9 +1527,18 @@ static void test_render_filter_priority(void)
{ PINDIR_INPUT, &mediasubtype2 },
{ 0, 0 }
};
- TestClassFactoryImpl Filter1ClassFactory = { &TestClassFactory_Vtbl, PinData2, &CLSID_TestFilter2 };
- TestClassFactoryImpl Filter2ClassFactory = { &TestClassFactory_Vtbl, PinData4, &CLSID_TestFilter3 };
- TestClassFactoryImpl Filter3ClassFactory = { &TestClassFactory_Vtbl, PinData5, &CLSID_TestFilter4 };
+ TestClassFactoryImpl Filter1ClassFactory = {
+ { &TestClassFactory_Vtbl },
+ PinData2, &CLSID_TestFilter2
+ };
+ TestClassFactoryImpl Filter2ClassFactory = {
+ { &TestClassFactory_Vtbl },
+ PinData4, &CLSID_TestFilter3
+ };
+ TestClassFactoryImpl Filter3ClassFactory = {
+ { &TestClassFactory_Vtbl },
+ PinData5, &CLSID_TestFilter4
+ };
char ConnectedFilterName1[MAX_FILTER_NAME];
char ConnectedFilterName2[MAX_FILTER_NAME];
REGFILTER2 rgf2;
@@ -1760,16 +1774,19 @@ static void test_render_filter_priority(void)
ok(hr == S_OK, "IFilterGraph2_AddFilter failed with %08x\n", hr);
/* Register our filters with COM and with Filtermapper. */
- hr = CoRegisterClassObject(Filter1ClassFactory.clsid, (IUnknown *)&Filter1ClassFactory,
- CLSCTX_INPROC_SERVER, REGCLS_MULTIPLEUSE, &cookie1);
+ hr = CoRegisterClassObject(Filter1ClassFactory.clsid,
+ (IUnknown *)&Filter1ClassFactory.IClassFactory_iface, CLSCTX_INPROC_SERVER,
+ REGCLS_MULTIPLEUSE, &cookie1);
ok(hr == S_OK, "CoRegisterClassObject failed with %08x\n", hr);
if (FAILED(hr)) goto out;
- hr = CoRegisterClassObject(Filter2ClassFactory.clsid, (IUnknown *)&Filter2ClassFactory,
- CLSCTX_INPROC_SERVER, REGCLS_MULTIPLEUSE, &cookie2);
+ hr = CoRegisterClassObject(Filter2ClassFactory.clsid,
+ (IUnknown *)&Filter2ClassFactory.IClassFactory_iface, CLSCTX_INPROC_SERVER,
+ REGCLS_MULTIPLEUSE, &cookie2);
ok(hr == S_OK, "CoRegisterClassObject failed with %08x\n", hr);
if (FAILED(hr)) goto out;
- hr = CoRegisterClassObject(Filter3ClassFactory.clsid, (IUnknown *)&Filter3ClassFactory,
- CLSCTX_INPROC_SERVER, REGCLS_MULTIPLEUSE, &cookie3);
+ hr = CoRegisterClassObject(Filter3ClassFactory.clsid,
+ (IUnknown *)&Filter3ClassFactory.IClassFactory_iface, CLSCTX_INPROC_SERVER,
+ REGCLS_MULTIPLEUSE, &cookie3);
ok(hr == S_OK, "CoRegisterClassObject failed with %08x\n", hr);
if (FAILED(hr)) goto out;
More information about the wine-cvs
mailing list