Module: wine Branch: master Commit: 40c5c8ad7c7aa2b0bac03e4d7f6858e8322e4f37 URL: http://source.winehq.org/git/wine.git/?a=commit;h=40c5c8ad7c7aa2b0bac03e4d7f...
Author: Christian Costa titan.costa@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) {