[3/3] quartz: Distinguish interface pointer and implementation pointer in multiple interfaces.

Sebastian Lackner sebastian at fds-team.de
Thu Jun 25 22:52:42 CDT 2015


---
 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)
     {
-- 
2.4.3



More information about the wine-patches mailing list