diff --git a/dlls/mshtml/main.c b/dlls/mshtml/main.c
index b1c8756ee99..aed4d76b34d 100644
--- a/dlls/mshtml/main.c
+++ b/dlls/mshtml/main.c
@@ -284,7 +284,6 @@ DEFINE_GUID(CLSID_HTMLPluginDocument, 0x25336921, 0x03F9, 0x11CF, 0x8F,0xD0, 0x0
DEFINE_GUID(CLSID_HTMLPopup, 0x3050F667, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B);
DEFINE_GUID(CLSID_HTMLPopupDoc, 0x3050F67D, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B);
DEFINE_GUID(CLSID_HTMLServerDoc, 0x3050F4E7, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B);
-DEFINE_GUID(CLSID_HTMLWindowProxy, 0x3050F391, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B);
DEFINE_GUID(CLSID_IImageDecodeFilter, 0x607FD4E8, 0x0A03, 0x11D1, 0xAB,0x1D, 0x00,0xC0,0x4F,0xC9,0xB3,0x04);
DEFINE_GUID(CLSID_IImgCtx, 0x3050F3D6, 0x98B5, 0x11CF, 0xBB,0x82, 0x00,0xAA,0x00,0xBD,0xCE,0x0B);
DEFINE_GUID(CLSID_IntDitherer, 0x05F6FE1A, 0xECEF, 0x11D0, 0xAA,0xE7, 0x00,0xC0,0x4F,0xC9,0xB3,0x04);
diff --git a/include/mshtmdid.h b/include/mshtmdid.h
index 6d2633d6b82..8f882f8c13c 100644
--- a/include/mshtmdid.h
+++ b/include/mshtmdid.h
@@ -1499,6 +1499,32 @@
#define DISPID_IHTMLBOOKMARKCOLLECTION__NEWENUM DISPID_NEWENUM
#define DISPID_IHTMLBOOKMARKCOLLECTION_ITEM DISPID_VALUE
+/* HTMLWindowEvents */
+#define DISPID_HTMLWINDOWEVENTS_ONLOAD DISPID_EVMETH_ONLOAD
+#define DISPID_HTMLWINDOWEVENTS_ONUNLOAD DISPID_EVMETH_ONUNLOAD
+#define DISPID_HTMLWINDOWEVENTS_ONHELP DISPID_EVMETH_ONHELP
+#define DISPID_HTMLWINDOWEVENTS_ONFOCUS DISPID_EVMETH_ONFOCUS
+#define DISPID_HTMLWINDOWEVENTS_ONBLUR DISPID_EVMETH_ONBLUR
+#define DISPID_HTMLWINDOWEVENTS_ONERROR DISPID_EVMETH_ONERROR
+#define DISPID_HTMLWINDOWEVENTS_ONRESIZE DISPID_EVMETH_ONRESIZE
+#define DISPID_HTMLWINDOWEVENTS_ONSCROLL DISPID_EVMETH_ONSCROLL
+#define DISPID_HTMLWINDOWEVENTS_ONBEFOREUNLOAD DISPID_EVMETH_ONBEFOREUNLOAD
+#define DISPID_HTMLWINDOWEVENTS_ONBEFOREPRINT DISPID_EVMETH_ONBEFOREPRINT
+#define DISPID_HTMLWINDOWEVENTS_ONAFTERPRINT DISPID_EVMETH_ONAFTERPRINT
+
+/* HTMLWindowEvents2 */
+#define DISPID_HTMLWINDOWEVENTS2_ONLOAD DISPID_EVMETH_ONLOAD
+#define DISPID_HTMLWINDOWEVENTS2_ONUNLOAD DISPID_EVMETH_ONUNLOAD
+#define DISPID_HTMLWINDOWEVENTS2_ONHELP DISPID_EVMETH_ONHELP
+#define DISPID_HTMLWINDOWEVENTS2_ONFOCUS DISPID_EVMETH_ONFOCUS
+#define DISPID_HTMLWINDOWEVENTS2_ONBLUR DISPID_EVMETH_ONBLUR
+#define DISPID_HTMLWINDOWEVENTS2_ONERROR DISPID_EVMETH_ONERROR
+#define DISPID_HTMLWINDOWEVENTS2_ONRESIZE DISPID_EVMETH_ONRESIZE
+#define DISPID_HTMLWINDOWEVENTS2_ONSCROLL DISPID_EVMETH_ONSCROLL
+#define DISPID_HTMLWINDOWEVENTS2_ONBEFOREUNLOAD DISPID_EVMETH_ONBEFOREUNLOAD
+#define DISPID_HTMLWINDOWEVENTS2_ONBEFOREPRINT DISPID_EVMETH_ONBEFOREPRINT
+#define DISPID_HTMLWINDOWEVENTS2_ONAFTERPRINT DISPID_EVMETH_ONAFTERPRINT
+
/* IHTMLWindow2 */
#define DISPID_IHTMLWINDOW2_HISTORY 2
#define DISPID_IHTMLWINDOW2_CLOSE 3
diff --git a/include/mshtml.idl b/include/mshtml.idl
index bd4c98eb402..c8537fcedac 100644
--- a/include/mshtml.idl
+++ b/include/mshtml.idl
@@ -14496,6 +14496,117 @@ methods:
VARIANT XMLHttpRequest();
};
+/*****************************************************************************
+ * HTMLWindowEvents interface
+ */
+[
+ hidden,
+ uuid(96A0A4E0-D062-11cf-94B6-00AA0060275C)
+]
+dispinterface HTMLWindowEvents
+{
+properties:
+methods:
+ [id(DISPID_HTMLWINDOWEVENTS_ONLOAD)]
+ void onload();
+
+ [id(DISPID_HTMLWINDOWEVENTS_ONUNLOAD)]
+ void onunload();
+
+ [id(DISPID_HTMLWINDOWEVENTS_ONHELP)]
+ VARIANT_BOOL onhelp();
+
+ [id(DISPID_HTMLWINDOWEVENTS_ONFOCUS)]
+ void onfocus();
+
+ [id(DISPID_HTMLWINDOWEVENTS_ONBLUR)]
+ void onblur();
+
+ [id(DISPID_HTMLWINDOWEVENTS_ONERROR)]
+ void onerror([in] BSTR description,
+ [in] BSTR url,
+ [in] LONG line);
+
+ [id(DISPID_HTMLWINDOWEVENTS_ONRESIZE)]
+ void onresize();
+
+ [id(DISPID_HTMLWINDOWEVENTS_ONSCROLL)]
+ void onscroll();
+
+ [id(DISPID_HTMLWINDOWEVENTS_ONBEFOREUNLOAD)]
+ void onbeforeunload();
+
+ [id(DISPID_HTMLWINDOWEVENTS_ONBEFOREPRINT)]
+ void onbeforeprint();
+
+ [id(DISPID_HTMLWINDOWEVENTS_ONAFTERPRINT)]
+ void onafterprint();
+};
+
+/*****************************************************************************
+ * HTMLWindowEvents2 interface
+ */
+[
+ hidden,
+ uuid(3050f625-98b5-11cf-bb82-00aa00bdce0b)
+]
+dispinterface HTMLWindowEvents2
+{
+properties:
+methods:
+ [id(DISPID_HTMLWINDOWEVENTS2_ONLOAD)]
+ void onload([in] IHTMLEventObj* pEvtObj);
+
+ [id(DISPID_HTMLWINDOWEVENTS2_ONUNLOAD)]
+ void onunload([in] IHTMLEventObj* pEvtObj);
+
+ [id(DISPID_HTMLWINDOWEVENTS2_ONHELP)]
+ VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
+
+ [id(DISPID_HTMLWINDOWEVENTS2_ONFOCUS)]
+ void onfocus([in] IHTMLEventObj* pEvtObj);
+
+ [id(DISPID_HTMLWINDOWEVENTS2_ONBLUR)]
+ void onblur([in] IHTMLEventObj* pEvtObj);
+
+ [id(DISPID_HTMLWINDOWEVENTS2_ONERROR)]
+ void onerror([in] BSTR description,
+ [in] BSTR url,
+ [in] LONG line);
+
+ [id(DISPID_HTMLWINDOWEVENTS2_ONRESIZE)]
+ void onresize([in] IHTMLEventObj* pEvtObj);
+
+ [id(DISPID_HTMLWINDOWEVENTS2_ONSCROLL)]
+ void onscroll([in] IHTMLEventObj* pEvtObj);
+
+ [id(DISPID_HTMLWINDOWEVENTS2_ONBEFOREUNLOAD)]
+ void onbeforeunload([in] IHTMLEventObj* pEvtObj);
+
+ [id(DISPID_HTMLWINDOWEVENTS2_ONBEFOREPRINT)]
+ void onbeforeprint([in] IHTMLEventObj* pEvtObj);
+
+ [id(DISPID_HTMLWINDOWEVENTS2_ONAFTERPRINT)]
+ void onafterprint([in] IHTMLEventObj* pEvtObj);
+};
+
+/*****************************************************************************
+ * HTMLWindowProxy class
+ */
+[
+ uuid(3050f391-98b5-11cf-bb82-00aa00bdce0b)
+]
+coclass HTMLWindowProxy
+{
+ [default] dispinterface DispHTMLWindowProxy;
+ [source, default] dispinterface HTMLWindowEvents;
+ [source] dispinterface HTMLWindowEvents2;
+ interface IHTMLWindow2;
+ interface IHTMLWindow3;
+ interface IHTMLWindow4;
+ interface IHTMLWindow5;
+};
+
/*****************************************************************************
* HTMLDocumentEvents2 interface
*/