Sebastian Lackner : quartz: Distinguish interface pointer and implementation pointer in multiple interfaces.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Jun 26 07:11:53 CDT 2015


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

Author: Sebastian Lackner <sebastian at fds-team.de>
Date:   Fri Jun 26 05:52:42 2015 +0200

quartz: Distinguish interface pointer and implementation pointer in multiple interfaces.

---

 dlls/quartz/acmwrapper.c   | 2 +-
 dlls/quartz/avidec.c       | 2 +-
 dlls/quartz/filesource.c   | 8 ++++----
 dlls/quartz/memallocator.c | 4 ++--
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/dlls/quartz/acmwrapper.c b/dlls/quartz/acmwrapper.c
index 5bc0d8f..d9a94a9 100644
--- a/dlls/quartz/acmwrapper.c
+++ b/dlls/quartz/acmwrapper.c
@@ -394,7 +394,7 @@ HRESULT ACMWrapper_create(IUnknown * pUnkOuter, LPVOID * ppv)
     if (FAILED(hr))
         return hr;
 
-    *ppv = This;
+    *ppv = &This->tf.filter.IBaseFilter_iface;
     This->lasttime_real = This->lasttime_sent = -1;
 
     return hr;
diff --git a/dlls/quartz/avidec.c b/dlls/quartz/avidec.c
index 5047809..1a58844 100644
--- a/dlls/quartz/avidec.c
+++ b/dlls/quartz/avidec.c
@@ -416,7 +416,7 @@ HRESULT AVIDec_create(IUnknown * pUnkOuter, LPVOID * ppv)
     This->pBihIn = NULL;
     This->pBihOut = NULL;
 
-    *ppv = This;
+    *ppv = &This->tf.filter.IBaseFilter_iface;
 
     return hr;
 }
diff --git a/dlls/quartz/filesource.c b/dlls/quartz/filesource.c
index 84e4214..877c706 100644
--- a/dlls/quartz/filesource.c
+++ b/dlls/quartz/filesource.c
@@ -452,13 +452,13 @@ static HRESULT WINAPI AsyncReader_QueryInterface(IBaseFilter * iface, REFIID rii
     *ppv = NULL;
 
     if (IsEqualIID(riid, &IID_IUnknown))
-        *ppv = This;
+        *ppv = &This->filter.IBaseFilter_iface;
     else if (IsEqualIID(riid, &IID_IPersist))
-        *ppv = This;
+        *ppv = &This->filter.IBaseFilter_iface;
     else if (IsEqualIID(riid, &IID_IMediaFilter))
-        *ppv = This;
+        *ppv = &This->filter.IBaseFilter_iface;
     else if (IsEqualIID(riid, &IID_IBaseFilter))
-        *ppv = This;
+        *ppv = &This->filter.IBaseFilter_iface;
     else if (IsEqualIID(riid, &IID_IFileSourceFilter))
         *ppv = &This->IFileSourceFilter_iface;
     else if (IsEqualIID(riid, &IID_IAMFilterMiscFlags))
diff --git a/dlls/quartz/memallocator.c b/dlls/quartz/memallocator.c
index f1903f9..f5ee3c2 100644
--- a/dlls/quartz/memallocator.c
+++ b/dlls/quartz/memallocator.c
@@ -116,9 +116,9 @@ static HRESULT WINAPI BaseMemAllocator_QueryInterface(IMemAllocator * iface, REF
     *ppv = NULL;
 
     if (IsEqualIID(riid, &IID_IUnknown))
-        *ppv = This;
+        *ppv = &This->IMemAllocator_iface;
     else if (IsEqualIID(riid, &IID_IMemAllocator))
-        *ppv = This;
+        *ppv = &This->IMemAllocator_iface;
 
     if (*ppv)
     {




More information about the wine-cvs mailing list