H. Verbeet : d3d8: Fix QueryInterface.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Jun 7 09:13:43 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: d06aa8d8578f1cf2af1e5170294a194606a2df61
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=d06aa8d8578f1cf2af1e5170294a194606a2df61

Author: H. Verbeet <hverbeet at gmail.com>
Date:   Wed Jun  7 15:13:29 2006 +0200

d3d8: Fix QueryInterface.

QueryInterface should return S_OK on success and set the object
pointer to NULL on failure. This is similar to the patch Ivan
submitted a while ago for wined3d.

---

 dlls/d3d8/basetexture.c   |    3 ++-
 dlls/d3d8/cubetexture.c   |    3 ++-
 dlls/d3d8/device.c        |    3 ++-
 dlls/d3d8/directx.c       |    3 ++-
 dlls/d3d8/indexbuffer.c   |    3 ++-
 dlls/d3d8/pixelshader.c   |    3 ++-
 dlls/d3d8/resource.c      |    3 ++-
 dlls/d3d8/stateblock.c    |    3 ++-
 dlls/d3d8/surface.c       |    3 ++-
 dlls/d3d8/swapchain.c     |    3 ++-
 dlls/d3d8/texture.c       |    3 ++-
 dlls/d3d8/vertexbuffer.c  |    3 ++-
 dlls/d3d8/vertexshader.c  |    3 ++-
 dlls/d3d8/volume.c        |    3 ++-
 dlls/d3d8/volumetexture.c |    3 ++-
 15 files changed, 30 insertions(+), 15 deletions(-)

diff --git a/dlls/d3d8/basetexture.c b/dlls/d3d8/basetexture.c
index 804e83a..f7e4748 100644
--- a/dlls/d3d8/basetexture.c
+++ b/dlls/d3d8/basetexture.c
@@ -32,11 +32,12 @@ HRESULT WINAPI IDirect3DBaseTexture8Impl
         || IsEqualGUID(riid, &IID_IDirect3DBaseTexture8)) {
         IUnknown_AddRef(iface);
         *ppobj = This;
-        return D3D_OK;
+        return S_OK;
     }
 
     WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
 
+    *ppobj = NULL;
     return E_NOINTERFACE;
 }
 
diff --git a/dlls/d3d8/cubetexture.c b/dlls/d3d8/cubetexture.c
index 5ad0f7c..763b28c 100644
--- a/dlls/d3d8/cubetexture.c
+++ b/dlls/d3d8/cubetexture.c
@@ -32,10 +32,11 @@ HRESULT WINAPI IDirect3DCubeTexture8Impl
         || IsEqualGUID(riid, &IID_IDirect3DCubeTexture8)) {
         IUnknown_AddRef(iface);
         *ppobj = This;
-        return D3D_OK;
+        return S_OK;
     }
 
     WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
+    *ppobj = NULL;
     return E_NOINTERFACE;
 }
 
diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c
index 6ebe678..91872ef 100644
--- a/dlls/d3d8/device.c
+++ b/dlls/d3d8/device.c
@@ -45,10 +45,11 @@ HRESULT WINAPI IDirect3DDevice8Impl_Quer
         || IsEqualGUID(riid, &IID_IDirect3DDevice8)) {
         IUnknown_AddRef(iface);
         *ppobj = This;
-        return D3D_OK;
+        return S_OK;
     }
 
     WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
+    *ppobj = NULL;
     return E_NOINTERFACE;
 }
 
diff --git a/dlls/d3d8/directx.c b/dlls/d3d8/directx.c
index 47611bf..4ba8a2f 100644
--- a/dlls/d3d8/directx.c
+++ b/dlls/d3d8/directx.c
@@ -46,10 +46,11 @@ HRESULT WINAPI IDirect3D8Impl_QueryInter
         || IsEqualGUID(riid, &IID_IDirect3D8)) {
         IUnknown_AddRef(iface);
         *ppobj = This;
-        return D3D_OK;
+        return S_OK;
     }
 
     WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid),ppobj);
+    *ppobj = NULL;
     return E_NOINTERFACE;
 }
 
diff --git a/dlls/d3d8/indexbuffer.c b/dlls/d3d8/indexbuffer.c
index a83e72a..1df5d88 100644
--- a/dlls/d3d8/indexbuffer.c
+++ b/dlls/d3d8/indexbuffer.c
@@ -32,10 +32,11 @@ HRESULT WINAPI IDirect3DIndexBuffer8Impl
         || IsEqualGUID(riid, &IID_IDirect3DIndexBuffer8)) {
         IUnknown_AddRef(iface);
         *ppobj = This;
-        return D3D_OK;
+        return S_OK;
     }
 
     WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
+    *ppobj = NULL;
     return E_NOINTERFACE;
 }
 
diff --git a/dlls/d3d8/pixelshader.c b/dlls/d3d8/pixelshader.c
index 968eda1..9ebb9dd 100644
--- a/dlls/d3d8/pixelshader.c
+++ b/dlls/d3d8/pixelshader.c
@@ -32,10 +32,11 @@ HRESULT WINAPI IDirect3DPixelShader8Impl
         || IsEqualGUID(riid, &IID_IDirect3DPixelShader8)) {
         IUnknown_AddRef(iface);
         *ppobj = This;
-        return D3D_OK;
+        return S_OK;
     }
 
     WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
+    *ppobj = NULL;
     return E_NOINTERFACE;
 }
 
diff --git a/dlls/d3d8/resource.c b/dlls/d3d8/resource.c
index 3e395fb..5bde093 100644
--- a/dlls/d3d8/resource.c
+++ b/dlls/d3d8/resource.c
@@ -31,10 +31,11 @@ HRESULT WINAPI IDirect3DResource8Impl_Qu
         || IsEqualGUID(riid, &IID_IDirect3DResource8)) {
         IUnknown_AddRef(iface);
         *ppobj = This;
-        return D3D_OK;
+        return S_OK;
     }
 
     WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
