static HRESULT HTMLInputElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv) { HTMLInputElement *This = HTMLINPUT_NODE_THIS(iface); *ppv = NULL; if(IsEqualGUID(&IID_IUnknown, riid)) { TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = HTMLINPUT(This); }else if(IsEqualGUID(&IID_IDispatch, riid)) { TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); *ppv = HTMLINPUT(This); }else if(IsEqualGUID(&IID_IHTMLInputElement, riid)) { TRACE("(%p)->(IID_IHTMLInputElement %p)\n", This, ppv); *ppv = HTMLINPUT(This); }else if(IsEqualGUID(&IID_IHTMLInputTextElement, riid)) { TRACE("(%p)->(IID_IHTMLInputTextElement %p)\n", This, ppv); *ppv = HTMLINPUTTEXT(This); } if(*ppv) { IUnknown_AddRef((IUnknown*)*ppv); return S_OK; } return HTMLElement_QI(&This->element.node, riid, ppv); }
static HRESULT HTMLBodyElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv) { HTMLBodyElement *This = impl_from_HTMLDOMNode(iface); *ppv = NULL; if(IsEqualGUID(&IID_IUnknown, riid)) { TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLBodyElement_iface; }else if(IsEqualGUID(&IID_IDispatch, riid)) { TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); *ppv = &This->IHTMLBodyElement_iface; }else if(IsEqualGUID(&IID_IHTMLBodyElement, riid)) { TRACE("(%p)->(IID_IHTMLBodyElement %p)\n", This, ppv); *ppv = &This->IHTMLBodyElement_iface; }else if(IsEqualGUID(&IID_IHTMLTextContainer, riid)) { TRACE("(%p)->(IID_IHTMLTextContainer %p)\n", &This->textcont, ppv); *ppv = &This->textcont.IHTMLTextContainer_iface; } if(*ppv) { IUnknown_AddRef((IUnknown*)*ppv); return S_OK; } return HTMLElement_QI(&This->textcont.element.node, riid, ppv); }
static HRESULT HTMLTable_QI(HTMLDOMNode *iface, REFIID riid, void **ppv) { HTMLTable *This = impl_from_HTMLDOMNode(iface); *ppv = NULL; if(IsEqualGUID(&IID_IUnknown, riid)) { TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLTable_iface; }else if(IsEqualGUID(&IID_IDispatch, riid)) { TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); *ppv = &This->IHTMLTable_iface; }else if(IsEqualGUID(&IID_IHTMLTable, riid)) { TRACE("(%p)->(IID_IHTMLTable %p)\n", This, ppv); *ppv = &This->IHTMLTable_iface; }else if(IsEqualGUID(&IID_IHTMLTable2, riid)) { TRACE("(%p)->(IID_IHTMLTable2 %p)\n", This, ppv); *ppv = &This->IHTMLTable2_iface; }else if(IsEqualGUID(&IID_IHTMLTable3, riid)) { TRACE("(%p)->(IID_IHTMLTable3 %p)\n", This, ppv); *ppv = &This->IHTMLTable3_iface; } if(*ppv) { IUnknown_AddRef((IUnknown*)*ppv); return S_OK; } return HTMLElement_QI(&This->element.node, riid, ppv); }
static HRESULT WINAPI HTMLInputElement_QueryInterface(IHTMLInputElement *iface, REFIID riid, void **ppv) { HTMLInputElement *This = HTMLINPUT_THIS(iface); HRESULT hres; *ppv = NULL; if(IsEqualGUID(&IID_IUnknown, riid)) { TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = HTMLINPUT(This); }else if(IsEqualGUID(&IID_IDispatch, riid)) { TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); *ppv = HTMLINPUT(This); }else if(IsEqualGUID(&IID_IHTMLInputElement, riid)) { TRACE("(%p)->(IID_IHTMLInputElement %p)\n", This, ppv); *ppv = HTMLINPUT(This); } if(*ppv) { IUnknown_AddRef((IUnknown*)*ppv); return S_OK; } hres = HTMLElement_QI(This->element, riid, ppv); if(FAILED(hres)) WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); return hres; }
static HRESULT SVGElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv) { SVGElement *This = SVGElement_from_HTMLDOMNode(iface); TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); if(IsEqualGUID(&IID_ISVGElement, riid)) *ppv = &This->ISVGElement_iface; else return HTMLElement_QI(&This->element.node, riid, ppv); IUnknown_AddRef((IUnknown*)*ppv); return S_OK; }
static HRESULT HTMLLinkElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv) { HTMLLinkElement *This = impl_from_HTMLDOMNode(iface); if(IsEqualGUID(&IID_IHTMLLinkElement, riid)) { TRACE("(%p)->(IID_IHTMLLinkElement %p)\n", This, ppv); *ppv = &This->IHTMLLinkElement_iface; }else { return HTMLElement_QI(&This->element.node, riid, ppv); } IUnknown_AddRef((IUnknown*)*ppv); return S_OK; }
HRESULT HTMLFrameBase_QI(HTMLFrameBase *This, REFIID riid, void **ppv) { if(IsEqualGUID(&IID_IHTMLFrameBase, riid)) { TRACE("(%p)->(IID_IHTMLFrameBase %p)\n", This, ppv); *ppv = &This->IHTMLFrameBase_iface; }else if(IsEqualGUID(&IID_IHTMLFrameBase2, riid)) { TRACE("(%p)->(IID_IHTMLFrameBase2 %p)\n", This, ppv); *ppv = &This->IHTMLFrameBase2_iface; }else { return HTMLElement_QI(&This->element.node, riid, ppv); } IUnknown_AddRef((IUnknown*)*ppv); return S_OK; }
HRESULT HTMLCommentElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv) { HTMLCommentElement *This = HTMLCOMMENT_NODE_THIS(iface); *ppv = NULL; if(IsEqualGUID(&IID_IHTMLCommentElement, riid)) { TRACE("(%p)->(IID_IHTMLCommentElement %p)\n", This, ppv); *ppv = HTMLCOMMENT(This); }else { return HTMLElement_QI(&This->element.node, riid, ppv); } IUnknown_AddRef((IUnknown*)*ppv); return S_OK; }
static HRESULT HTMLObjectElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv) { HTMLObjectElement *This = impl_from_HTMLDOMNode(iface); if(IsEqualGUID(&IID_IUnknown, riid)) { TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLObjectElement_iface; }else if(IsEqualGUID(&IID_IDispatch, riid)) { TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); *ppv = &This->IHTMLObjectElement_iface; }else if(IsEqualGUID(&IID_IHTMLObjectElement, riid)) { TRACE("(%p)->(IID_IHTMLObjectElement %p)\n", This, ppv); *ppv = &This->IHTMLObjectElement_iface; }else if(IsEqualGUID(&IID_IHTMLObjectElement2, riid)) { TRACE("(%p)->(IID_IHTMLObjectElement2 %p)\n", This, ppv); *ppv = &This->IHTMLObjectElement2_iface; }else if(IsEqualGUID(&IID_HTMLPluginContainer, riid)) { TRACE("(%p)->(IID_HTMLPluginContainer %p)\n", This, ppv); *ppv = &This->plugin_container; return S_OK; }else { HRESULT hres; hres = HTMLElement_QI(&This->plugin_container.element.node, riid, ppv); if(hres == E_NOINTERFACE && This->plugin_container.plugin_host && This->plugin_container.plugin_host->plugin_unk) { IUnknown *plugin_iface, *ret; hres = IUnknown_QueryInterface(This->plugin_container.plugin_host->plugin_unk, riid, (void**)&plugin_iface); if(hres == S_OK) { hres = wrap_iface(plugin_iface, (IUnknown*)&This->IHTMLObjectElement_iface, &ret); IUnknown_Release(plugin_iface); if(FAILED(hres)) return hres; TRACE("returning plugin iface %p wrapped to %p\n", plugin_iface, ret); *ppv = ret; return S_OK; } } return hres; } IUnknown_AddRef((IUnknown*)*ppv); return S_OK; }
static HRESULT HTMLEmbedElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv) { HTMLEmbedElement *This = HTMLEMBED_NODE_THIS(iface); if(IsEqualGUID(&IID_IUnknown, riid)) { TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = HTMLEMBED(This); }else if(IsEqualGUID(&IID_IDispatch, riid)) { TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); *ppv = HTMLEMBED(This); }else if(IsEqualGUID(&IID_IHTMLEmbedElement, riid)) { TRACE("(%p)->(IID_IHTMLEmbedElement %p)\n", This, ppv); *ppv = HTMLEMBED(This); }else { return HTMLElement_QI(&This->element.node, riid, ppv); } IUnknown_AddRef((IUnknown*)*ppv); return S_OK; }
static HRESULT HTMLTableRow_QI(HTMLDOMNode *iface, REFIID riid, void **ppv) { HTMLTableRow *This = HTMLTABLEROW_NODE_THIS(iface); *ppv = NULL; if(IsEqualGUID(&IID_IUnknown, riid)) { TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = HTMLTABLEROW(This); }else if(IsEqualGUID(&IID_IDispatch, riid)) { TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); *ppv = HTMLTABLEROW(This); }else if(IsEqualGUID(&IID_IHTMLTableRow, riid)) { TRACE("(%p)->(IID_IHTMLTableRow %p)\n", This, ppv); *ppv = HTMLTABLEROW(This); } if(*ppv) { IUnknown_AddRef((IUnknown*)*ppv); return S_OK; } return HTMLElement_QI(&This->element.node, riid, ppv); }
static HRESULT HTMLObjectElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv) { HTMLObjectElement *This = impl_from_HTMLDOMNode(iface); if(IsEqualGUID(&IID_IUnknown, riid)) { TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = &This->IHTMLObjectElement_iface; } else if(IsEqualGUID(&IID_IDispatch, riid)) { TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); *ppv = &This->IHTMLObjectElement_iface; } else if(IsEqualGUID(&IID_IHTMLObjectElement, riid)) { TRACE("(%p)->(IID_IHTMLObjectElement %p)\n", This, ppv); *ppv = &This->IHTMLObjectElement_iface; } else if(IsEqualGUID(&IID_HTMLPluginContainer, riid)) { TRACE("(%p)->(IID_HTMLPluginContainer %p)\n", This, ppv); *ppv = &This->plugin_container; return S_OK; } else { return HTMLElement_QI(&This->plugin_container.element.node, riid, ppv); } IUnknown_AddRef((IUnknown*)*ppv); return S_OK; }