diff --git a/dlls/qcap/vfwcapture.c b/dlls/qcap/vfwcapture.c
index 1138a64..68341ae 100644
--- a/dlls/qcap/vfwcapture.c
+++ b/dlls/qcap/vfwcapture.c
@@ -139,7 +139,7 @@
     pVfwCapture->IPersistPropertyBag_iface.lpVtbl = &IPersistPropertyBag_VTable;
     pVfwCapture->init = FALSE;
 
-    hr = VfwPin_Construct((IBaseFilter *)&pVfwCapture->filter.lpVtbl,
+    hr = VfwPin_Construct(&pVfwCapture->filter.IBaseFilter_iface,
                    &pVfwCapture->filter.csFilter, &pVfwCapture->pOutputPin);
     if (FAILED(hr))
     {
diff --git a/dlls/quartz/filesource.c b/dlls/quartz/filesource.c
index 79c70a4..2adb940 100644
--- a/dlls/quartz/filesource.c
+++ b/dlls/quartz/filesource.c
@@ -529,21 +529,21 @@
 {
     AsyncReader *This = impl_from_IFileSourceFilter(iface);
 
-    return IBaseFilter_QueryInterface((IFileSourceFilter*)&This->filter.lpVtbl, riid, ppv);
+    return IBaseFilter_QueryInterface(&This->filter.IBaseFilter_iface, riid, ppv);
 }
 
 static ULONG WINAPI FileSource_AddRef(IFileSourceFilter * iface)
 {
     AsyncReader *This = impl_from_IFileSourceFilter(iface);
 
-    return IBaseFilter_AddRef((IFileSourceFilter*)&This->filter.lpVtbl);
+    return IBaseFilter_AddRef(&This->filter.IBaseFilter_iface);
 }
 
 static ULONG WINAPI FileSource_Release(IFileSourceFilter * iface)
 {
     AsyncReader *This = impl_from_IFileSourceFilter(iface);
 
-    return IBaseFilter_Release((IFileSourceFilter*)&This->filter.lpVtbl);
+    return IBaseFilter_Release(&This->filter.IBaseFilter_iface);
 }
 
 static HRESULT WINAPI FileSource_Load(IFileSourceFilter * iface, LPCOLESTR pszFileName, const AM_MEDIA_TYPE * pmt)
@@ -565,8 +565,8 @@
     }
 
     /* create pin */
-    hr = FileAsyncReader_Construct(hFile, (IBaseFilter *)&This->filter.lpVtbl, &This->filter.csFilter, &This->pOutputPin);
-    BaseFilterImpl_IncrementPinVersion((BaseFilter *)&This->filter.lpVtbl);
+    hr = FileAsyncReader_Construct(hFile, &This->filter.IBaseFilter_iface, &This->filter.csFilter, &This->pOutputPin);
+    BaseFilterImpl_IncrementPinVersion(&This->filter);
 
     if (SUCCEEDED(hr))
         hr = IPin_QueryInterface(This->pOutputPin, &IID_IAsyncReader, (LPVOID *)&pReader);
diff --git a/dlls/quartz/nullrenderer.c b/dlls/quartz/nullrenderer.c
index 9fc1b44..f850b40 100644
--- a/dlls/quartz/nullrenderer.c
+++ b/dlls/quartz/nullrenderer.c
@@ -227,7 +227,6 @@
         IPin_Disconnect((IPin *)This->pInputPin);
         IPin_Release((IPin *)This->pInputPin);
 
-        This->filter.lpVtbl = NULL;
         if (This->seekthru_unk)
             IUnknown_Release(This->seekthru_unk);
 
diff --git a/dlls/quartz/videorenderer.c b/dlls/quartz/videorenderer.c
index 3e1004e..c21164f 100644
--- a/dlls/quartz/videorenderer.c
+++ b/dlls/quartz/videorenderer.c
@@ -694,7 +694,6 @@
 
         IPin_Release((IPin *)This->pInputPin);
 
-        This->filter.lpVtbl = NULL;
         IUnknown_Release(This->seekthru_unk);
         This->filter.csFilter.DebugInfo->Spare[0] = 0;
         DeleteCriticalSection(&This->filter.csFilter);
diff --git a/dlls/strmbase/enumpins.c b/dlls/strmbase/enumpins.c
index 13c7c6e..eab4d5b 100644
--- a/dlls/strmbase/enumpins.c
+++ b/dlls/strmbase/enumpins.c
@@ -66,7 +66,7 @@
     pEnumPins->receive_pincount = receive_pincount;
     pEnumPins->receive_version = receive_version;
     pEnumPins->base = base;
-    IBaseFilter_AddRef((IBaseFilter*)base);
+    IBaseFilter_AddRef(&base->IBaseFilter_iface);
     *ppEnum = &pEnumPins->IEnumPins_iface;
     pEnumPins->Version = receive_version(base);
 
@@ -115,7 +115,7 @@
 
     if (!refCount)
     {
-        IBaseFilter_Release((IBaseFilter*)This->base);
+        IBaseFilter_Release(&This->base->IBaseFilter_iface);
         CoTaskMemFree(This);
         return 0;
     }
diff --git a/dlls/strmbase/filter.c b/dlls/strmbase/filter.c
index 6656cfa..67f7c9f 100644
--- a/dlls/strmbase/filter.c
+++ b/dlls/strmbase/filter.c
@@ -29,9 +29,14 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(strmbase);
 
+static inline BaseFilter *impl_from_IBaseFilter(IBaseFilter *iface)
+{
+    return CONTAINING_RECORD(iface, BaseFilter, IBaseFilter_iface);
+}
+
 HRESULT WINAPI BaseFilterImpl_QueryInterface(IBaseFilter * iface, REFIID riid, LPVOID * ppv)
 {
-    BaseFilter *This = (BaseFilter *)iface;
+    BaseFilter *This = impl_from_IBaseFilter(iface);
     TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv);
 
     *ppv = NULL;
@@ -56,7 +61,7 @@
 
 ULONG WINAPI BaseFilterImpl_AddRef(IBaseFilter * iface)
 {
-    BaseFilter *This = (BaseFilter*)iface;
+    BaseFilter *This = impl_from_IBaseFilter(iface);
     ULONG refCount = InterlockedIncrement(&This->refCount);
 
     TRACE("(%p)->() AddRef from %d\n", This, refCount - 1);
@@ -66,7 +71,7 @@
 
 ULONG WINAPI BaseFilterImpl_Release(IBaseFilter * iface)
 {
-    BaseFilter *This = (BaseFilter *)iface;
+    BaseFilter *This = impl_from_IBaseFilter(iface);
     ULONG refCount = InterlockedDecrement(&This->refCount);
 
     TRACE("(%p)->() Release from %d\n", This, refCount + 1);
@@ -76,7 +81,7 @@
         if (This->pClock)
             IReferenceClock_Release(This->pClock);
 
-        This->lpVtbl = NULL;
+        This->IBaseFilter_iface.lpVtbl = NULL;
         This->csFilter.DebugInfo->Spare[0] = 0;
         DeleteCriticalSection(&This->csFilter);
     }
@@ -86,7 +91,7 @@
 
 HRESULT WINAPI BaseFilterImpl_GetClassID(IBaseFilter * iface, CLSID * pClsid)
 {
-    BaseFilter *This = (BaseFilter*)iface;
+    BaseFilter *This = impl_from_IBaseFilter(iface);
     TRACE("(%p)->(%p)\n", This, pClsid);
 
     *pClsid = This->clsid;
@@ -96,7 +101,7 @@
 
 HRESULT WINAPI BaseFilterImpl_GetState(IBaseFilter * iface, DWORD dwMilliSecsTimeout, FILTER_STATE *pState )
 {
-    BaseFilter *This = (BaseFilter*)iface;
+    BaseFilter *This = impl_from_IBaseFilter(iface);
     TRACE("(%p)->(%d, %p)\n", This, dwMilliSecsTimeout, pState);
 
     EnterCriticalSection(&This->csFilter);
@@ -110,7 +115,7 @@
 
 HRESULT WINAPI BaseFilterImpl_SetSyncSource(IBaseFilter * iface, IReferenceClock *pClock)
 {
-    BaseFilter *This = (BaseFilter*)iface;
+    BaseFilter *This = impl_from_IBaseFilter(iface);
     TRACE("(%p)->(%p)\n", This, pClock);
 
     EnterCriticalSection(&This->csFilter);
@@ -128,7 +133,7 @@
 
 HRESULT WINAPI BaseFilterImpl_GetSyncSource(IBaseFilter * iface, IReferenceClock **ppClock)
 {
-    BaseFilter *This = (BaseFilter*)iface;
+    BaseFilter *This = impl_from_IBaseFilter(iface);
     TRACE("(%p)->(%p)\n", This, ppClock);
 
     EnterCriticalSection(&This->csFilter);
@@ -144,7 +149,7 @@
 
 HRESULT WINAPI BaseFilterImpl_EnumPins(IBaseFilter * iface, IEnumPins **ppEnum)
 {
-    BaseFilter *This = (BaseFilter*)iface;
+    BaseFilter *This = impl_from_IBaseFilter(iface);
 
     TRACE("(%p)->(%p)\n", iface, ppEnum);
 
@@ -154,7 +159,7 @@
 
 HRESULT WINAPI BaseFilterImpl_QueryFilterInfo(IBaseFilter * iface, FILTER_INFO *pInfo)
 {
-    BaseFilter *This = (BaseFilter*)iface;
+    BaseFilter *This = impl_from_IBaseFilter(iface);
     TRACE("(%p)->(%p)\n", This, pInfo);
 
     strcpyW(pInfo->achName, This->filterInfo.achName);
@@ -169,7 +174,7 @@
 HRESULT WINAPI BaseFilterImpl_JoinFilterGraph(IBaseFilter * iface, IFilterGraph *pGraph, LPCWSTR pName )
 {
     HRESULT hr = S_OK;
-    BaseFilter *This = (BaseFilter*)iface;
+    BaseFilter *This = impl_from_IBaseFilter(iface);
 
     TRACE("(%p)->(%p, %s)\n", This, pGraph, debugstr_w(pName));
 
@@ -206,7 +211,7 @@
 
 HRESULT WINAPI BaseFilter_Init(BaseFilter * This, const IBaseFilterVtbl *Vtbl, const CLSID *pClsid, DWORD_PTR DebugInfo, const BaseFilterFuncTable* pBaseFuncsTable)
 {
-    This->lpVtbl = Vtbl;
+    This->IBaseFilter_iface.lpVtbl = Vtbl;
     This->refCount = 1;
     InitializeCriticalSection(&This->csFilter);
     This->state = State_Stopped;
diff --git a/dlls/strmbase/transform.c b/dlls/strmbase/transform.c
index 012f68a..b74eaae 100644
--- a/dlls/strmbase/transform.c
+++ b/dlls/strmbase/transform.c
@@ -233,7 +233,7 @@
 
     if (SUCCEEDED(TransformFilter_Init(pVtbl, pClsid, pFuncsTable, pTf)))
     {
-        *ppTransformFilter = (IBaseFilter*)(&pTf->filter.lpVtbl);
+        *ppTransformFilter = &pTf->filter.IBaseFilter_iface;
         return S_OK;
     }
 
diff --git a/include/wine/strmbase.h b/include/wine/strmbase.h
index 89b1898..4c1f3fd 100644
--- a/include/wine/strmbase.h
+++ b/include/wine/strmbase.h
@@ -148,7 +148,7 @@
 
 typedef struct BaseFilter
 {
-	const struct IBaseFilterVtbl *lpVtbl;
+	IBaseFilter IBaseFilter_iface;
 	LONG refCount;
 	CRITICAL_SECTION csFilter;
 
