From 7dd4f439e33c37d6a1f2afd1febee7062886b751 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Sun, 1 Apr 2012 13:12:02 +0200 Subject: [PATCH] ddraw: The texture interfaces can't be queried from version 7 surfaces. --- dlls/ddraw/surface.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index 01094494514..d8c43a1781a 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -222,21 +222,21 @@ static HRESULT WINAPI ddraw_surface7_QueryInterface(IDirectDrawSurface7 *iface, return E_NOINTERFACE; } - if (IsEqualGUID( &IID_IDirect3DTexture2, riid) - || IsEqualGUID(&IID_IDirect3DTexture, riid)) + if (This->version != 7) { - if (IsEqualGUID( &IID_IDirect3DTexture, riid )) + if (IsEqualGUID(&IID_IDirect3DTexture2, riid)) { - *obj = &This->IDirect3DTexture_iface; - TRACE(" returning Direct3DTexture interface at %p.\n", *obj); + IDirect3DTexture2_AddRef(&This->IDirect3DTexture2_iface); + *obj = &This->IDirect3DTexture2_iface; + return S_OK; } - else + + if (IsEqualGUID( &IID_IDirect3DTexture, riid )) { - *obj = &This->IDirect3DTexture2_iface; - TRACE(" returning Direct3DTexture2 interface at %p.\n", *obj); + IDirect3DTexture2_AddRef(&This->IDirect3DTexture_iface); + *obj = &This->IDirect3DTexture_iface; + return S_OK; } - IUnknown_AddRef( (IUnknown *) *obj); - return S_OK; } WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid)); -- 2.11.4.GIT