Jacek Caban : mshtml: Added IHTMLDOMNode3 stub implementation.
Alexandre Julliard
julliard at winehq.org
Wed Jul 19 16:05:33 CDT 2017
Module: wine
Branch: master
Commit: 821c47688748b6e7a9e6ec7925c45ebf4fde0af4
URL: http://source.winehq.org/git/wine.git/?a=commit;h=821c47688748b6e7a9e6ec7925c45ebf4fde0af4
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Jul 19 20:32:40 2017 +0200
mshtml: Added IHTMLDOMNode3 stub implementation.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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;
More information about the wine-cvs
mailing list