Christian Costa : d3dxof: Improve IDirectXFileImpl_CreateSaveObject stub.
Alexandre Julliard
julliard at winehq.org
Wed Dec 17 09:39:23 CST 2008
Module: wine
Branch: master
Commit: 40c5c8ad7c7aa2b0bac03e4d7f6858e8322e4f37
URL: http://source.winehq.org/git/wine.git/?a=commit;h=40c5c8ad7c7aa2b0bac03e4d7f6858e8322e4f37
Author: Christian Costa <titan.costa at wanadoo.fr>
Date: Tue Dec 16 20:55:22 2008 +0100
d3dxof: Improve IDirectXFileImpl_CreateSaveObject stub.
---
dlls/d3dxof/d3dxof.c | 29 +++++++++++++++++++++++++++--
1 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/dlls/d3dxof/d3dxof.c b/dlls/d3dxof/d3dxof.c
index 25334c2..61017d5 100644
--- a/dlls/d3dxof/d3dxof.c
+++ b/dlls/d3dxof/d3dxof.c
@@ -98,6 +98,7 @@ static WORD check_TOKEN(parse_buffer * buf);
static BOOL parse_template(parse_buffer * buf);
static HRESULT IDirectXFileDataReferenceImpl_Create(IDirectXFileDataReferenceImpl** ppObj);
static HRESULT IDirectXFileEnumObjectImpl_Create(IDirectXFileEnumObjectImpl** ppObj);
+static HRESULT IDirectXFileSaveObjectImpl_Create(IDirectXFileSaveObjectImpl** ppObj);
static void dump_template(xtemplate* templates_array, xtemplate* ptemplate)
{
@@ -377,9 +378,12 @@ static HRESULT WINAPI IDirectXFileImpl_CreateSaveObject(IDirectXFile* iface, LPC
{
IDirectXFileImpl *This = (IDirectXFileImpl *)iface;
- FIXME("(%p/%p)->(%s,%x,%p) stub!\n", This, iface, szFileName, dwFileFormat, ppSaveObj);
+ FIXME("(%p/%p)->(%s,%x,%p) partial stub!\n", This, iface, szFileName, dwFileFormat, ppSaveObj);
- return DXFILEERR_BADVALUE;
+ if (!szFileName || !ppSaveObj)
+ return E_POINTER;
+
+ return IDirectXFileSaveObjectImpl_Create((IDirectXFileSaveObjectImpl**)ppSaveObj);
}
static BOOL read_bytes(parse_buffer * buf, LPVOID data, DWORD size)
@@ -2352,6 +2356,27 @@ static const IDirectXFileObjectVtbl IDirectXFileObject_Vtbl =
IDirectXFileObjectImpl_GetId
};
+static HRESULT IDirectXFileSaveObjectImpl_Create(IDirectXFileSaveObjectImpl** ppObj)
+{
+ IDirectXFileSaveObjectImpl* object;
+
+ TRACE("(%p)\n", ppObj);
+
+ object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectXFileSaveObjectImpl));
+ if (!object)
+ {
+ ERR("Out of memory\n");
+ return DXFILEERR_BADALLOC;
+ }
+
+ object->lpVtbl.lpVtbl = &IDirectXFileSaveObject_Vtbl;
+ object->ref = 1;
+
+ *ppObj = object;
+
+ return S_OK;
+}
+
/*** IUnknown methods ***/
static HRESULT WINAPI IDirectXFileSaveObjectImpl_QueryInterface(IDirectXFileSaveObject* iface, REFIID riid, void** ppvObject)
{
More information about the wine-cvs
mailing list