Jacek Caban : mshtml: Added IHTMLXMLHttpRequest:: onreadystatechange property implementation.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Jun 22 07:44:58 CDT 2015
Module: wine
Branch: master
Commit: 430df1ca61d09fe1b501841ada4d641e18219222
URL: http://source.winehq.org/git/wine.git/?a=commit;h=430df1ca61d09fe1b501841ada4d641e18219222
Author: Jacek Caban <jacek at codeweavers.com>
Date: Sun Jun 21 13:05:11 2015 +0200
mshtml: Added IHTMLXMLHttpRequest::onreadystatechange property implementation.
---
dlls/mshtml/xmlhttprequest.c | 39 ++++++++++++++++++++++++++++++++++-----
1 file changed, 34 insertions(+), 5 deletions(-)
diff --git a/dlls/mshtml/xmlhttprequest.c b/dlls/mshtml/xmlhttprequest.c
index c3efbbc..4cb3fda 100644
--- a/dlls/mshtml/xmlhttprequest.c
+++ b/dlls/mshtml/xmlhttprequest.c
@@ -17,6 +17,7 @@
*/
#include <stdarg.h>
+#include <assert.h>
#define COBJMACROS
@@ -28,6 +29,7 @@
#include "wine/debug.h"
#include "mshtml_private.h"
+#include "htmlevent.h"
WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
@@ -169,15 +171,19 @@ static HRESULT WINAPI HTMLXMLHttpRequest_get_statusText(IHTMLXMLHttpRequest *ifa
static HRESULT WINAPI HTMLXMLHttpRequest_put_onreadystatechange(IHTMLXMLHttpRequest *iface, VARIANT v)
{
HTMLXMLHttpRequest *This = impl_from_IHTMLXMLHttpRequest(iface);
- FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
+
+ return set_event_handler(&This->event_target, EVENTID_READYSTATECHANGE, &v);
}
static HRESULT WINAPI HTMLXMLHttpRequest_get_onreadystatechange(IHTMLXMLHttpRequest *iface, VARIANT *p)
{
HTMLXMLHttpRequest *This = impl_from_IHTMLXMLHttpRequest(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_event_handler(&This->event_target, EVENTID_READYSTATECHANGE, p);
}
static HRESULT WINAPI HTMLXMLHttpRequest_abort(IHTMLXMLHttpRequest *iface)
@@ -246,12 +252,35 @@ static const IHTMLXMLHttpRequestVtbl HTMLXMLHttpRequestVtbl = {
HTMLXMLHttpRequest_setRequestHeader
};
+static inline HTMLXMLHttpRequest *impl_from_DispatchEx(DispatchEx *iface)
+{
+ return CONTAINING_RECORD(iface, HTMLXMLHttpRequest, event_target.dispex);
+}
+
+static void HTMLXMLHttpRequest_bind_event(DispatchEx *dispex, int eid)
+{
+ HTMLXMLHttpRequest *This = impl_from_DispatchEx(dispex);
+
+ FIXME("(%p)\n", This);
+
+ assert(eid == EVENTID_READYSTATECHANGE);
+}
+
+static dispex_static_data_vtbl_t HTMLXMLHttpRequest_dispex_vtbl = {
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ HTMLXMLHttpRequest_bind_event
+};
+
static const tid_t HTMLXMLHttpRequest_iface_tids[] = {
IHTMLXMLHttpRequest_tid,
0
};
static dispex_static_data_t HTMLXMLHttpRequest_dispex = {
- NULL,
+ &HTMLXMLHttpRequest_dispex_vtbl,
DispHTMLXMLHttpRequest_tid,
NULL,
HTMLXMLHttpRequest_iface_tids
More information about the wine-cvs
mailing list