Re: [PATCH 4/5] d3dx9_36: Implement ID3DXFileEnumObjectImpl_GetChildren & ID3DXFileEnumObjectImpl_GetChild and add stubbed interface for ID3DXFileData. (try 4)
On 10/25/2012 10:34, Christian Costa wrote:
+ +static HRESULT WINAPI ID3DXFileDataImpl_Create(IDirectXFileObject *dxfile_object, ID3DXFileData **ret_iface) +{ + ID3DXFileDataImpl *object; + + TRACE("(%p, %p)\n", dxfile_object, ret_iface); + + *ret_iface = NULL; + + object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object)); + if (!object) + { + ERR("Out of memory\n"); + return E_OUTOFMEMORY; + } + + object->ID3DXFileData_iface.lpVtbl = &ID3DXFileData_Vtbl; + object->ref = 1; + object->dxfile_object = (IDirectXFileData*)dxfile_object; + + *ret_iface = &object->ID3DXFileData_iface; + + return S_OK; +} +
You don't need WINAPI for it.
+ ret = ID3DXFileDataImpl_Create((IDirectXFileObject*)data_object, &object->children[object->nb_children]);
It seems you're casting it back and forth, is it possible to use proper type for data_object?
+ { + (&object->ID3DXFileEnumObject_iface)->lpVtbl->Release(&object->ID3DXFileEnumObject_iface); Hmm, what's wrong with object->ID3DXFileEnumObject_iface.lpVtbl->Release ?
2012/10/25 Nikolay Sivov <bunglehead(a)gmail.com>
On 10/25/2012 10:34, Christian Costa wrote:
+ +static HRESULT WINAPI ID3DXFileDataImpl_Create(**IDirectXFileObject *dxfile_object, ID3DXFileData **ret_iface) +{ + ID3DXFileDataImpl *object; + + TRACE("(%p, %p)\n", dxfile_object, ret_iface); + + *ret_iface = NULL; + + object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object)); + if (!object) + { + ERR("Out of memory\n"); + return E_OUTOFMEMORY; + } + + object->ID3DXFileData_iface.**lpVtbl = &ID3DXFileData_Vtbl; + object->ref = 1; + object->dxfile_object = (IDirectXFileData*)dxfile_**object; + + *ret_iface = &object->ID3DXFileData_iface; + + return S_OK; +} +
You don't need WINAPI for it.
+ ret = ID3DXFileDataImpl_Create((**IDirectXFileObject*)data_**object,
&object->children[object->nb_**children]);
It seems you're casting it back and forth, is it possible to use proper type for data_object?
Because in another serie ID3DXFileDataImpl_Create will be called in another place with a FileObject and ID3DXFileDataImpl_Create will really deals with that FileObject.
+ {
+ (&object->ID3DXFileEnumObject_**iface)->lpVtbl->Release(&** object->ID3DXFileEnumObject_**iface);
Hmm, what's wrong with object->ID3DXFileEnumObject_**iface.lpVtbl->Release ?
What do you mean ?
participants (2)
-
Christian Costa -
Nikolay Sivov