[PATCH 1/2] mshtml: add support for the HTMLWindow.onunload event. [try 2]

Reece Dunn msclrhd at googlemail.com
Sun Oct 3 08:57:20 CDT 2010


try 2 -- made the changes noted by Jacek

- Reece
-------------- next part --------------
From e49c6d9013975b97fe1d1f0cd84e1f45928d40df Mon Sep 17 00:00:00 2001
From: Reece Dunn <msclrhd at gmail.com>
Date: Sun, 3 Oct 2010 13:15:54 +0100
Subject: [PATCH 1/2] mshtml: add support for the HTMLWindow.onunload event.

---
 dlls/mshtml/htmlevent.c  |    5 +++++
 dlls/mshtml/htmlevent.h  |    1 +
 dlls/mshtml/htmlwindow.c |   12 ++++++++----
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index 7cc2f39..1cc8798 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -104,6 +104,9 @@ static const WCHAR onresizeW[] = {'o','n','r','e','s','i','z','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};
 
+static const WCHAR unloadW[] = {'u','n','l','o','a','d',0};
+static const WCHAR onunloadW[] = {'o','n','u','n','l','o','a','d',0};
+
 static const WCHAR HTMLEventsW[] = {'H','T','M','L','E','v','e','n','t','s',0};
 static const WCHAR KeyboardEventW[] = {'K','e','y','b','o','a','r','d','E','v','e','n','t',0};
 static const WCHAR MouseEventW[] = {'M','o','u','s','e','E','v','e','n','t',0};
@@ -175,6 +178,8 @@ static const event_info_t event_info[] = {
     {resizeW,            onresizeW,            EVENTT_NONE,   DISPID_EVMETH_ONRESIZE,
         EVENT_DEFAULTLISTENER|EVENT_BUBBLE},
     {selectstartW,       onselectstartW,       EVENTT_MOUSE,  DISPID_EVMETH_ONSELECTSTART,
+        0},
+    {unloadW,            onunloadW,            EVENTT_NONE,   DISPID_EVMETH_ONUNLOAD,
         0}
 };
 
diff --git a/dlls/mshtml/htmlevent.h b/dlls/mshtml/htmlevent.h
index 3a8619a..a955be5 100644
--- a/dlls/mshtml/htmlevent.h
+++ b/dlls/mshtml/htmlevent.h
@@ -37,6 +37,7 @@ typedef enum {
     EVENTID_READYSTATECHANGE,
     EVENTID_RESIZE,
     EVENTID_SELECTSTART,
+    EVENTID_UNLOAD,
     EVENTID_LAST
 } eventid_t;
 
diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c
index 1ba1101..8e34b7e 100644
--- a/dlls/mshtml/htmlwindow.c
+++ b/dlls/mshtml/htmlwindow.c
@@ -908,15 +908,19 @@ static HRESULT WINAPI HTMLWindow2_get_onbeforeunload(IHTMLWindow2 *iface, VARIAN
 static HRESULT WINAPI HTMLWindow2_put_onunload(IHTMLWindow2 *iface, VARIANT v)
 {
     HTMLWindow *This = HTMLWINDOW2_THIS(iface);
-    FIXME("(%p)->(v(%d))\n", This, V_VT(&v));
-    return E_NOTIMPL;
+
+    FIXME("(%p)->(v(%d)) semi-stub\n", This, V_VT(&v));
+
+    return set_window_event(This, EVENTID_UNLOAD, &v);
 }
 
 static HRESULT WINAPI HTMLWindow2_get_onunload(IHTMLWindow2 *iface, VARIANT *p)
 {
     HTMLWindow *This = HTMLWINDOW2_THIS(iface);
-    FIXME("(%p)->(%p)\n", This, p);
-    return E_NOTIMPL;
+
+    FIXME("(%p)->(%p) semi-stub\n", This, p);
+
+    return get_window_event(This, EVENTID_UNLOAD, p);
 }
 
 static HRESULT WINAPI HTMLWindow2_put_onhelp(IHTMLWindow2 *iface, VARIANT v)
-- 
1.7.0.4


More information about the wine-patches mailing list