diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index 94a9e7e72a4..b2dfa61ea7f 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -45,6 +45,9 @@ struct event_target_t { handler_vector_t *event_table[EVENTID_LAST]; }; +static const WCHAR abortW[] = {'a','b','o','r','t',0}; +static const WCHAR onabortW[] = {'o','n','a','b','o','r','t',0}; + static const WCHAR beforeunloadW[] = {'b','e','f','o','r','e','u','n','l','o','a','d',0}; static const WCHAR onbeforeunloadW[] = {'o','n','b','e','f','o','r','e','u','n','l','o','a','d',0}; @@ -160,6 +163,8 @@ typedef struct { #define EVENT_HASDEFAULTHANDLERS 0x0020 static const event_info_t event_info[] = { + {abortW, onabortW, EVENTT_NONE, DISPID_EVMETH_ONABORT, + EVENT_NODEHANDLER}, {beforeunloadW, onbeforeunloadW, EVENTT_NONE, DISPID_EVMETH_ONBEFOREUNLOAD, EVENT_DEFAULTLISTENER|EVENT_FORWARDBODY}, {blurW, onblurW, EVENTT_HTML, DISPID_EVMETH_ONBLUR, @@ -216,7 +221,7 @@ static const event_info_t event_info[] = { EVENT_DEFAULTLISTENER|EVENT_BUBBLE|EVENT_CANCELABLE} }; -static const eventid_t node_handled_list[] = { EVENTID_ERROR, EVENTID_LOAD }; +static const eventid_t node_handled_list[] = { EVENTID_ABORT, EVENTID_ERROR, EVENTID_LOAD }; eventid_t str_to_eid(LPCWSTR str) { diff --git a/dlls/mshtml/htmlevent.h b/dlls/mshtml/htmlevent.h index 174d2f79ada..8aa8ed1c735 100644 --- a/dlls/mshtml/htmlevent.h +++ b/dlls/mshtml/htmlevent.h @@ -17,6 +17,7 @@ */ typedef enum { + EVENTID_ABORT, EVENTID_BEFOREUNLOAD, EVENTID_BLUR, EVENTID_CHANGE, diff --git a/dlls/mshtml/htmlimg.c b/dlls/mshtml/htmlimg.c index bc6ec801abf..4ca02fc9ce5 100644 --- a/dlls/mshtml/htmlimg.c +++ b/dlls/mshtml/htmlimg.c @@ -429,15 +429,19 @@ static HRESULT WINAPI HTMLImgElement_get_onerror(IHTMLImgElement *iface, VARIANT static HRESULT WINAPI HTMLImgElement_put_onabort(IHTMLImgElement *iface, VARIANT v) { HTMLImgElement *This = impl_from_IHTMLImgElement(iface); - FIXME("(%p)->()\n", This); - return E_NOTIMPL; + + TRACE("(%p)->()\n", This); + + return set_node_event(&This->element.node, EVENTID_ABORT, &v); } static HRESULT WINAPI HTMLImgElement_get_onabort(IHTMLImgElement *iface, VARIANT *p) { HTMLImgElement *This = impl_from_IHTMLImgElement(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + return get_node_event(&This->element.node, EVENTID_ABORT, p); } static HRESULT WINAPI HTMLImgElement_put_name(IHTMLImgElement *iface, BSTR v)