diff --git a/dlls/quartz/avisplit.c b/dlls/quartz/avisplit.c
index 3a50de5..bcfdeb1 100644
--- a/dlls/quartz/avisplit.c
+++ b/dlls/quartz/avisplit.c
@@ -102,7 +102,7 @@
 
 static inline AVISplitterImpl *impl_from_IMediaSeeking( IMediaSeeking *iface )
 {
-    return (AVISplitterImpl *)((char*)iface - FIELD_OFFSET(AVISplitterImpl, Parser.sourceSeeking.lpVtbl));
+    return CONTAINING_RECORD(iface, AVISplitterImpl, Parser.sourceSeeking.IMediaSeeking_iface);
 }
 
 /* The threading stuff cries for an explanation
diff --git a/dlls/quartz/mpegsplit.c b/dlls/quartz/mpegsplit.c
index acb72ed..f2e1138 100644
--- a/dlls/quartz/mpegsplit.c
+++ b/dlls/quartz/mpegsplit.c
@@ -78,7 +78,7 @@
 
 static inline MPEGSplitterImpl *impl_from_IMediaSeeking( IMediaSeeking *iface )
 {
-    return (MPEGSplitterImpl *)((char*)iface - FIELD_OFFSET(MPEGSplitterImpl, Parser.sourceSeeking.lpVtbl));
+    return CONTAINING_RECORD(iface, MPEGSplitterImpl, Parser.sourceSeeking.IMediaSeeking_iface);
 }
 
 static int MPEGSplitter_head_check(const BYTE *header)
diff --git a/dlls/quartz/parser.c b/dlls/quartz/parser.c
index 784c528..c1d041a 100644
--- a/dlls/quartz/parser.c
+++ b/dlls/quartz/parser.c
@@ -50,7 +50,7 @@
 
 static inline ParserImpl *impl_from_IMediaSeeking( IMediaSeeking *iface )
 {
-    return (ParserImpl *)((char*)iface - FIELD_OFFSET(ParserImpl, sourceSeeking.lpVtbl));
+    return CONTAINING_RECORD(iface, ParserImpl, sourceSeeking.IMediaSeeking_iface);
 }
 
 /* FIXME: WRONG */
diff --git a/dlls/quartz/waveparser.c b/dlls/quartz/waveparser.c
index a1b58e5..bc0615e 100644
--- a/dlls/quartz/waveparser.c
+++ b/dlls/quartz/waveparser.c
@@ -50,7 +50,7 @@
 
 static inline WAVEParserImpl *impl_from_IMediaSeeking( IMediaSeeking *iface )
 {
-    return (WAVEParserImpl*)((char*)iface - FIELD_OFFSET(WAVEParserImpl, Parser.sourceSeeking.lpVtbl));
+    return CONTAINING_RECORD(iface, WAVEParserImpl, Parser.sourceSeeking.IMediaSeeking_iface);
 }
 
 static LONGLONG bytepos_to_duration(WAVEParserImpl *This, LONGLONG bytepos)
diff --git a/dlls/strmbase/seeking.c b/dlls/strmbase/seeking.c
index f03dde6..c31699c 100644
--- a/dlls/strmbase/seeking.c
+++ b/dlls/strmbase/seeking.c
@@ -32,11 +32,16 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(strmbase);
 
