On 23 June 2017 at 15:15, Nikolay Sivov <nsivov(a)codeweavers.com> wrote:
+static HRESULT WINAPI d3drm_animation2_QueryInterface(IDirect3DRMAnimation2 *iface, REFIID riid, void **out) +{ + struct d3drm_animation *animation = impl_from_IDirect3DRMAnimation2(iface); + + TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out); + + if (IsEqualGUID(riid, &IID_IDirect3DRMAnimation) + || IsEqualGUID(riid, &IID_IDirect3DRMObject) + || IsEqualGUID(riid, &IID_IUnknown)) + { + *out = &animation->IDirect3DRMAnimation_iface; + } + else if (IsEqualGUID(riid, &IID_IDirect3DRMAnimation2)) + { + *out = &animation->IDirect3DRMAnimation2_iface; + } + else + { + *out = NULL; + WARN("%s not implemented, returning CLASS_E_CLASSNOTAVAILABLE.\n", debugstr_guid(riid)); + return CLASS_E_CLASSNOTAVAILABLE; I suspect CLASS_E_CLASSNOTAVAILABLE is correct, since other d3drm interfaces are unusual like that as well, but it would be good to have that backed up by the tests.