[PATCH 3/5] ddraw: Querying IUnknown for a surface should return the IDirectDrawSurface interface.

Henri Verbeet hverbeet at codeweavers.com
Thu Mar 29 18:08:36 CDT 2012


I have tests to prove this, but they require some additional patches to pass
first.
---
 dlls/ddraw/surface.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index 2178064..202eb4d 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -142,8 +142,7 @@ static HRESULT WINAPI ddraw_surface7_QueryInterface(IDirectDrawSurface7 *iface,
     if(!riid)
         return DDERR_INVALIDPARAMS;
 
-    if (IsEqualGUID(riid, &IID_IUnknown)
-     || IsEqualGUID(riid, &IID_IDirectDrawSurface7) )
+    if (IsEqualGUID(riid, &IID_IDirectDrawSurface7))
     {
         IDirectDrawSurface7_AddRef(iface);
         *obj = iface;
@@ -175,7 +174,8 @@ static HRESULT WINAPI ddraw_surface7_QueryInterface(IDirectDrawSurface7 *iface,
         return S_OK;
     }
 
-    if (IsEqualGUID(riid, &IID_IDirectDrawSurface))
+    if (IsEqualGUID(riid, &IID_IDirectDrawSurface)
+            || IsEqualGUID(riid, &IID_IUnknown))
     {
         IDirectDrawSurface_AddRef(&This->IDirectDrawSurface_iface);
         *obj = &This->IDirectDrawSurface_iface;
-- 
1.7.3.4




More information about the wine-patches mailing list