Jacek Caban : mshtml: Added semi-stub IHTMLElement2:: onreadystatechange implmementation.

Alexandre Julliard julliard at winehq.org
Tue Sep 15 17:47:18 CDT 2009


Module: wine
Branch: master
Commit: ee5d678450d59fd77dc75bcbebea410503c3832c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ee5d678450d59fd77dc75bcbebea410503c3832c

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Sep 14 00:35:40 2009 +0200

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 1120c79..d403368 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 59fa6ff..db9691c 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 c2f541d..03785c1 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;




More information about the wine-cvs mailing list