From ee5d678450d59fd77dc75bcbebea410503c3832c Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Mon, 14 Sep 2009 00:35:40 +0200 Subject: [PATCH] mshtml: Added semi-stub IHTMLElement2::onreadystatechange implmementation. --- dlls/mshtml/htmlelem2.c | 12 ++++++++---- dlls/mshtml/htmlevent.c | 38 +++++++++++++++++++++----------------- dlls/mshtml/htmlevent.h | 1 + 3 files changed, 30 insertions(+), 21 deletions(-) diff --git a/dlls/mshtml/htmlelem2.c b/dlls/mshtml/htmlelem2.c index 1120c792d09..d4033685f1c 100644 --- a/dlls/mshtml/htmlelem2.c +++ b/dlls/mshtml/htmlelem2.c @@ -628,15 +628,19 @@ static HRESULT WINAPI HTMLElement2_get_readyState(IHTMLElement2 *iface, VARIANT static HRESULT WINAPI HTMLElement2_put_onreadystatechange(IHTMLElement2 *iface, VARIANT v) { HTMLElement *This = HTMLELEM2_THIS(iface); - FIXME("(%p)->()\n", This); - return E_NOTIMPL; + + FIXME("(%p)->(%s): semi-stub\n", This, debugstr_variant(&v)); + + return set_node_event(&This->node, EVENTID_READYSTATECHANGE, &v); } static HRESULT WINAPI HTMLElement2_get_onreadystatechange(IHTMLElement2 *iface, VARIANT *p) { HTMLElement *This = HTMLELEM2_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + return get_node_event(&This->node, EVENTID_READYSTATECHANGE, p); } static HRESULT WINAPI HTMLElement2_put_onrowsdelete(IHTMLElement2 *iface, VARIANT v) diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index 59fa6fffa6d..db9691c5d93 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -90,6 +90,9 @@ static const WCHAR onmouseupW[] = {'o','n','m','o','u','s','e','u','p',0}; static const WCHAR pasteW[] = {'p','a','s','t','e',0}; static const WCHAR onpasteW[] = {'o','n','p','a','s','t','e',0}; +static const WCHAR readystatechangeW[] = {'r','e','a','d','y','s','t','a','t','e','c','h','a','n','g','e',0}; +static const WCHAR onreadystatechangeW[] = {'o','n','r','e','a','d','y','s','t','a','t','e','c','h','a','n','g','e',0}; + static const WCHAR selectstartW[] = {'s','e','l','e','c','t','s','t','a','r','t',0}; static const WCHAR onselectstartW[] = {'o','n','s','e','l','e','c','t','s','t','a','r','t',0}; @@ -104,23 +107,24 @@ typedef struct { #define EVENT_FORWARDBODY 0x0004 static const event_info_t event_info[] = { - {beforeunloadW, onbeforeunloadW, EVENT_DEFAULTLISTENER|EVENT_FORWARDBODY}, - {blurW, onblurW, EVENT_DEFAULTLISTENER}, - {changeW, onchangeW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, - {clickW, onclickW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, - {dblclickW, ondblclickW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, - {dragW, ondragW, 0}, - {dragstartW, ondragstartW, 0}, - {focusW, onfocusW, EVENT_DEFAULTLISTENER}, - {keydownW, onkeydownW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, - {keyupW, onkeyupW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, - {loadW, onloadW, 0}, - {mousedownW, onmousedownW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, - {mouseoutW, onmouseoutW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, - {mouseoverW, onmouseoverW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, - {mouseupW, onmouseupW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, - {pasteW, onpasteW, 0}, - {selectstartW, onselectstartW, 0} + {beforeunloadW, onbeforeunloadW, EVENT_DEFAULTLISTENER|EVENT_FORWARDBODY}, + {blurW, onblurW, EVENT_DEFAULTLISTENER}, + {changeW, onchangeW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, + {clickW, onclickW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, + {dblclickW, ondblclickW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, + {dragW, ondragW, 0}, + {dragstartW, ondragstartW, 0}, + {focusW, onfocusW, EVENT_DEFAULTLISTENER}, + {keydownW, onkeydownW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, + {keyupW, onkeyupW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, + {loadW, onloadW, 0}, + {mousedownW, onmousedownW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, + {mouseoutW, onmouseoutW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, + {mouseoverW, onmouseoverW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, + {mouseupW, onmouseupW, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, + {pasteW, onpasteW, 0}, + {readystatechangeW, onreadystatechangeW, 0}, + {selectstartW, onselectstartW, 0} }; eventid_t str_to_eid(LPCWSTR str) diff --git a/dlls/mshtml/htmlevent.h b/dlls/mshtml/htmlevent.h index c2f541df39d..03785c1fa7c 100644 --- a/dlls/mshtml/htmlevent.h +++ b/dlls/mshtml/htmlevent.h @@ -33,6 +33,7 @@ typedef enum { EVENTID_MOUSEOVER, EVENTID_MOUSEUP, EVENTID_PASTE, + EVENTID_READYSTATECHANGE, EVENTID_SELECTSTART, EVENTID_LAST } eventid_t;