+static inline SourceSeeking *impl_from_IMediaSeeking(IMediaSeeking *iface)
+{
+    return CONTAINING_RECORD(iface, SourceSeeking, IMediaSeeking_iface);
+}
+
 HRESULT SourceSeeking_Init(SourceSeeking *pSeeking, const IMediaSeekingVtbl *Vtbl, SourceSeeking_ChangeStop fnChangeStop, SourceSeeking_ChangeStart fnChangeStart, SourceSeeking_ChangeRate fnChangeRate, PCRITICAL_SECTION crit_sect)
 {
     assert(fnChangeStop && fnChangeStart && fnChangeRate);
 
-    pSeeking->lpVtbl = Vtbl;
+    pSeeking->IMediaSeeking_iface.lpVtbl = Vtbl;
     pSeeking->refCount = 1;
     pSeeking->fnChangeRate = fnChangeRate;
     pSeeking->fnChangeStop = fnChangeStop;
@@ -57,7 +62,7 @@
 
 HRESULT WINAPI SourceSeekingImpl_GetCapabilities(IMediaSeeking * iface, DWORD * pCapabilities)
 {
-    SourceSeeking *This = (SourceSeeking *)iface;
+    SourceSeeking *This = impl_from_IMediaSeeking(iface);
 
     TRACE("(%p)\n", pCapabilities);
 
@@ -68,7 +73,7 @@
 
 HRESULT WINAPI SourceSeekingImpl_CheckCapabilities(IMediaSeeking * iface, DWORD * pCapabilities)
 {
-    SourceSeeking *This = (SourceSeeking *)iface;
+    SourceSeeking *This = impl_from_IMediaSeeking(iface);
     HRESULT hr;
     DWORD dwCommonCaps;
 
@@ -104,7 +109,7 @@
 
 HRESULT WINAPI SourceSeekingImpl_GetTimeFormat(IMediaSeeking * iface, GUID * pFormat)
 {
-    SourceSeeking *This = (SourceSeeking *)iface;
+    SourceSeeking *This = impl_from_IMediaSeeking(iface);
     TRACE("(%s)\n", debugstr_guid(pFormat));
 
     EnterCriticalSection(This->crst);
@@ -116,7 +121,7 @@
 
 HRESULT WINAPI SourceSeekingImpl_IsUsingTimeFormat(IMediaSeeking * iface, const GUID * pFormat)
 {
-    SourceSeeking *This = (SourceSeeking *)iface;
+    SourceSeeking *This = impl_from_IMediaSeeking(iface);
     HRESULT hr = S_OK;
 
     TRACE("(%s)\n", debugstr_guid(pFormat));
@@ -131,7 +136,7 @@
 
 HRESULT WINAPI SourceSeekingImpl_SetTimeFormat(IMediaSeeking * iface, const GUID * pFormat)
 {
-    SourceSeeking *This = (SourceSeeking *)iface;
+    SourceSeeking *This = impl_from_IMediaSeeking(iface);
     TRACE("%p %s\n", This, debugstr_guid(pFormat));
     return (IsEqualIID(pFormat, &TIME_FORMAT_MEDIA_TIME) ? S_OK : E_INVALIDARG);
 }
@@ -139,7 +144,7 @@
 
 HRESULT WINAPI SourceSeekingImpl_GetDuration(IMediaSeeking * iface, LONGLONG * pDuration)
 {
-    SourceSeeking *This = (SourceSeeking *)iface;
+    SourceSeeking *This = impl_from_IMediaSeeking(iface);
 
     TRACE("(%p)\n", pDuration);
 
@@ -152,7 +157,7 @@
 
 HRESULT WINAPI SourceSeekingImpl_GetStopPosition(IMediaSeeking * iface, LONGLONG * pStop)
 {
-    SourceSeeking *This = (SourceSeeking *)iface;
+    SourceSeeking *This = impl_from_IMediaSeeking(iface);
 
     TRACE("(%p)\n", pStop);
 
@@ -166,7 +171,7 @@
 /* FIXME: Make use of the info the filter should expose */
 HRESULT WINAPI SourceSeekingImpl_GetCurrentPosition(IMediaSeeking * iface, LONGLONG * pCurrent)
 {
-    SourceSeeking *This = (SourceSeeking *)iface;
+    SourceSeeking *This = impl_from_IMediaSeeking(iface);
 
     TRACE("(%p)\n", pCurrent);
 
@@ -179,7 +184,7 @@
 
 HRESULT WINAPI SourceSeekingImpl_ConvertTimeFormat(IMediaSeeking * iface, LONGLONG * pTarget, const GUID * pTargetFormat, LONGLONG Source, const GUID * pSourceFormat)
 {
-    SourceSeeking *This = (SourceSeeking *)iface;
+    SourceSeeking *This = impl_from_IMediaSeeking(iface);
     if (!pTargetFormat)
         pTargetFormat = &This->timeformat;
     if (!pSourceFormat)
@@ -212,7 +217,7 @@
 
 HRESULT WINAPI SourceSeekingImpl_SetPositions(IMediaSeeking * iface, LONGLONG * pCurrent, DWORD dwCurrentFlags, LONGLONG * pStop, DWORD dwStopFlags)
 {
-    SourceSeeking *This = (SourceSeeking *)iface;
+    SourceSeeking *This = impl_from_IMediaSeeking(iface);
     BOOL bChangeCurrent = FALSE, bChangeStop = FALSE;
     LONGLONG llNewCurrent, llNewStop;
 
@@ -248,7 +253,7 @@
 
 HRESULT WINAPI SourceSeekingImpl_GetPositions(IMediaSeeking * iface, LONGLONG * pCurrent, LONGLONG * pStop)
 {
-    SourceSeeking *This = (SourceSeeking *)iface;
+    SourceSeeking *This = impl_from_IMediaSeeking(iface);
 
     TRACE("(%p, %p)\n", pCurrent, pStop);
 
@@ -262,7 +267,7 @@
 
 HRESULT WINAPI SourceSeekingImpl_GetAvailable(IMediaSeeking * iface, LONGLONG * pEarliest, LONGLONG * pLatest)
 {
-    SourceSeeking *This = (SourceSeeking *)iface;
+    SourceSeeking *This = impl_from_IMediaSeeking(iface);
 
     TRACE("(%p, %p)\n", pEarliest, pLatest);
 
@@ -276,7 +281,7 @@
 
 HRESULT WINAPI SourceSeekingImpl_SetRate(IMediaSeeking * iface, double dRate)
 {
-    SourceSeeking *This = (SourceSeeking *)iface;
+    SourceSeeking *This = impl_from_IMediaSeeking(iface);
     BOOL bChangeRate = (dRate != This->dRate);
     HRESULT hr = S_OK;
 
@@ -299,7 +304,7 @@
 
 HRESULT WINAPI SourceSeekingImpl_GetRate(IMediaSeeking * iface, double * dRate)
 {
-    SourceSeeking *This = (SourceSeeking *)iface;
+    SourceSeeking *This = impl_from_IMediaSeeking(iface);
 
     TRACE("(%p)\n", dRate);
 
diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c
index e42ad04..730634d 100644
--- a/dlls/winegstreamer/gstdemux.c
+++ b/dlls/winegstreamer/gstdemux.c
@@ -998,7 +998,7 @@
 }
 
 static inline GSTOutPin *impl_from_IMediaSeeking( IMediaSeeking *iface ) {
-    return (GSTOutPin *)((char*)iface - FIELD_OFFSET(GSTOutPin, seek.lpVtbl));
+    return CONTAINING_RECORD(iface, GSTOutPin, seek.IMediaSeeking_iface);
 }
 
 static IPin* WINAPI GST_GetPin(BaseFilter *iface, int pos)
diff --git a/dlls/wineqtdecoder/qtsplitter.c b/dlls/wineqtdecoder/qtsplitter.c
index 78b8bf2..bacf2af 100644
--- a/dlls/wineqtdecoder/qtsplitter.c
+++ b/dlls/wineqtdecoder/qtsplitter.c
@@ -185,7 +185,7 @@
 
 static inline QTSplitter *impl_from_IMediaSeeking( IMediaSeeking *iface )
 {
-    return (QTSplitter *)((char*)iface - FIELD_OFFSET(QTSplitter, sourceSeeking.lpVtbl));
+    return CONTAINING_RECORD(iface, QTSplitter, sourceSeeking.IMediaSeeking_iface);
 }
 
 /*
diff --git a/include/wine/strmbase.h b/include/wine/strmbase.h
index 72686ac..4944e34 100644
--- a/include/wine/strmbase.h
+++ b/include/wine/strmbase.h
@@ -287,7 +287,7 @@
 
 typedef struct SourceSeeking
 {
-	const IMediaSeekingVtbl * lpVtbl;
+	IMediaSeeking IMediaSeeking_iface;
 
 	ULONG refCount;
 	SourceSeeking_ChangeStop fnChangeStop;
