diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index 60fd574b454..1052e6c637b 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -501,8 +501,10 @@ static HRESULT WINAPI HTMLElement_get_onmouseout(IHTMLElement *iface, VARIANT *p
static HRESULT WINAPI HTMLElement_put_onmouseover(IHTMLElement *iface, VARIANT v)
{
HTMLElement *This = HTMLELEM_THIS(iface);
- FIXME("(%p)->()\n", This);
- return E_NOTIMPL;
+
+ TRACE("(%p)->()\n", This);
+
+ return set_node_event(&This->node, EVENTID_MOUSEOVER, &v);
}
static HRESULT WINAPI HTMLElement_get_onmouseover(IHTMLElement *iface, VARIANT *p)
diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index d72b936102b..2b05eb7838b 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -48,6 +48,9 @@ static const WCHAR onkeyupW[] = {'o','n','k','e','y','u','p',0};
static const WCHAR loadW[] = {'l','o','a','d',0};
static const WCHAR onloadW[] = {'o','n','l','o','a','d',0};
+static const WCHAR mouseoverW[] = {'m','o','u','s','e','o','v','e','r',0};
+static const WCHAR onmouseoverW[] = {'o','n','m','o','u','s','e','o','v','e','r',0};
+
typedef struct {
LPCWSTR name;
LPCWSTR attr_name;
@@ -57,10 +60,11 @@ typedef struct {
#define EVENT_DEFAULTLISTENER 0x0001
static const event_info_t event_info[] = {
- {changeW, onchangeW, EVENT_DEFAULTLISTENER},
- {clickW, onclickW, EVENT_DEFAULTLISTENER},
- {keyupW, onkeyupW, EVENT_DEFAULTLISTENER},
- {loadW, onloadW, 0}
+ {changeW, onchangeW, EVENT_DEFAULTLISTENER},
+ {clickW, onclickW, EVENT_DEFAULTLISTENER},
+ {keyupW, onkeyupW, EVENT_DEFAULTLISTENER},
+ {loadW, onloadW, 0},
+ {mouseoverW, onmouseoverW, EVENT_DEFAULTLISTENER}
};
eventid_t str_to_eid(LPCWSTR str)
diff --git a/dlls/mshtml/htmlevent.h b/dlls/mshtml/htmlevent.h
index adc769265cd..7b01dd7b69b 100644
--- a/dlls/mshtml/htmlevent.h
+++ b/dlls/mshtml/htmlevent.h
@@ -21,6 +21,7 @@ typedef enum {
EVENTID_CLICK,
EVENTID_KEYUP,
EVENTID_LOAD,
+ EVENTID_MOUSEOVER,
EVENTID_LAST
} eventid_t;