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