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},