diff --git a/dlls/mshtml/htmlanchor.c b/dlls/mshtml/htmlanchor.c
index 03d26e291e7..5c799ac8325 100644
--- a/dlls/mshtml/htmlanchor.c
+++ b/dlls/mshtml/htmlanchor.c
@@ -794,7 +794,6 @@ static const NodeImplVtbl HTMLAnchorElementImplVtbl = {
NULL,
NULL,
NULL,
- NULL,
HTMLAnchorElement_traverse,
HTMLAnchorElement_unlink
};
diff --git a/dlls/mshtml/htmlbody.c b/dlls/mshtml/htmlbody.c
index c7a96df3220..efb1ea498cd 100644
--- a/dlls/mshtml/htmlbody.c
+++ b/dlls/mshtml/htmlbody.c
@@ -872,7 +872,6 @@ static const NodeImplVtbl HTMLBodyElementImplVtbl = {
NULL,
NULL,
NULL,
- NULL,
HTMLBodyElement_traverse,
HTMLBodyElement_unlink,
HTMLBodyElement_is_text_edit,
diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index 16aedeac679..53a4577ed90 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -4949,7 +4949,6 @@ static const NodeImplVtbl HTMLDocumentNodeImplVtbl = {
NULL,
NULL,
NULL,
- NULL,
HTMLDocumentNode_traverse,
HTMLDocumentNode_unlink
};
diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index ea65042bac9..bbad4453569 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -1785,10 +1785,22 @@ static HRESULT WINAPI HTMLElement_get_isTextEdit(IHTMLElement *iface, VARIANT_BO
static HRESULT WINAPI HTMLElement_click(IHTMLElement *iface)
{
HTMLElement *This = impl_from_IHTMLElement(iface);
+ nsresult nsres;
TRACE("(%p)\n", This);
- return call_fire_event(&This->node, EVENTID_CLICK);
+ if(!This->nselem) {
+ FIXME("not implemented for comments\n");
+ return E_NOTIMPL;
+ }
+
+ nsres = nsIDOMHTMLElement_Click(This->nselem);
+ if(NS_FAILED(nsres)) {
+ ERR("Click failed: %08x\n", nsres);
+ return E_FAIL;
+ }
+
+ return S_OK;
}
static HRESULT WINAPI HTMLElement_get_filters(IHTMLElement *iface,
diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index ebb901c2a3a..dcc12f0c385 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -1264,22 +1264,6 @@ HRESULT dispatch_event(HTMLDOMNode *node, const WCHAR *event_name, VARIANT *even
return S_OK;
}
-HRESULT call_fire_event(HTMLDOMNode *node, eventid_t eid)
-{
- HRESULT hres;
-
- if(node->vtbl->fire_event) {
- BOOL handled = FALSE;
-
- hres = node->vtbl->fire_event(node, eid, &handled);
- if(handled)
- return hres;
- }
-
- fire_event(node->doc, eid, TRUE, node, NULL, NULL);
- return S_OK;
-}
-
HRESULT ensure_doc_nsevent_handler(HTMLDocumentNode *doc, eventid_t eid)
{
nsIDOMNode *nsnode = NULL;
diff --git a/dlls/mshtml/htmlevent.h b/dlls/mshtml/htmlevent.h
index c47f20f4ca6..9b4eb8ea9cf 100644
--- a/dlls/mshtml/htmlevent.h
+++ b/dlls/mshtml/htmlevent.h
@@ -64,7 +64,6 @@ HRESULT get_event_handler(EventTarget*,eventid_t,VARIANT*) DECLSPEC_HIDDEN;
HRESULT attach_event(EventTarget*,BSTR,IDispatch*,VARIANT_BOOL*) DECLSPEC_HIDDEN;
HRESULT detach_event(EventTarget*,BSTR,IDispatch*) DECLSPEC_HIDDEN;
HRESULT dispatch_event(HTMLDOMNode*,const WCHAR*,VARIANT*,VARIANT_BOOL*) DECLSPEC_HIDDEN;
-HRESULT call_fire_event(HTMLDOMNode*,eventid_t) DECLSPEC_HIDDEN;
void update_doc_cp_events(HTMLDocumentNode*,cp_static_data_t*) DECLSPEC_HIDDEN;
HRESULT doc_init_events(HTMLDocumentNode*) DECLSPEC_HIDDEN;
void detach_events(HTMLDocumentNode *doc) DECLSPEC_HIDDEN;
diff --git a/dlls/mshtml/htmlform.c b/dlls/mshtml/htmlform.c
index 10461351e5a..f73970fff37 100644
--- a/dlls/mshtml/htmlform.c
+++ b/dlls/mshtml/htmlform.c
@@ -778,7 +778,6 @@ static const NodeImplVtbl HTMLFormElementImplVtbl = {
NULL,
NULL,
NULL,
- NULL,
HTMLFormElement_get_dispid,
HTMLFormElement_invoke,
NULL,
diff --git a/dlls/mshtml/htmlframe.c b/dlls/mshtml/htmlframe.c
index 472564f7e75..106858b11bf 100644
--- a/dlls/mshtml/htmlframe.c
+++ b/dlls/mshtml/htmlframe.c
@@ -297,7 +297,6 @@ static const NodeImplVtbl HTMLFrameElementImplVtbl = {
NULL,
NULL,
NULL,
- NULL,
HTMLFrameElement_get_document,
HTMLFrameElement_get_readystate,
HTMLFrameElement_get_dispid,
diff --git a/dlls/mshtml/htmlhead.c b/dlls/mshtml/htmlhead.c
index 3168331cc1d..7b77cb032d0 100644
--- a/dlls/mshtml/htmlhead.c
+++ b/dlls/mshtml/htmlhead.c
@@ -343,7 +343,6 @@ static const NodeImplVtbl HTMLHtmlElementImplVtbl = {
NULL,
NULL,
NULL,
- NULL,
HTMLHtmlElement_is_settable
};
diff --git a/dlls/mshtml/htmliframe.c b/dlls/mshtml/htmliframe.c
index 9f3a42f93e0..e43dc7d633d 100644
--- a/dlls/mshtml/htmliframe.c
+++ b/dlls/mshtml/htmliframe.c
@@ -570,7 +570,6 @@ static const NodeImplVtbl HTMLIFrameImplVtbl = {
NULL,
NULL,
NULL,
- NULL,
HTMLIFrame_get_document,
HTMLIFrame_get_readystate,
HTMLIFrame_get_dispid,
diff --git a/dlls/mshtml/htmlimg.c b/dlls/mshtml/htmlimg.c
index 6932394ca79..abf7f5cb678 100644
--- a/dlls/mshtml/htmlimg.c
+++ b/dlls/mshtml/htmlimg.c
@@ -718,7 +718,6 @@ static const NodeImplVtbl HTMLImgElementImplVtbl = {
NULL,
NULL,
NULL,
- NULL,
HTMLImgElement_get_readystate,
NULL,
NULL,
diff --git a/dlls/mshtml/htmlinput.c b/dlls/mshtml/htmlinput.c
index c45fe013243..b0380a2fa03 100644
--- a/dlls/mshtml/htmlinput.c
+++ b/dlls/mshtml/htmlinput.c
@@ -1397,25 +1397,6 @@ static HRESULT HTMLInputElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
return HTMLElement_QI(&This->element.node, riid, ppv);
}
-static HRESULT HTMLInputElementImpl_fire_event(HTMLDOMNode *iface, eventid_t eid, BOOL *handled)
-{
- HTMLInputElement *This = impl_from_HTMLDOMNode(iface);
-
- if(eid == EVENTID_CLICK) {
- nsresult nsres;
-
- *handled = TRUE;
-
- nsres = nsIDOMHTMLElement_Click(This->element.nselem);
- if(NS_FAILED(nsres)) {
- ERR("Click failed: %08x\n", nsres);
- return E_FAIL;
- }
- }
-
- return S_OK;
-}
-
static HRESULT HTMLInputElementImpl_put_disabled(HTMLDOMNode *iface, VARIANT_BOOL v)
{
HTMLInputElement *This = impl_from_HTMLDOMNode(iface);
@@ -1483,7 +1464,6 @@ static const NodeImplVtbl HTMLInputElementImplVtbl = {
HTMLElement_handle_event,
HTMLElement_get_attr_col,
NULL,
- HTMLInputElementImpl_fire_event,
HTMLInputElementImpl_put_disabled,
HTMLInputElementImpl_get_disabled,
NULL,
@@ -2031,7 +2011,6 @@ static const NodeImplVtbl HTMLButtonElementImplVtbl = {
HTMLElement_handle_event,
HTMLElement_get_attr_col,
NULL,
- NULL,
HTMLButtonElementImpl_put_disabled,
HTMLButtonElementImpl_get_disabled,
NULL,
diff --git a/dlls/mshtml/htmllink.c b/dlls/mshtml/htmllink.c
index aab4e8fb27a..d7b774d877d 100644
--- a/dlls/mshtml/htmllink.c
+++ b/dlls/mshtml/htmllink.c
@@ -430,7 +430,6 @@ static const NodeImplVtbl HTMLLinkElementImplVtbl = {
HTMLElement_handle_event,
HTMLElement_get_attr_col,
NULL,
- NULL,
HTMLLinkElementImpl_put_disabled,
HTMLLinkElementImpl_get_disabled,
NULL,
diff --git a/dlls/mshtml/htmlobject.c b/dlls/mshtml/htmlobject.c
index a93aeb2aaae..e72c07fba52 100644
--- a/dlls/mshtml/htmlobject.c
+++ b/dlls/mshtml/htmlobject.c
@@ -756,7 +756,6 @@ static const NodeImplVtbl HTMLObjectElementImplVtbl = {
NULL,
NULL,
NULL,
- NULL,
HTMLObjectElement_get_readystate,
HTMLObjectElement_get_dispid,
HTMLObjectElement_invoke,
diff --git a/dlls/mshtml/htmloption.c b/dlls/mshtml/htmloption.c
index 16de9d37699..a4ea95db8ac 100644
--- a/dlls/mshtml/htmloption.c
+++ b/dlls/mshtml/htmloption.c
@@ -432,7 +432,6 @@ static const NodeImplVtbl HTMLOptionElementImplVtbl = {
NULL,
NULL,
NULL,
- NULL,
HTMLOptionElement_traverse,
HTMLOptionElement_unlink
};
diff --git a/dlls/mshtml/htmlscript.c b/dlls/mshtml/htmlscript.c
index 16b40e7ce31..4c3ea167547 100644
--- a/dlls/mshtml/htmlscript.c
+++ b/dlls/mshtml/htmlscript.c
@@ -441,7 +441,6 @@ static const NodeImplVtbl HTMLScriptElementImplVtbl = {
NULL,
NULL,
NULL,
- NULL,
HTMLScriptElement_get_readystate,
NULL,
NULL,
diff --git a/dlls/mshtml/htmlselect.c b/dlls/mshtml/htmlselect.c
index 7ae1ba3493c..a9f47ccd4d9 100644
--- a/dlls/mshtml/htmlselect.c
+++ b/dlls/mshtml/htmlselect.c
@@ -697,7 +697,6 @@ static const NodeImplVtbl HTMLSelectElementImplVtbl = {
HTMLElement_handle_event,
HTMLElement_get_attr_col,
NULL,
- NULL,
HTMLSelectElementImpl_put_disabled,
HTMLSelectElementImpl_get_disabled,
NULL,
diff --git a/dlls/mshtml/htmlstyleelem.c b/dlls/mshtml/htmlstyleelem.c
index 2167ed768a4..d8196d9de10 100644
--- a/dlls/mshtml/htmlstyleelem.c
+++ b/dlls/mshtml/htmlstyleelem.c
@@ -355,7 +355,6 @@ static const NodeImplVtbl HTMLStyleElementImplVtbl = {
NULL,
NULL,
NULL,
- NULL,
HTMLStyleElement_traverse,
HTMLStyleElement_unlink
};
diff --git a/dlls/mshtml/htmltable.c b/dlls/mshtml/htmltable.c
index cd9793330ea..4d4dffde8f9 100644
--- a/dlls/mshtml/htmltable.c
+++ b/dlls/mshtml/htmltable.c
@@ -1057,7 +1057,6 @@ static const NodeImplVtbl HTMLTableImplVtbl = {
NULL,
NULL,
NULL,
- NULL,
HTMLTable_traverse,
HTMLTable_unlink
};
diff --git a/dlls/mshtml/htmltablecell.c b/dlls/mshtml/htmltablecell.c
index 3cead85ec36..d7fc73b8431 100644
--- a/dlls/mshtml/htmltablecell.c
+++ b/dlls/mshtml/htmltablecell.c
@@ -476,7 +476,6 @@ static const NodeImplVtbl HTMLTableCellImplVtbl = {
NULL,
NULL,
NULL,
- NULL,
HTMLTableCell_traverse,
HTMLTableCell_unlink
};
diff --git a/dlls/mshtml/htmltablerow.c b/dlls/mshtml/htmltablerow.c
index 5c03def7c6e..09e492466c9 100644
--- a/dlls/mshtml/htmltablerow.c
+++ b/dlls/mshtml/htmltablerow.c
@@ -438,7 +438,6 @@ static const NodeImplVtbl HTMLTableRowImplVtbl = {
NULL,
NULL,
NULL,
- NULL,
HTMLTableRow_traverse,
HTMLTableRow_unlink
};
diff --git a/dlls/mshtml/htmltextarea.c b/dlls/mshtml/htmltextarea.c
index 27608fb403a..457df12357c 100644
--- a/dlls/mshtml/htmltextarea.c
+++ b/dlls/mshtml/htmltextarea.c
@@ -484,7 +484,6 @@ static const NodeImplVtbl HTMLTextAreaElementImplVtbl = {
HTMLElement_handle_event,
HTMLElement_get_attr_col,
NULL,
- NULL,
HTMLTextAreaElementImpl_put_disabled,
HTMLTextAreaElementImpl_get_disabled,
NULL,
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index c4638496769..22b4e69248a 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -715,7 +715,6 @@ typedef struct {
HRESULT (*handle_event)(HTMLDOMNode*,DWORD,nsIDOMEvent*,BOOL*);
HRESULT (*get_attr_col)(HTMLDOMNode*,HTMLAttributeCollection**);
EventTarget *(*get_event_target)(HTMLDOMNode*);
- HRESULT (*fire_event)(HTMLDOMNode*,DWORD,BOOL*);
HRESULT (*put_disabled)(HTMLDOMNode*,VARIANT_BOOL);
HRESULT (*get_disabled)(HTMLDOMNode*,VARIANT_BOOL*);
HRESULT (*get_document)(HTMLDOMNode*,IDispatch**);