mshtml: Added IElementSelector interface stub implementation.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2016-06-16 19:29:46 +02:00 committed by Alexandre Julliard
parent 5e1e682a17
commit ba9da24d7c
2 changed files with 84 additions and 1 deletions

View File

@ -4020,6 +4020,83 @@ static const IHTMLUniqueNameVtbl HTMLUniqueNameVtbl = {
HTMLUniqueName_get_uniqueID
};
static inline HTMLElement *impl_from_IElementSelector(IElementSelector *iface)
{
return CONTAINING_RECORD(iface, HTMLElement, IElementSelector_iface);
}
static HRESULT WINAPI ElementSelector_QueryInterface(IElementSelector *iface, REFIID riid, void **ppv)
{
HTMLElement *This = impl_from_IElementSelector(iface);
return IHTMLElement_QueryInterface(&This->IHTMLElement_iface, riid, ppv);
}
static ULONG WINAPI ElementSelector_AddRef(IElementSelector *iface)
{
HTMLElement *This = impl_from_IElementSelector(iface);
return IHTMLElement_AddRef(&This->IHTMLElement_iface);
}
static ULONG WINAPI ElementSelector_Release(IElementSelector *iface)
{
HTMLElement *This = impl_from_IElementSelector(iface);
return IHTMLElement_Release(&This->IHTMLElement_iface);
}
static HRESULT WINAPI ElementSelector_GetTypeInfoCount(IElementSelector *iface, UINT *pctinfo)
{
HTMLElement *This = impl_from_IElementSelector(iface);
return IDispatchEx_GetTypeInfoCount(&This->node.event_target.dispex.IDispatchEx_iface, pctinfo);
}
static HRESULT WINAPI ElementSelector_GetTypeInfo(IElementSelector *iface, UINT iTInfo,
LCID lcid, ITypeInfo **ppTInfo)
{
HTMLElement *This = impl_from_IElementSelector(iface);
return IDispatchEx_GetTypeInfo(&This->node.event_target.dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
}
static HRESULT WINAPI ElementSelector_GetIDsOfNames(IElementSelector *iface, REFIID riid,
LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
{
HTMLElement *This = impl_from_IElementSelector(iface);
return IDispatchEx_GetIDsOfNames(&This->node.event_target.dispex.IDispatchEx_iface, riid, rgszNames, cNames, lcid, rgDispId);
}
static HRESULT WINAPI ElementSelector_Invoke(IElementSelector *iface, DISPID dispIdMember, REFIID riid,
LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{
HTMLElement *This = impl_from_IElementSelector(iface);
return IDispatchEx_Invoke(&This->node.event_target.dispex.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags,
pDispParams, pVarResult, pExcepInfo, puArgErr);
}
static HRESULT WINAPI ElementSelector_querySelector(IElementSelector *iface, BSTR v, IHTMLElement **pel)
{
HTMLElement *This = impl_from_IElementSelector(iface);
FIXME("(%p)->(%s %p)\n", This, debugstr_w(v), pel);
return E_NOTIMPL;
}
static HRESULT WINAPI ElementSelector_querySelectorAll(IElementSelector *iface, BSTR v, IHTMLDOMChildrenCollection **pel)
{
HTMLElement *This = impl_from_IElementSelector(iface);
FIXME("(%p)->(%s %p)\n", This, debugstr_w(v), pel);
return E_NOTIMPL;
}
static const IElementSelectorVtbl ElementSelectorVtbl = {
ElementSelector_QueryInterface,
ElementSelector_AddRef,
ElementSelector_Release,
ElementSelector_GetTypeInfoCount,
ElementSelector_GetTypeInfo,
ElementSelector_GetIDsOfNames,
ElementSelector_Invoke,
ElementSelector_querySelector,
ElementSelector_querySelectorAll
};
static inline HTMLElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface)
{
return CONTAINING_RECORD(iface, HTMLElement, node);
@ -4043,6 +4120,8 @@ HRESULT HTMLElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
*ppv = &This->IHTMLElement4_iface;
}else if(IsEqualGUID(&IID_IHTMLUniqueName, riid)) {
*ppv = &This->IHTMLUniqueName_iface;
}else if(IsEqualGUID(&IID_IElementSelector, riid)) {
*ppv = &This->IElementSelector_iface;
}else if(IsEqualGUID(&IID_IConnectionPointContainer, riid)) {
*ppv = &This->cp_container.IConnectionPointContainer_iface;
}else {
@ -4313,6 +4392,7 @@ void HTMLElement_Init(HTMLElement *This, HTMLDocumentNode *doc, nsIDOMHTMLElemen
This->IHTMLElement3_iface.lpVtbl = &HTMLElement3Vtbl;
This->IHTMLElement4_iface.lpVtbl = &HTMLElement4Vtbl;
This->IHTMLUniqueName_iface.lpVtbl = &HTMLUniqueNameVtbl;
This->IElementSelector_iface.lpVtbl = &ElementSelectorVtbl;
if(dispex_data && !dispex_data->vtbl)
dispex_data->vtbl = &HTMLElement_dispex_vtbl;

View File

@ -125,6 +125,7 @@ typedef struct event_target_t event_target_t;
XDIID(HTMLDocumentEvents) \
XDIID(HTMLElementEvents2) \
XIID(IDocumentSelector) \
XIID(IElementSelector) \
XIID(IHTMLAnchorElement) \
XIID(IHTMLAreaElement) \
XIID(IHTMLAttributeCollection) \
@ -717,6 +718,7 @@ typedef struct {
IHTMLElement3 IHTMLElement3_iface;
IHTMLElement4 IHTMLElement4_iface;
IHTMLUniqueName IHTMLUniqueName_iface;
IElementSelector IElementSelector_iface;
nsIDOMHTMLElement *nselem;
HTMLStyle *style;
@ -733,7 +735,8 @@ typedef struct {
IHTMLElement2_tid, \
IHTMLElement3_tid, \
IHTMLElement4_tid, \
IHTMLUniqueName_tid
IHTMLUniqueName_tid, \
IElementSelector_tid
extern cp_static_data_t HTMLElementEvents2_data DECLSPEC_HIDDEN;
#define HTMLELEMENT_CPC {&DIID_HTMLElementEvents2, &HTMLElementEvents2_data}