[PATCH 1/3] d3dx9_36: Implement ID3DXFileDataImpl_Lock and ID3DXFileDataImpl_Unlock.

Christian Costa titan.costa at gmail.com
Fri Jan 11 02:40:49 CST 2013


---
 dlls/d3dx9_36/xfile.c |   23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/dlls/d3dx9_36/xfile.c b/dlls/d3dx9_36/xfile.c
index 8fa20ff..a464d2b 100644
--- a/dlls/d3dx9_36/xfile.c
+++ b/dlls/d3dx9_36/xfile.c
@@ -153,17 +153,32 @@ static HRESULT WINAPI ID3DXFileDataImpl_GetId(ID3DXFileData *iface, GUID *guid)
 
 static HRESULT WINAPI ID3DXFileDataImpl_Lock(ID3DXFileData *iface, SIZE_T *size, const void **data)
 {
-    FIXME("(%p)->(%p, %p): stub\n", iface, size, data);
+    ID3DXFileDataImpl *This = impl_from_ID3DXFileData(iface);
+    DWORD dxfile_size;
+    HRESULT ret;
 
-    return E_NOTIMPL;
+    TRACE("(%p)->(%p, %p)\n", iface, size, data);
+
+    if (!size || !data)
+        return E_POINTER;
+
+    ret = IDirectXFileData_GetData(This->dxfile_data, NULL, &dxfile_size, (void**)data);
+    if (ret != DXFILE_OK)
+        return error_dxfile_to_d3dxfile(ret);
+
+    *size = dxfile_size;
+
+    return S_OK;
 }
 
 
 static HRESULT WINAPI ID3DXFileDataImpl_Unlock(ID3DXFileData *iface)
 {
-    FIXME("(%p)->(): stub\n", iface);
+    TRACE("(%p)->()\n", iface);
 
-    return E_NOTIMPL;
+    /* Nothing to do */
+
+    return S_OK;
 }
 
 




More information about the wine-patches mailing list