diff --git a/dlls/mshtml/htmlnode.c b/dlls/mshtml/htmlnode.c index f0dc460d596..a4f1046cc2b 100644 --- a/dlls/mshtml/htmlnode.c +++ b/dlls/mshtml/htmlnode.c @@ -200,22 +200,12 @@ static HRESULT WINAPI HTMLDOMChildrenCollection_QueryInterface(IHTMLDOMChildrenC { HTMLDOMChildrenCollection *This = impl_from_IHTMLDOMChildrenCollection(iface); - TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); - - if(IsEqualGUID(&IID_IUnknown, riid)) { - *ppv = &This->IHTMLDOMChildrenCollection_iface; - }else if(IsEqualGUID(&IID_IHTMLDOMChildrenCollection, riid)) { - *ppv = &This->IHTMLDOMChildrenCollection_iface; - }else if(dispex_query_interface(&This->dispex, riid, ppv)) { + if(dispex_query_interface(&This->dispex, riid, ppv)) return *ppv ? S_OK : E_NOINTERFACE; - }else { - *ppv = NULL; - WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); - return E_NOINTERFACE; - } - IUnknown_AddRef((IUnknown*)*ppv); - return S_OK; + *ppv = NULL; + WARN("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); + return E_NOINTERFACE; } static ULONG WINAPI HTMLDOMChildrenCollection_AddRef(IHTMLDOMChildrenCollection *iface) @@ -355,6 +345,16 @@ static inline HTMLDOMChildrenCollection *impl_from_DispatchEx(DispatchEx *iface) return CONTAINING_RECORD(iface, HTMLDOMChildrenCollection, dispex); } +static void *HTMLDOMChildrenCollection_query_interface(DispatchEx *dispex, REFIID riid) +{ + HTMLDOMChildrenCollection *This = impl_from_DispatchEx(dispex); + + if(IsEqualGUID(&IID_IHTMLDOMChildrenCollection, riid)) + return &This->IHTMLDOMChildrenCollection_iface; + + return NULL; +} + static void HTMLDOMChildrenCollection_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLDOMChildrenCollection *This = impl_from_DispatchEx(dispex); @@ -443,6 +443,7 @@ static HRESULT HTMLDOMChildrenCollection_invoke(DispatchEx *dispex, DISPID id, L } static const dispex_static_data_vtbl_t HTMLDOMChildrenCollection_dispex_vtbl = { + .query_interface = HTMLDOMChildrenCollection_query_interface, .destructor = HTMLDOMChildrenCollection_destructor, .traverse = HTMLDOMChildrenCollection_traverse, .unlink = HTMLDOMChildrenCollection_unlink,