From 5f77ad406e13ceed646df6f56b2bc53708681a86 Mon Sep 17 00:00:00 2001 From: Michael Stefaniuc Date: Wed, 10 Aug 2011 23:57:01 +0200 Subject: [PATCH] qcap: COM cleanup in capturegraph.c. --- dlls/qcap/capturegraph.c | 69 ++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 41 deletions(-) diff --git a/dlls/qcap/capturegraph.c b/dlls/qcap/capturegraph.c index 7294d5d5a9..aa5c0a489c 100644 --- a/dlls/qcap/capturegraph.c +++ b/dlls/qcap/capturegraph.c @@ -54,8 +54,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(qcap); */ typedef struct CaptureGraphImpl { - const ICaptureGraphBuilder2Vtbl * lpVtbl2; - const ICaptureGraphBuilderVtbl * lpVtbl; + ICaptureGraphBuilder2 ICaptureGraphBuilder2_iface; + ICaptureGraphBuilder ICaptureGraphBuilder_iface; LONG ref; IGraphBuilder *mygraph; @@ -65,23 +65,16 @@ typedef struct CaptureGraphImpl static const ICaptureGraphBuilderVtbl builder_Vtbl; static const ICaptureGraphBuilder2Vtbl builder2_Vtbl; -static inline CaptureGraphImpl *impl_from_ICaptureGraphBuilder( ICaptureGraphBuilder *iface ) +static inline CaptureGraphImpl *impl_from_ICaptureGraphBuilder(ICaptureGraphBuilder *iface) { - return (CaptureGraphImpl *)((char*)iface - FIELD_OFFSET(CaptureGraphImpl, lpVtbl)); + return CONTAINING_RECORD(iface, CaptureGraphImpl, ICaptureGraphBuilder_iface); } -static inline CaptureGraphImpl *impl_from_ICaptureGraphBuilder2( ICaptureGraphBuilder2 *iface ) +static inline CaptureGraphImpl *impl_from_ICaptureGraphBuilder2(ICaptureGraphBuilder2 *iface) { - return (CaptureGraphImpl *)((char*)iface - FIELD_OFFSET(CaptureGraphImpl, lpVtbl2)); + return CONTAINING_RECORD(iface, CaptureGraphImpl, ICaptureGraphBuilder2_iface); } -/* - converts This to an interface pointer -*/ -#define _IUnknown_(This) (&(This)->lpVtbl2) -#define _ICaptureGraphBuilder_(This) (&(This)->lpVtbl) -#define _ICaptureGraphBuilder2_(This) ((ICaptureGraphBuilder2*)&(This)->lpVtbl2) - IUnknown * CALLBACK QCAP_createCaptureGraphBuilder2(IUnknown *pUnkOuter, HRESULT *phr) @@ -100,8 +93,8 @@ IUnknown * CALLBACK QCAP_createCaptureGraphBuilder2(IUnknown *pUnkOuter, pCapture = CoTaskMemAlloc(sizeof(CaptureGraphImpl)); if (pCapture) { - pCapture->lpVtbl2 = &builder2_Vtbl; - pCapture->lpVtbl = &builder_Vtbl; + pCapture->ICaptureGraphBuilder2_iface.lpVtbl = &builder2_Vtbl; + pCapture->ICaptureGraphBuilder_iface.lpVtbl = &builder_Vtbl; pCapture->ref = 1; pCapture->mygraph = NULL; InitializeCriticalSection(&pCapture->csFilter); @@ -109,7 +102,7 @@ IUnknown * CALLBACK QCAP_createCaptureGraphBuilder2(IUnknown *pUnkOuter, *phr = S_OK; ObjectRefCount(TRUE); } - return (IUnknown *)pCapture; + return (IUnknown *)&pCapture->ICaptureGraphBuilder_iface; } static HRESULT WINAPI @@ -123,11 +116,11 @@ fnCaptureGraphBuilder2_QueryInterface(ICaptureGraphBuilder2 * iface, *ppv = NULL; if (IsEqualIID(riid, &IID_IUnknown)) - *ppv = _IUnknown_(This); + *ppv = &This->ICaptureGraphBuilder2_iface; else if (IsEqualIID(riid, &IID_ICaptureGraphBuilder)) - *ppv = _ICaptureGraphBuilder_(This); + *ppv = &This->ICaptureGraphBuilder_iface; else if (IsEqualIID(riid, &IID_ICaptureGraphBuilder2)) - *ppv = _ICaptureGraphBuilder2_(This); + *ppv = &This->ICaptureGraphBuilder2_iface; if (*ppv) { @@ -163,8 +156,6 @@ fnCaptureGraphBuilder2_Release(ICaptureGraphBuilder2 * iface) FIXME("Release IGraphFilter or w/e\n"); This->csFilter.DebugInfo->Spare[0] = 0; DeleteCriticalSection(&This->csFilter); - This->lpVtbl = NULL; - This->lpVtbl2 = NULL; if (This->mygraph != NULL) IGraphBuilder_Release(This->mygraph); CoTaskMemFree(This); @@ -483,7 +474,7 @@ fnCaptureGraphBuilder_QueryInterface(ICaptureGraphBuilder * iface, { CaptureGraphImpl *This = impl_from_ICaptureGraphBuilder(iface); TRACE("%p --> Forwarding to v2 (%p)\n", iface, This); - return IUnknown_QueryInterface(_ICaptureGraphBuilder2_(This), riid, ppv); + return IUnknown_QueryInterface(&This->ICaptureGraphBuilder2_iface, riid, ppv); } static ULONG WINAPI @@ -491,7 +482,7 @@ fnCaptureGraphBuilder_AddRef(ICaptureGraphBuilder * iface) { CaptureGraphImpl *This = impl_from_ICaptureGraphBuilder(iface); TRACE("%p --> Forwarding to v2 (%p)\n", iface, This); - return IUnknown_AddRef(_ICaptureGraphBuilder2_(This)); + return IUnknown_AddRef(&This->ICaptureGraphBuilder2_iface); } static ULONG WINAPI @@ -499,7 +490,7 @@ fnCaptureGraphBuilder_Release(ICaptureGraphBuilder * iface) { CaptureGraphImpl *This = impl_from_ICaptureGraphBuilder(iface); TRACE("%p --> Forwarding to v2 (%p)\n", iface, This); - return IUnknown_Release(_ICaptureGraphBuilder2_(This)); + return IUnknown_Release(&This->ICaptureGraphBuilder2_iface); } static HRESULT WINAPI @@ -508,7 +499,7 @@ fnCaptureGraphBuilder_SetFiltergraph(ICaptureGraphBuilder * iface, { CaptureGraphImpl *This = impl_from_ICaptureGraphBuilder(iface); TRACE("%p --> Forwarding to v2 (%p)\n", iface, This); - return ICaptureGraphBuilder2_SetFiltergraph(_ICaptureGraphBuilder2_(This), pfg); + return ICaptureGraphBuilder2_SetFiltergraph(&This->ICaptureGraphBuilder2_iface, pfg); } static HRESULT WINAPI @@ -517,7 +508,7 @@ fnCaptureGraphBuilder_GetFiltergraph(ICaptureGraphBuilder * iface, { CaptureGraphImpl *This = impl_from_ICaptureGraphBuilder(iface); TRACE("%p --> Forwarding to v2 (%p)\n", iface, This); - return ICaptureGraphBuilder2_GetFiltergraph(_ICaptureGraphBuilder2_(This), pfg); + return ICaptureGraphBuilder2_GetFiltergraph(&This->ICaptureGraphBuilder2_iface, pfg); } static HRESULT WINAPI @@ -527,8 +518,8 @@ fnCaptureGraphBuilder_SetOutputFileName(ICaptureGraphBuilder * iface, { CaptureGraphImpl *This = impl_from_ICaptureGraphBuilder(iface); TRACE("%p --> Forwarding to v2 (%p)\n", iface, This); - return ICaptureGraphBuilder2_SetOutputFileName(_ICaptureGraphBuilder2_(This), - pType, lpstrFile, ppf, ppSink); + return ICaptureGraphBuilder2_SetOutputFileName(&This->ICaptureGraphBuilder2_iface, pType, + lpstrFile, ppf, ppSink); } static HRESULT WINAPI @@ -538,8 +529,8 @@ fnCaptureGraphBuilder_FindInterface(ICaptureGraphBuilder * iface, { CaptureGraphImpl *This = impl_from_ICaptureGraphBuilder(iface); TRACE("%p --> Forwarding to v2 (%p)\n", iface, This); - return ICaptureGraphBuilder2_FindInterface(_ICaptureGraphBuilder2_(This), - pCategory, NULL, pf, riid, ppint); + return ICaptureGraphBuilder2_FindInterface(&This->ICaptureGraphBuilder2_iface, pCategory, NULL, + pf, riid, ppint); } static HRESULT WINAPI @@ -549,9 +540,8 @@ fnCaptureGraphBuilder_RenderStream(ICaptureGraphBuilder * iface, { CaptureGraphImpl *This = impl_from_ICaptureGraphBuilder(iface); TRACE("%p --> Forwarding to v2 (%p)\n", iface, This); - return ICaptureGraphBuilder2_RenderStream(_ICaptureGraphBuilder2_(This), - pCategory, NULL, pSource, - pfCompressor, pfRenderer); + return ICaptureGraphBuilder2_RenderStream(&This->ICaptureGraphBuilder2_iface, pCategory, NULL, + pSource, pfCompressor, pfRenderer); } static HRESULT WINAPI @@ -562,9 +552,8 @@ fnCaptureGraphBuilder_ControlStream(ICaptureGraphBuilder * iface, { CaptureGraphImpl *This = impl_from_ICaptureGraphBuilder(iface); TRACE("%p --> Forwarding to v2 (%p)\n", iface, This); - return ICaptureGraphBuilder2_ControlStream(_ICaptureGraphBuilder2_(This), - pCategory, NULL, pFilter, pstart, - pstop, wStartCookie, wStopCookie); + return ICaptureGraphBuilder2_ControlStream(&This->ICaptureGraphBuilder2_iface, pCategory, NULL, + pFilter, pstart, pstop, wStartCookie, wStopCookie); } static HRESULT WINAPI @@ -573,8 +562,7 @@ fnCaptureGraphBuilder_AllocCapFile(ICaptureGraphBuilder * iface, { CaptureGraphImpl *This = impl_from_ICaptureGraphBuilder(iface); TRACE("%p --> Forwarding to v2 (%p)\n", iface, This); - return ICaptureGraphBuilder2_AllocCapFile(_ICaptureGraphBuilder2_(This), - lpstr, dwlSize); + return ICaptureGraphBuilder2_AllocCapFile(&This->ICaptureGraphBuilder2_iface, lpstr, dwlSize); } static HRESULT WINAPI @@ -585,9 +573,8 @@ fnCaptureGraphBuilder_CopyCaptureFile(ICaptureGraphBuilder * iface, { CaptureGraphImpl *This = impl_from_ICaptureGraphBuilder(iface); TRACE("%p --> Forwarding to v2 (%p)\n", iface, This); - return ICaptureGraphBuilder2_CopyCaptureFile(_ICaptureGraphBuilder2_(This), - lpwstrOld, lpwstrNew, - fAllowEscAbort, pCallback); + return ICaptureGraphBuilder2_CopyCaptureFile(&This->ICaptureGraphBuilder2_iface, lpwstrOld, + lpwstrNew, fAllowEscAbort, pCallback); } static const ICaptureGraphBuilderVtbl builder_Vtbl = -- 2.32.0.93.g670b81a890