Michael Stefaniuc : strmbase: Don' t cast IQualityControl to the COM object.

Alexandre Julliard julliard at winehq.org
Mon Jul 18 09:22:34 CDT 2016


Module: wine
Branch: master
Commit: 4c224eaba11929f5164f0b94da07c71466acba99
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4c224eaba11929f5164f0b94da07c71466acba99

Author: Michael Stefaniuc <mstefani at redhat.de>
Date:   Mon Jul 18 11:19:17 2016 +0200

strmbase: Don't cast IQualityControl to the COM object.

Signed-off-by: Michael Stefaniuc <mstefani at redhat.de>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/strmbase/qualitycontrol.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/dlls/strmbase/qualitycontrol.c b/dlls/strmbase/qualitycontrol.c
index 46e0193..b756ae3 100644
--- a/dlls/strmbase/qualitycontrol.c
+++ b/dlls/strmbase/qualitycontrol.c
@@ -61,28 +61,33 @@ void QualityControlImpl_Destroy(QualityControlImpl *This)
     HeapFree(GetProcessHeap(),0,This);
 }
 
+static inline QualityControlImpl *impl_from_IQualityControl(IQualityControl *iface)
+{
+    return CONTAINING_RECORD(iface, QualityControlImpl, IQualityControl_iface);
+}
+
 HRESULT WINAPI QualityControlImpl_QueryInterface(IQualityControl *iface, REFIID riid, void **ppv)
 {
-    QualityControlImpl *This = (QualityControlImpl*)iface;
+    QualityControlImpl *This = impl_from_IQualityControl(iface);
     return IBaseFilter_QueryInterface(This->self, riid, ppv);
 }
 
 ULONG WINAPI QualityControlImpl_AddRef(IQualityControl *iface)
 {
-    QualityControlImpl *This = (QualityControlImpl*)iface;
+    QualityControlImpl *This = impl_from_IQualityControl(iface);
     return IBaseFilter_AddRef(This->self);
 }
 
 ULONG WINAPI QualityControlImpl_Release(IQualityControl *iface)
 {
-    QualityControlImpl *This = (QualityControlImpl*)iface;
+    QualityControlImpl *This = impl_from_IQualityControl(iface);
     return IBaseFilter_Release(This->self);
 }
 
 HRESULT WINAPI QualityControlImpl_Notify(IQualityControl *iface, IBaseFilter *sender, Quality qm)
 {
+    QualityControlImpl *This = impl_from_IQualityControl(iface);
     HRESULT hr = S_FALSE;
-    QualityControlImpl *This = (QualityControlImpl*)iface;
 
     TRACE("%p %p { 0x%x %u " XTIME_FMT " " XTIME_FMT " }\n",
             This, sender, qm.Type, qm.Proportion,
@@ -110,7 +115,7 @@ HRESULT WINAPI QualityControlImpl_Notify(IQualityControl *iface, IBaseFilter *se
 
 HRESULT WINAPI QualityControlImpl_SetSink(IQualityControl *iface, IQualityControl *tonotify)
 {
-    QualityControlImpl *This = (QualityControlImpl*)iface;
+    QualityControlImpl *This = impl_from_IQualityControl(iface);
     TRACE("%p %p\n", This, tonotify);
     This->tonotify = tonotify;
     return S_OK;




More information about the wine-cvs mailing list