Jacek Caban : mshtml: Added IDispatchEx support to IHTMLTable.

Alexandre Julliard julliard at winehq.org
Wed Oct 1 14:09:24 CDT 2008


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Sep 30 17:40:58 2008 +0200

mshtml: Added IDispatchEx support to IHTMLTable.

---

 dlls/mshtml/dispex.c         |    2 ++
 dlls/mshtml/htmltable.c      |   21 +++++++++++++++++++--
 dlls/mshtml/mshtml_private.h |    2 ++
 dlls/mshtml/tests/dom.c      |    2 +-
 4 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/dlls/mshtml/dispex.c b/dlls/mshtml/dispex.c
index c329d30..0301a41 100644
--- a/dlls/mshtml/dispex.c
+++ b/dlls/mshtml/dispex.c
@@ -77,6 +77,7 @@ static REFIID tid_ids[] = {
     &DIID_DispHTMLOptionElement,
     &DIID_DispHTMLSelectElement,
     &DIID_DispHTMLStyle,
+    &DIID_DispHTMLTable,
     &DIID_DispHTMLTableRow,
     &DIID_DispHTMLUnknownElement,
     &DIID_DispHTMLWindow2,
@@ -103,6 +104,7 @@ static REFIID tid_ids[] = {
     &IID_IHTMLOptionElement,
     &IID_IHTMLSelectElement,
     &IID_IHTMLStyle,
+    &IID_IHTMLTable,
     &IID_IHTMLTableRow,
     &IID_IHTMLTextContainer,
     &IID_IHTMLUniqueName,
diff --git a/dlls/mshtml/htmltable.c b/dlls/mshtml/htmltable.c
index 3d13205..247c0ae 100644
--- a/dlls/mshtml/htmltable.c
+++ b/dlls/mshtml/htmltable.c
@@ -539,15 +539,32 @@ static const NodeImplVtbl HTMLTableImplVtbl = {
     HTMLTable_destructor
 };
 
+static const tid_t HTMLTable_iface_tids[] = {
+    IHTMLDOMNode_tid,
+    IHTMLDOMNode2_tid,
+    IHTMLElement_tid,
+    IHTMLElement2_tid,
+    IHTMLTable_tid,
+    0
+};
+
+static dispex_static_data_t HTMLTable_dispex = {
+    NULL,
+    DispHTMLTable_tid,
+    NULL,
+    HTMLTable_iface_tids
+};
+
 HTMLElement *HTMLTable_Create(nsIDOMHTMLElement *nselem)
 {
     HTMLTable *ret = heap_alloc_zero(sizeof(HTMLTable));
 
-    HTMLElement_Init(&ret->element);
-
     ret->element.node.vtbl = &HTMLTableImplVtbl;
     ret->lpHTMLTableVtbl = &HTMLTableVtbl;
 
+    init_dispex(&ret->element.node.dispex, (IUnknown*)HTMLTABLE(ret), &HTMLTable_dispex);
+    HTMLElement_Init(&ret->element);
+
     ConnectionPoint_Init(&ret->cp, &ret->element.cp_container, &DIID_HTMLTableEvents);
 
     return &ret->element;
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 3332590..afbde54 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -73,6 +73,7 @@ typedef enum {
     DispHTMLOptionElement_tid,
     DispHTMLSelectElement_tid,
     DispHTMLStyle_tid,
+    DispHTMLTable_tid,
     DispHTMLTableRow_tid,
     DispHTMLUnknownElement_tid,
     DispHTMLWindow2_tid,
@@ -99,6 +100,7 @@ typedef enum {
     IHTMLOptionElement_tid,
     IHTMLSelectElement_tid,
     IHTMLStyle_tid,
+    IHTMLTable_tid,
     IHTMLTableRow_tid,
     IHTMLTextContainer_tid,
     IHTMLUniqueName_tid,
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index ebb4f17..b8e57da 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -279,7 +279,7 @@ static const elem_type_info_t elem_type_infos[] = {
     {"BLOCKQUOTE",elem_iids,        NULL},
     {"P",         elem_iids,        NULL},
     {"BR",        elem_iids,        NULL},
-    {"TABLE",     table_iids,       NULL},
+    {"TABLE",     table_iids,       &DIID_DispHTMLTable},
     {"TBODY",     elem_iids,        NULL},
     {"SCRIPT",    script_iids,      NULL},
     {"TEST",      elem_iids,        &DIID_DispHTMLUnknownElement},




More information about the wine-cvs mailing list