+    *ppobj = NULL;
     return E_NOINTERFACE;
 }
 
diff --git a/dlls/d3d8/stateblock.c b/dlls/d3d8/stateblock.c
index b1634d5..320810b 100644
--- a/dlls/d3d8/stateblock.c
+++ b/dlls/d3d8/stateblock.c
@@ -34,10 +34,11 @@ HRESULT WINAPI IDirect3DStateBlock8Impl_
         || IsEqualGUID(riid, &IID_IDirect3DStateBlock8)) {
         IUnknown_AddRef(iface);
         *ppobj = This;
-        return D3D_OK;
+        return S_OK;
     }
 
     WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
+    *ppobj = NULL;
     return E_NOINTERFACE;
 }
 
diff --git a/dlls/d3d8/surface.c b/dlls/d3d8/surface.c
index 4c589d7..8fe7eea 100644
--- a/dlls/d3d8/surface.c
+++ b/dlls/d3d8/surface.c
@@ -32,10 +32,11 @@ HRESULT WINAPI IDirect3DSurface8Impl_Que
         || IsEqualGUID(riid, &IID_IDirect3DSurface8)) {
         IUnknown_AddRef(iface);
         *ppobj = This;
-        return D3D_OK;
+        return S_OK;
     }
 
     WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
+    *ppobj = NULL;
     return E_NOINTERFACE;
 }
 
diff --git a/dlls/d3d8/swapchain.c b/dlls/d3d8/swapchain.c
index dcba111..6c9913f 100644
--- a/dlls/d3d8/swapchain.c
+++ b/dlls/d3d8/swapchain.c
@@ -32,10 +32,11 @@ HRESULT WINAPI IDirect3DSwapChain8Impl_Q
         || IsEqualGUID(riid, &IID_IDirect3DSwapChain8)) {
         IUnknown_AddRef(iface);
         *ppobj = This;
-        return D3D_OK;
+        return S_OK;
     }
 
     WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
+    *ppobj = NULL;
     return E_NOINTERFACE;
 }
 
diff --git a/dlls/d3d8/texture.c b/dlls/d3d8/texture.c
index be52192..d01867f 100644
--- a/dlls/d3d8/texture.c
+++ b/dlls/d3d8/texture.c
@@ -33,10 +33,11 @@ HRESULT WINAPI IDirect3DTexture8Impl_Que
         || IsEqualGUID(riid, &IID_IDirect3DTexture8)) {
         IUnknown_AddRef(iface);
         *ppobj = This;
-        return D3D_OK;
+        return S_OK;
     }
 
     WARN("(%p)->(%s,%p) not found\n", This, debugstr_guid(riid), ppobj);
+    *ppobj = NULL;
     return E_NOINTERFACE;
 }
 
diff --git a/dlls/d3d8/vertexbuffer.c b/dlls/d3d8/vertexbuffer.c
index 36691bc..402514b 100644
--- a/dlls/d3d8/vertexbuffer.c
+++ b/dlls/d3d8/vertexbuffer.c
@@ -32,11 +32,12 @@ HRESULT WINAPI IDirect3DVertexBuffer8Imp
         || IsEqualGUID(riid, &IID_IDirect3DVertexBuffer8)) {
         IUnknown_AddRef(iface);
         *ppobj = This;
-        return D3D_OK;
+        return S_OK;
     }
 
     WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
 
+    *ppobj = NULL;
     return E_NOINTERFACE;
 }
 
diff --git a/dlls/d3d8/vertexshader.c b/dlls/d3d8/vertexshader.c
index bf88998..b1fb6a1 100644
--- a/dlls/d3d8/vertexshader.c
+++ b/dlls/d3d8/vertexshader.c
@@ -32,10 +32,11 @@ HRESULT WINAPI IDirect3DVertexShader8Imp
         || IsEqualGUID(riid, &IID_IDirect3DVertexShader8)) {
         IUnknown_AddRef(iface);
         *ppobj = This;
-        return D3D_OK;
+        return S_OK;
     }
 
     WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
+    *ppobj = NULL;
     return E_NOINTERFACE;
 }
 
diff --git a/dlls/d3d8/volume.c b/dlls/d3d8/volume.c
index b96e802..f6e6473 100644
--- a/dlls/d3d8/volume.c
+++ b/dlls/d3d8/volume.c
@@ -31,10 +31,11 @@ HRESULT WINAPI IDirect3DVolume8Impl_Quer
         || IsEqualGUID(riid, &IID_IDirect3DVolume8)) {
         IUnknown_AddRef(iface);
         *ppobj = This;
-        return D3D_OK;
+        return S_OK;
     }
 
     WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
+    *ppobj = NULL;
     return E_NOINTERFACE;
 }
 
diff --git a/dlls/d3d8/volumetexture.c b/dlls/d3d8/volumetexture.c
index c68bfa3..04297f4 100644
--- a/dlls/d3d8/volumetexture.c
+++ b/dlls/d3d8/volumetexture.c
@@ -33,10 +33,11 @@ HRESULT WINAPI IDirect3DVolumeTexture8Im
     || IsEqualGUID(riid, &IID_IDirect3DVolumeTexture8)) {
         IUnknown_AddRef(iface);
         *ppobj = This;
-        return D3D_OK;
+        return S_OK;
     }
 
     WARN("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppobj);
+    *ppobj = NULL;
     return E_NOINTERFACE;
 }
 




More information about the wine-cvs mailing list