d3dxof: Create FileData object using its constructor. Fix return value of CreateEnumObject.
diff --git a/dlls/d3dxof/d3dxof.c b/dlls/d3dxof/d3dxof.c
index c141c42..dff299d 100644
--- a/dlls/d3dxof/d3dxof.c
+++ b/dlls/d3dxof/d3dxof.c
@@ -156,7 +156,6 @@
/*** IDirectXFile methods ***/
static HRESULT WINAPI IDirectXFileImpl_CreateEnumObject(IDirectXFile* iface, LPVOID pvSource, DXFILELOADOPTIONS dwLoadOptions, LPDIRECTXFILEENUMOBJECT* ppEnumObj)
-
{
IDirectXFileImpl *This = (IDirectXFileImpl *)iface;
IDirectXFileEnumObjectImpl* object;
@@ -1126,17 +1125,17 @@
{
IDirectXFileEnumObjectImpl *This = (IDirectXFileEnumObjectImpl *)iface;
IDirectXFileDataImpl* object;
+ HRESULT hr;
FIXME("(%p/%p)->(%p) stub!\n", This, iface, ppDataObj);
- object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectXFileDataImpl));
-
- object->lpVtbl.lpVtbl = &IDirectXFileData_Vtbl;
- object->ref = 1;
+ hr = IDirectXFileDataImpl_Create(&object);
+ if (!SUCCEEDED(hr))
+ return hr;
*ppDataObj = (LPDIRECTXFILEDATA)object;
- return DXFILEERR_BADVALUE;
+ return DXFILE_OK;
}
static HRESULT WINAPI IDirectXFileEnumObjectImpl_GetDataObjectById(IDirectXFileEnumObject* iface, REFGUID rguid, LPDIRECTXFILEDATA* ppDataObj)