2012/10/25 Nikolay Sivov <bunglehead@gmail.com>
On 10/25/2012 10:34, Christian Costa wrote:
---
  dlls/d3dx9_36/xfile.c |   14 ++++++++++++--
  1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/dlls/d3dx9_36/xfile.c b/dlls/d3dx9_36/xfile.c
index a1e0596..4c216da 100644
--- a/dlls/d3dx9_36/xfile.c
+++ b/dlls/d3dx9_36/xfile.c
@@ -154,9 +154,19 @@ static HRESULT WINAPI ID3DXFileDataImpl_Unlock(ID3DXFileData *iface)
    static HRESULT WINAPI ID3DXFileDataImpl_GetType(ID3DXFileData *iface, GUID *guid)
  {
-    FIXME("(%p)->(%p): stub\n", iface, guid);
+    ID3DXFileDataImpl *This = impl_from_ID3DXFileData(iface);
+    const GUID *dxfile_guid;
+    HRESULT ret;
  -    return E_NOTIMPL;
+    TRACE("(%p)->(%p)\n", iface, guid);
+
+    ret = IDirectXFileData_GetType(This->dxfile_object, &dxfile_guid);
+    if (ret != S_OK)
+        return ret;
+
+    *guid = *dxfile_guid;
+
+    return S_OK;
  }
 
Why not simply forward to  IDirectXFileData here? What is all the surrounding code for?



IDirectXFileData_GetType returns a pointer to a GUID (GUID**) whereas ID3DXFileData_GetType fill the GUID (GUID*) hence this code.