diff --git a/dlls/mshtml/dispex.c b/dlls/mshtml/dispex.c
index c329d30e9f8..0301a413c4f 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 3d13205ec55..247c0ae3028 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 33325908edc..afbde546389 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 ebb4f1787e9..b8e57da3547 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},