Gabriel Ivăncescu : mshtml: Implement onprogress for XMLHttpRequest.

Alexandre Julliard julliard at winehq.org
Mon Jun 6 16:10:31 CDT 2022


Module: wine
Branch: master
Commit: 7c45b742b149444d1eff5fcb01a877bf04085436
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=7c45b742b149444d1eff5fcb01a877bf04085436

Author: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Date:   Mon Jun  6 15:24:11 2022 +0300

mshtml: Implement onprogress for XMLHttpRequest.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mshtml/htmlevent.c      | 2 ++
 dlls/mshtml/htmlevent.h      | 1 +
 dlls/mshtml/xmlhttprequest.c | 9 +++++----
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index 49392bfddd4..cf0de222f80 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -175,6 +175,8 @@ static const event_info_t event_info[] = {
         EVENT_FIXME},
     {L"paste",             EVENT_TYPE_CLIPBOARD, DISPID_EVMETH_ONPASTE,
         EVENT_FIXME | EVENT_BUBBLES | EVENT_CANCELABLE},
+    {L"progress",          EVENT_TYPE_PROGRESS,  DISPID_EVPROP_PROGRESS,
+        EVENT_BIND_TO_TARGET},
     {L"readystatechange",  EVENT_TYPE_EVENT,     DISPID_EVMETH_ONREADYSTATECHANGE,
         0},
     {L"resize",            EVENT_TYPE_UIEVENT,   DISPID_EVMETH_ONRESIZE,
diff --git a/dlls/mshtml/htmlevent.h b/dlls/mshtml/htmlevent.h
index 58dbc43a462..3f399da6bca 100644
--- a/dlls/mshtml/htmlevent.h
+++ b/dlls/mshtml/htmlevent.h
@@ -50,6 +50,7 @@ typedef enum {
     EVENTID_MOUSEWHEEL,
     EVENTID_MSTHUMBNAILCLICK,
     EVENTID_PASTE,
+    EVENTID_PROGRESS,
     EVENTID_READYSTATECHANGE,
     EVENTID_RESIZE,
     EVENTID_SCROLL,
diff --git a/dlls/mshtml/xmlhttprequest.c b/dlls/mshtml/xmlhttprequest.c
index 54e84cf6121..b5973c3d1e2 100644
--- a/dlls/mshtml/xmlhttprequest.c
+++ b/dlls/mshtml/xmlhttprequest.c
@@ -97,6 +97,7 @@ static HRESULT return_nscstr(nsresult nsres, nsACString *nscstr, BSTR *p)
 static const eventid_t events[] = {
     EVENTID_READYSTATECHANGE,
     EVENTID_LOAD,
+    EVENTID_PROGRESS,
     EVENTID_ABORT,
     EVENTID_ERROR,
     EVENTID_TIMEOUT,
@@ -1001,18 +1002,18 @@ static HRESULT WINAPI HTMLXMLHttpRequest_private_put_onprogress(IWineXMLHttpRequ
 {
     HTMLXMLHttpRequest *This = impl_from_IWineXMLHttpRequestPrivate(iface);
 
-    FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
+    TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
 
-    return E_NOTIMPL;
+    return set_event_handler(&This->event_target, EVENTID_PROGRESS, &v);
 }
 
 static HRESULT WINAPI HTMLXMLHttpRequest_private_get_onprogress(IWineXMLHttpRequestPrivate *iface, VARIANT *p)
 {
     HTMLXMLHttpRequest *This = impl_from_IWineXMLHttpRequestPrivate(iface);
 
-    FIXME("(%p)->(%p)\n", This, p);
+    TRACE("(%p)->(%p)\n", This, p);
 
-    return E_NOTIMPL;
+    return get_event_handler(&This->event_target, EVENTID_PROGRESS, p);
 }
 
 static HRESULT WINAPI HTMLXMLHttpRequest_private_put_onloadstart(IWineXMLHttpRequestPrivate *iface, VARIANT v)




More information about the wine-cvs mailing list