Jacek Caban : mshtml: Added IDispatchEx support to text node.

Alexandre Julliard julliard at winehq.org
Thu Apr 24 15:56:45 CDT 2008


Module: wine
Branch: master
Commit: af271b3b45b195243a1798b4c111a94e41838877
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=af271b3b45b195243a1798b4c111a94e41838877

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Apr 24 18:25:51 2008 +0200

mshtml: Added IDispatchEx support to text node.

---

 dlls/mshtml/dispex.c         |    2 ++
 dlls/mshtml/htmltextnode.c   |   13 +++++++++++++
 dlls/mshtml/mshtml_private.h |    2 ++
 dlls/mshtml/tests/dom.c      |    1 +
 4 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/dlls/mshtml/dispex.c b/dlls/mshtml/dispex.c
index 949d7b8..eb973b8 100644
--- a/dlls/mshtml/dispex.c
+++ b/dlls/mshtml/dispex.c
@@ -52,6 +52,7 @@ static struct list dispex_data_list = LIST_INIT(dispex_data_list);
 static REFIID tid_ids[] = {
     &IID_NULL,
     &DIID_DispHTMLDocument,
+    &DIID_DispHTMLDOMTextNode,
     &DIID_DispHTMLUnknownElement,
     &DIID_DispHTMLWindow2,
     &IID_IHTMLDocument2,
@@ -60,6 +61,7 @@ static REFIID tid_ids[] = {
     &IID_IHTMLDocument5,
     &IID_IHTMLDOMNode,
     &IID_IHTMLDOMNode2,
+    &IID_IHTMLDOMTextNode,
     &IID_IHTMLElement,
     &IID_IHTMLElement2,
     &IID_IHTMLWindow2,
diff --git a/dlls/mshtml/htmltextnode.c b/dlls/mshtml/htmltextnode.c
index 585d84f..fa6308e 100644
--- a/dlls/mshtml/htmltextnode.c
+++ b/dlls/mshtml/htmltextnode.c
@@ -185,6 +185,17 @@ static const NodeImplVtbl HTMLDOMTextNodeImplVtbl = {
     HTMLDOMTextNode_destructor
 };
 
+static dispex_static_data_t HTMLDOMTextNode_dispex = {
+    DispHTMLDOMTextNode_tid,
+    0,
+    {
+        IHTMLDOMNode_tid,
+        IHTMLDOMNode2_tid,
+        IHTMLDOMTextNode_tid,
+        0
+    }
+};
+
 HTMLDOMNode *HTMLDOMTextNode_Create(nsIDOMNode *nsnode)
 {
     HTMLDOMTextNode *ret ;
@@ -193,5 +204,7 @@ HTMLDOMNode *HTMLDOMTextNode_Create(nsIDOMNode *nsnode)
     ret->node.vtbl = &HTMLDOMTextNodeImplVtbl;
     ret->lpIHTMLDOMTextNodeVtbl = &HTMLDOMTextNodeVtbl;
 
+    init_dispex(&ret->node.dispex, (IUnknown*)HTMLTEXT(ret), &HTMLDOMTextNode_dispex);
+
     return &ret->node;
 }
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index cf3cfba..e6041a0 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -62,6 +62,7 @@ typedef struct event_target_t event_target_t;
 typedef enum {
     NULL_tid,
     DispHTMLDocument_tid,
+    DispHTMLDOMTextNode_tid,
     DispHTMLUnknownElement_tid,
     DispHTMLWindow2_tid,
     IHTMLDocument2_tid,
@@ -70,6 +71,7 @@ typedef enum {
     IHTMLDocument5_tid,
     IHTMLDOMNode_tid,
     IHTMLDOMNode2_tid,
+    IHTMLDOMTextNode_tid,
     IHTMLElement_tid,
     IHTMLElement2_tid,
     IHTMLWindow2_tid,
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 346ee5d..f91da86 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -1511,6 +1511,7 @@ static void test_elems(IHTMLDocument2 *doc)
     ok(node != NULL, "node == NULL\n");
     if(node) {
         test_ifaces((IUnknown*)node, text_iids);
+        test_disp((IUnknown*)node, &DIID_DispHTMLDOMTextNode);
         node2 = get_first_child((IUnknown*)node);
         ok(!node2, "node2 != NULL\n");
 




More information about the wine-cvs mailing list