diff --git a/dlls/d3dx9_36/xfile.c b/dlls/d3dx9_36/xfile.c index 5db7800f624..d4f08e39c6b 100644 --- a/dlls/d3dx9_36/xfile.c +++ b/dlls/d3dx9_36/xfile.c @@ -300,17 +300,32 @@ static HRESULT WINAPI ID3DXFileEnumObjectImpl_GetFile(ID3DXFileEnumObject *iface static HRESULT WINAPI ID3DXFileEnumObjectImpl_GetChildren(ID3DXFileEnumObject *iface, SIZE_T *children) { - FIXME("(%p)->(%p): stub\n", iface, children); + ID3DXFileEnumObjectImpl *This = impl_from_ID3DXFileEnumObject(iface); - return E_NOTIMPL; + TRACE("(%p)->(%p)\n", iface, children); + + if (!children) + return E_POINTER; + + *children = This->nb_children; + + return S_OK; } static HRESULT WINAPI ID3DXFileEnumObjectImpl_GetChild(ID3DXFileEnumObject *iface, SIZE_T id, ID3DXFileData **object) { - FIXME("(%p)->(%lu, %p): stub\n", iface, id, object); + ID3DXFileEnumObjectImpl *This = impl_from_ID3DXFileEnumObject(iface); - return E_NOTIMPL; + TRACE("(%p)->(%lu, %p)\n", iface, id, object); + + if (!object) + return E_POINTER; + + *object = This->children[id]; + (*object)->lpVtbl->AddRef(*object); + + return S_OK; }