Module: wine Branch: master Commit: af271b3b45b195243a1798b4c111a94e41838877 URL: http://source.winehq.org/git/wine.git/?a=commit;h=af271b3b45b195243a1798b4c1...
Author: Jacek Caban jacek@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");