Module: wine Branch: master Commit: 821c47688748b6e7a9e6ec7925c45ebf4fde0af4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=821c47688748b6e7a9e6ec7925...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Jul 19 20:32:40 2017 +0200
mshtml: Added IHTMLDOMNode3 stub implementation.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/mshtml/htmlnode.c | 205 +++++++++++++++++++++++++++++++++++++++++++ dlls/mshtml/mshtml_private.h | 1 + 2 files changed, 206 insertions(+)
diff --git a/dlls/mshtml/htmlnode.c b/dlls/mshtml/htmlnode.c index f49889d..ae63e03 100644 --- a/dlls/mshtml/htmlnode.c +++ b/dlls/mshtml/htmlnode.c @@ -1153,6 +1153,208 @@ static const IHTMLDOMNode2Vtbl HTMLDOMNode2Vtbl = { HTMLDOMNode2_get_ownerDocument };
+static inline HTMLDOMNode *impl_from_IHTMLDOMNode3(IHTMLDOMNode3 *iface) +{ + return CONTAINING_RECORD(iface, HTMLDOMNode, IHTMLDOMNode3_iface); +} + +static HRESULT WINAPI HTMLDOMNode3_QueryInterface(IHTMLDOMNode3 *iface, REFIID riid, void **ppv) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + return IHTMLDOMNode_QueryInterface(&This->IHTMLDOMNode_iface, riid, ppv); +} + +static ULONG WINAPI HTMLDOMNode3_AddRef(IHTMLDOMNode3 *iface) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + + return IHTMLDOMNode_AddRef(&This->IHTMLDOMNode_iface); +} + +static ULONG WINAPI HTMLDOMNode3_Release(IHTMLDOMNode3 *iface) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + + return IHTMLDOMNode_Release(&This->IHTMLDOMNode_iface); +} + +static HRESULT WINAPI HTMLDOMNode3_GetTypeInfoCount(IHTMLDOMNode3 *iface, UINT *pctinfo) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + return IDispatchEx_GetTypeInfoCount(&This->event_target.dispex.IDispatchEx_iface, pctinfo); +} + +static HRESULT WINAPI HTMLDOMNode3_GetTypeInfo(IHTMLDOMNode3 *iface, UINT iTInfo, + LCID lcid, ITypeInfo **ppTInfo) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + return IDispatchEx_GetTypeInfo(&This->event_target.dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo); +} + +static HRESULT WINAPI HTMLDOMNode3_GetIDsOfNames(IHTMLDOMNode3 *iface, REFIID riid, + LPOLESTR *rgszNames, UINT cNames, + LCID lcid, DISPID *rgDispId) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + return IDispatchEx_GetIDsOfNames(&This->event_target.dispex.IDispatchEx_iface, riid, rgszNames, cNames, + lcid, rgDispId); +} + +static HRESULT WINAPI HTMLDOMNode3_Invoke(IHTMLDOMNode3 *iface, DISPID dispIdMember, + REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, + VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + return IDispatchEx_Invoke(&This->event_target.dispex.IDispatchEx_iface, dispIdMember, riid, lcid, + wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); +} + +static HRESULT WINAPI HTMLDOMNode3_put_prefix(IHTMLDOMNode3 *iface, VARIANT v) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_get_prefix(IHTMLDOMNode3 *iface, VARIANT *p) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_get_localName(IHTMLDOMNode3 *iface, VARIANT *p) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_get_namespaceURI(IHTMLDOMNode3 *iface, VARIANT *p) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_put_textContent(IHTMLDOMNode3 *iface, VARIANT v) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_get_textContent(IHTMLDOMNode3 *iface, VARIANT *p) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_isEqualNode(IHTMLDOMNode3 *iface, IHTMLDOMNode3 *otherNode, VARIANT_BOOL *isEqual) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->()\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_lookupNamespaceURI(IHTMLDOMNode3 *iface, VARIANT *prefix, VARIANT *namespaceURI) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(prefix), namespaceURI); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_lookupPrefix(IHTMLDOMNode3 *iface, VARIANT *namespaceURI, VARIANT *prefix) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->(%s %p)\n", This, debugstr_variant(namespaceURI), prefix); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_isDefaultNamespace(IHTMLDOMNode3 *iface, VARIANT *namespace, VARIANT_BOOL *pfDefaultNamespace) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->()\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_appendChild(IHTMLDOMNode3 *iface, IHTMLDOMNode *newChild, IHTMLDOMNode **node) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->()\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_insertBefore(IHTMLDOMNode3 *iface, IHTMLDOMNode *newChild, VARIANT refChild, IHTMLDOMNode **node) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->(%p %s %p)\n", This, newChild, debugstr_variant(&refChild), node); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_removeChild(IHTMLDOMNode3 *iface, IHTMLDOMNode *oldChild, IHTMLDOMNode **node) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->(%p %p)\n", This, oldChild, node); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_replaceChild(IHTMLDOMNode3 *iface, IHTMLDOMNode *newChild, IHTMLDOMNode *oldChild, IHTMLDOMNode **node) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->(%p %p %p)\n", This, newChild, oldChild, node); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_isSameNode(IHTMLDOMNode3 *iface, IHTMLDOMNode3 *otherNode, VARIANT_BOOL *isSame) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->()\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_compareDocumentPosition(IHTMLDOMNode3 *iface, IHTMLDOMNode *otherNode, USHORT *flags) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->()\n", This); + return E_NOTIMPL; +} + +static HRESULT WINAPI HTMLDOMNode3_isSupported(IHTMLDOMNode3 *iface, BSTR feature, VARIANT version, VARIANT_BOOL *pfisSupported) +{ + HTMLDOMNode *This = impl_from_IHTMLDOMNode3(iface); + FIXME("(%p)->(%s %s %p)\n", This, debugstr_w(feature), debugstr_variant(&version), pfisSupported); + return E_NOTIMPL; +} + +static const IHTMLDOMNode3Vtbl HTMLDOMNode3Vtbl = { + HTMLDOMNode3_QueryInterface, + HTMLDOMNode3_AddRef, + HTMLDOMNode3_Release, + HTMLDOMNode3_GetTypeInfoCount, + HTMLDOMNode3_GetTypeInfo, + HTMLDOMNode3_GetIDsOfNames, + HTMLDOMNode3_Invoke, + HTMLDOMNode3_put_prefix, + HTMLDOMNode3_get_prefix, + HTMLDOMNode3_get_localName, + HTMLDOMNode3_get_namespaceURI, + HTMLDOMNode3_put_textContent, + HTMLDOMNode3_get_textContent, + HTMLDOMNode3_isEqualNode, + HTMLDOMNode3_lookupNamespaceURI, + HTMLDOMNode3_lookupPrefix, + HTMLDOMNode3_isDefaultNamespace, + HTMLDOMNode3_appendChild, + HTMLDOMNode3_insertBefore, + HTMLDOMNode3_removeChild, + HTMLDOMNode3_replaceChild, + HTMLDOMNode3_isSameNode, + HTMLDOMNode3_compareDocumentPosition, + HTMLDOMNode3_isSupported +}; + HRESULT HTMLDOMNode_QI(HTMLDOMNode *This, REFIID riid, void **ppv) { TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv); @@ -1165,6 +1367,8 @@ HRESULT HTMLDOMNode_QI(HTMLDOMNode *This, REFIID riid, void **ppv) *ppv = &This->IHTMLDOMNode_iface; }else if(IsEqualGUID(&IID_IHTMLDOMNode2, riid)) { *ppv = &This->IHTMLDOMNode2_iface; + }else if(IsEqualGUID(&IID_IHTMLDOMNode3, riid)) { + *ppv = &This->IHTMLDOMNode3_iface; }else if(IsEqualGUID(&IID_nsXPCOMCycleCollectionParticipant, riid)) { *ppv = &node_ccp; return S_OK; @@ -1213,6 +1417,7 @@ void HTMLDOMNode_Init(HTMLDocumentNode *doc, HTMLDOMNode *node, nsIDOMNode *nsno
node->IHTMLDOMNode_iface.lpVtbl = &HTMLDOMNodeVtbl; node->IHTMLDOMNode2_iface.lpVtbl = &HTMLDOMNode2Vtbl; + node->IHTMLDOMNode3_iface.lpVtbl = &HTMLDOMNode3Vtbl;
ccref_init(&node->ccref, 1); init_event_target(&node->event_target); diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index a51631c..3c32ffe 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -725,6 +725,7 @@ struct HTMLDOMNode { EventTarget event_target; IHTMLDOMNode IHTMLDOMNode_iface; IHTMLDOMNode2 IHTMLDOMNode2_iface; + IHTMLDOMNode3 IHTMLDOMNode3_iface; const NodeImplVtbl *vtbl;
nsCycleCollectingAutoRefCnt ccref;