mshtml.idl: Added HTMLDocumentEvents and HTMLDocumentEvents2 dispifaces.
diff --git a/include/mshtmdid.h b/include/mshtmdid.h
index 858b3da..23f2b84 100644
--- a/include/mshtmdid.h
+++ b/include/mshtmdid.h
@@ -1,5 +1,5 @@
 /*
- * Copyright 2004 Jacek Caban
+ * Copyright 2004,2006 Jacek Caban for CodeWeavers
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -163,6 +163,40 @@
 #define STDPROPID_XOBJ_RIGHT             (DISPID_XOBJ_BASE+77)
 #define STDPROPID_XOBJ_BOTTOM            (DISPID_XOBJ_BASE+78)
 
+#define STDDISPID_XOBJ_ONBLUR             (DISPID_XOBJ_BASE+0)
+#define STDDISPID_XOBJ_ONFOCUS            (DISPID_XOBJ_BASE+1)
+#define STDDISPID_XOBJ_BEFOREUPDATE       (DISPID_XOBJ_BASE+4)
+#define STDDISPID_XOBJ_AFTERUPDATE        (DISPID_XOBJ_BASE+5)
+#define STDDISPID_XOBJ_ONROWEXIT          (DISPID_XOBJ_BASE+6)
+#define STDDISPID_XOBJ_ONROWENTER         (DISPID_XOBJ_BASE+7)
+#define STDDISPID_XOBJ_ONMOUSEOVER        (DISPID_XOBJ_BASE+8)
+#define STDDISPID_XOBJ_ONMOUSEOUT         (DISPID_XOBJ_BASE+9)
+#define STDDISPID_XOBJ_ONHELP             (DISPID_XOBJ_BASE+10)
+#define STDDISPID_XOBJ_ONDRAGSTART        (DISPID_XOBJ_BASE+11)
+#define STDDISPID_XOBJ_ONSELECTSTART      (DISPID_XOBJ_BASE+12)
+#define STDDISPID_XOBJ_ERRORUPDATE        (DISPID_XOBJ_BASE+13)
+#define STDDISPID_XOBJ_ONDATASETCHANGED   (DISPID_XOBJ_BASE+14)
+#define STDDISPID_XOBJ_ONDATAAVAILABLE    (DISPID_XOBJ_BASE+15)
+#define STDDISPID_XOBJ_ONDATASETCOMPLETE  (DISPID_XOBJ_BASE+16)
+#define STDDISPID_XOBJ_ONFILTER           (DISPID_XOBJ_BASE+17)
+#define STDDISPID_XOBJ_ONLOSECAPTURE      (DISPID_XOBJ_BASE+18)
+#define STDDISPID_XOBJ_ONPROPERTYCHANGE   (DISPID_XOBJ_BASE+19)
+#define STDDISPID_XOBJ_ONDRAG             (DISPID_XOBJ_BASE+20)
+#define STDDISPID_XOBJ_ONDRAGEND          (DISPID_XOBJ_BASE+21)
+#define STDDISPID_XOBJ_ONDRAGENTER        (DISPID_XOBJ_BASE+22)
+#define STDDISPID_XOBJ_ONDRAGOVER         (DISPID_XOBJ_BASE+23)
+#define STDDISPID_XOBJ_ONDRAGLEAVE        (DISPID_XOBJ_BASE+24)
+#define STDDISPID_XOBJ_ONDROP             (DISPID_XOBJ_BASE+25)
+#define STDDISPID_XOBJ_ONCUT              (DISPID_XOBJ_BASE+26)
+#define STDDISPID_XOBJ_ONCOPY             (DISPID_XOBJ_BASE+27)
+#define STDDISPID_XOBJ_ONPASTE            (DISPID_XOBJ_BASE+28)
+#define STDDISPID_XOBJ_ONBEFORECUT        (DISPID_XOBJ_BASE+29)
+#define STDDISPID_XOBJ_ONBEFORECOPY       (DISPID_XOBJ_BASE+30)
+#define STDDISPID_XOBJ_ONBEFOREPASTE      (DISPID_XOBJ_BASE+31)
+#define STDDISPID_XOBJ_ONROWSDELETE       (DISPID_XOBJ_BASE+32)
+#define STDDISPID_XOBJ_ONROWSINSERTED     (DISPID_XOBJ_BASE+33)
+#define STDDISPID_XOBJ_ONCELLCHANGE       (DISPID_XOBJ_BASE+34)
+
 #define DISPID_A_FIRST                       DISPID_ATTRS
 #define DISPID_A_BACKGROUNDIMAGE             (DISPID_A_FIRST+1)
 #define DISPID_A_COLOR                       (DISPID_A_FIRST+2)
@@ -488,6 +522,98 @@
 #define DISPID_EVPROP_ONFOCUSOUT           (DISPID_EVENTS+92)
 #define DISPID_EVPROPS_COUNT               93
 
+#define DISPID_EVMETH_ONMOUSEOVER           STDDISPID_XOBJ_ONMOUSEOVER
+#define DISPID_EVMETH_ONMOUSEOUT            STDDISPID_XOBJ_ONMOUSEOUT
+#define DISPID_EVMETH_ONMOUSEDOWN           DISPID_MOUSEDOWN
+#define DISPID_EVMETH_ONMOUSEUP             DISPID_MOUSEUP
+#define DISPID_EVMETH_ONMOUSEMOVE           DISPID_MOUSEMOVE
+#define DISPID_EVMETH_ONKEYDOWN             DISPID_KEYDOWN
+#define DISPID_EVMETH_ONKEYUP               DISPID_KEYUP
+#define DISPID_EVMETH_ONKEYPRESS            DISPID_KEYPRESS
+#define DISPID_EVMETH_ONCLICK               DISPID_CLICK
+#define DISPID_EVMETH_ONDBLCLICK            DISPID_DBLCLICK
+#define DISPID_EVMETH_ONSELECT              DISPID_ONSELECT
+#define DISPID_EVMETH_ONSUBMIT              DISPID_ONSUBMIT
+#define DISPID_EVMETH_ONRESET               DISPID_ONRESET
+#define DISPID_EVMETH_ONHELP                STDDISPID_XOBJ_ONHELP
+#define DISPID_EVMETH_ONFOCUS               STDDISPID_XOBJ_ONFOCUS
+#define DISPID_EVMETH_ONBLUR                STDDISPID_XOBJ_ONBLUR
+#define DISPID_EVMETH_ONROWEXIT             STDDISPID_XOBJ_ONROWEXIT
+#define DISPID_EVMETH_ONROWENTER            STDDISPID_XOBJ_ONROWENTER
+#define DISPID_EVMETH_ONBOUNCE              DISPID_ONBOUNCE
+#define DISPID_EVMETH_ONBEFOREUPDATE        STDDISPID_XOBJ_BEFOREUPDATE
+#define DISPID_EVMETH_ONAFTERUPDATE         STDDISPID_XOBJ_AFTERUPDATE
+#define DISPID_EVMETH_ONBEFOREDRAGOVER      EVENTID_CommonCtrlEvent_BeforeDragOver
+#define DISPID_EVMETH_ONBEFOREDROPORPASTE   EVENTID_CommonCtrlEvent_BeforeDropOrPaste
+#define DISPID_EVMETH_ONREADYSTATECHANGE    DISPID_READYSTATECHANGE
+#define DISPID_EVMETH_ONFINISH              DISPID_ONFINISH
+#define DISPID_EVMETH_ONSTART               DISPID_ONSTART
+#define DISPID_EVMETH_ONABORT               DISPID_ONABORT
+#define DISPID_EVMETH_ONERROR               DISPID_ONERROR
+#define DISPID_EVMETH_ONCHANGE              DISPID_ONCHANGE
+#define DISPID_EVMETH_ONSCROLL              DISPID_ONSCROLL
+#define DISPID_EVMETH_ONLOAD                DISPID_ONLOAD
+#define DISPID_EVMETH_ONUNLOAD              DISPID_ONUNLOAD
+#define DISPID_EVMETH_ONLAYOUT              DISPID_ONLAYOUT
+#define DISPID_EVMETH_ONDRAGSTART           STDDISPID_XOBJ_ONDRAGSTART
+#define DISPID_EVMETH_ONRESIZE              DISPID_ONRESIZE
+#define DISPID_EVMETH_ONSELECTSTART         STDDISPID_XOBJ_ONSELECTSTART
+#define DISPID_EVMETH_ONERRORUPDATE         STDDISPID_XOBJ_ERRORUPDATE
+#define DISPID_EVMETH_ONBEFOREUNLOAD        DISPID_ONBEFOREUNLOAD
+#define DISPID_EVMETH_ONDATASETCHANGED      STDDISPID_XOBJ_ONDATASETCHANGED
+#define DISPID_EVMETH_ONDATAAVAILABLE       STDDISPID_XOBJ_ONDATAAVAILABLE
+#define DISPID_EVMETH_ONDATASETCOMPLETE     STDDISPID_XOBJ_ONDATASETCOMPLETE
+#define DISPID_EVMETH_ONFILTER              STDDISPID_XOBJ_ONFILTER
+#define DISPID_EVMETH_ONCHANGEFOCUS         DISPID_ONCHANGEFOCUS
+#define DISPID_EVMETH_ONCHANGEBLUR          DISPID_ONCHANGEBLUR
+#define DISPID_EVMETH_ONLOSECAPTURE         STDDISPID_XOBJ_ONLOSECAPTURE
+#define DISPID_EVMETH_ONPROPERTYCHANGE      STDDISPID_XOBJ_ONPROPERTYCHANGE
+#define DISPID_EVMETH_ONPERSISTSAVE         DISPID_ONPERSISTSAVE
+#define DISPID_EVMETH_ONDRAG                STDDISPID_XOBJ_ONDRAG
+#define DISPID_EVMETH_ONDRAGEND             STDDISPID_XOBJ_ONDRAGEND
+#define DISPID_EVMETH_ONDRAGENTER           STDDISPID_XOBJ_ONDRAGENTER
+#define DISPID_EVMETH_ONDRAGOVER            STDDISPID_XOBJ_ONDRAGOVER
+#define DISPID_EVMETH_ONDRAGLEAVE           STDDISPID_XOBJ_ONDRAGLEAVE
+#define DISPID_EVMETH_ONDROP                STDDISPID_XOBJ_ONDROP
+#define DISPID_EVMETH_ONCUT                 STDDISPID_XOBJ_ONCUT
+#define DISPID_EVMETH_ONCOPY                STDDISPID_XOBJ_ONCOPY
+#define DISPID_EVMETH_ONPASTE               STDDISPID_XOBJ_ONPASTE
+#define DISPID_EVMETH_ONBEFORECUT           STDDISPID_XOBJ_ONBEFORECUT
+#define DISPID_EVMETH_ONBEFORECOPY          STDDISPID_XOBJ_ONBEFORECOPY
+#define DISPID_EVMETH_ONBEFOREPASTE         STDDISPID_XOBJ_ONBEFOREPASTE
+#define DISPID_EVMETH_ONPERSISTLOAD         DISPID_ONPERSISTLOAD
+#define DISPID_EVMETH_ONROWSDELETE          STDDISPID_XOBJ_ONROWSDELETE
+#define DISPID_EVMETH_ONROWSINSERTED        STDDISPID_XOBJ_ONROWSINSERTED
+#define DISPID_EVMETH_ONCELLCHANGE          STDDISPID_XOBJ_ONCELLCHANGE
+#define DISPID_EVMETH_ONCONTEXTMENU         DISPID_ONCONTEXTMENU
+#define DISPID_EVMETH_ONBEFOREPRINT         DISPID_ONBEFOREPRINT
+#define DISPID_EVMETH_ONAFTERPRINT          DISPID_ONAFTERPRINT
+#define DISPID_EVMETH_ONSTOP                DISPID_ONSTOP
+#define DISPID_EVMETH_ONBEFOREEDITFOCUS     DISPID_ONBEFOREEDITFOCUS
+#define DISPID_EVMETH_ONMOUSEHOVER          DISPID_ONMOUSEHOVER
+#define DISPID_EVMETH_ONCONTENTREADY        DISPID_ONCONTENTREADY
+#define DISPID_EVMETH_ONLAYOUTCOMPLETE      DISPID_ONLAYOUTCOMPLETE
+#define DISPID_EVMETH_ONPAGE                DISPID_ONPAGE
+#define DISPID_EVMETH_ONLINKEDOVERFLOW      DISPID_ONLINKEDOVERFLOW
+#define DISPID_EVMETH_ONMOUSEWHEEL          DISPID_ONMOUSEWHEEL
+#define DISPID_EVMETH_ONBEFOREDEACTIVAT     DISPID_ONBEFOREDEACTIVATE
+#define DISPID_EVMETH_ONMOVE                DISPID_ONMOVE
+#define DISPID_EVMETH_ONCONTROLSELECT       DISPID_ONCONTROLSELECT
+#define DISPID_EVMETH_ONSELECTIONCHANGE     DISPID_ONSELECTIONCHANGE
+#define DISPID_EVMETH_ONMOVESTART           DISPID_ONMOVESTART
+#define DISPID_EVMETH_ONMOVEEND             DISPID_ONMOVEEND
+#define DISPID_EVMETH_ONRESIZESTART         DISPID_ONRESIZESTART
+#define DISPID_EVMETH_ONRESIZEEND           DISPID_ONRESIZEEND
+#define DISPID_EVMETH_ONMOUSEENTER          DISPID_ONMOUSEENTER
+#define DISPID_EVMETH_ONMOUSELEAVE          DISPID_ONMOUSELEAVE
+#define DISPID_EVMETH_ONACTIVATE            DISPID_ONACTIVATE
+#define DISPID_EVMETH_ONDEACTIVATE          DISPID_ONDEACTIVATE
+#define DISPID_EVMETH_ONMULTILAYOUTCLEANUP  DISPID_ONMULTILAYOUTCLEANUP
+#define DISPID_EVMETH_ONBEFOREACTIVATE      DISPID_ONBEFOREACTIVATE
+#define DISPID_EVMETH_ONFOCUSIN             DISPID_ONFOCUSIN
+#define DISPID_EVMETH_ONFOCUSOUT            DISPID_ONFOCUSOUT
+#define DISPID_EVPROPS_COUNT                93
+
 
 #define DISPID_EVMETH_ONMOUSEOVER           STDDISPID_XOBJ_ONMOUSEOVER
 #define DISPID_EVMETH_ONMOUSEOUT            STDDISPID_XOBJ_ONMOUSEOUT
@@ -628,6 +754,86 @@
 #define DISPID_ONFOCUSIN             (DISPID_NORMAL_FIRST+48)
 #define DISPID_ONFOCUSOUT            (DISPID_NORMAL_FIRST+49)
 
+/* HTMLDocumentEvents */
+#define DISPID_HTMLDOCUMENTEVENTS_ONHELP              DISPID_EVMETH_ONHELP
+#define DISPID_HTMLDOCUMENTEVENTS_ONCLICK             DISPID_EVMETH_ONCLICK
+#define DISPID_HTMLDOCUMENTEVENTS_ONDBLCLICK          DISPID_EVMETH_ONDBLCLICK
+#define DISPID_HTMLDOCUMENTEVENTS_ONKEYDOWN           DISPID_EVMETH_ONKEYDOWN
+#define DISPID_HTMLDOCUMENTEVENTS_ONKEYUP             DISPID_EVMETH_ONKEYUP
+#define DISPID_HTMLDOCUMENTEVENTS_ONKEYPRESS          DISPID_EVMETH_ONKEYPRESS
+#define DISPID_HTMLDOCUMENTEVENTS_ONMOUSEDOWN         DISPID_EVMETH_ONMOUSEDOWN
+#define DISPID_HTMLDOCUMENTEVENTS_ONMOUSEMOVE         DISPID_EVMETH_ONMOUSEMOVE
+#define DISPID_HTMLDOCUMENTEVENTS_ONMOUSEUP           DISPID_EVMETH_ONMOUSEUP
+#define DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOUT          DISPID_EVMETH_ONMOUSEOUT
+#define DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOVER         DISPID_EVMETH_ONMOUSEOVER
+#define DISPID_HTMLDOCUMENTEVENTS_ONREADYSTATECHANGE  DISPID_EVMETH_ONREADYSTATECHANGE
+#define DISPID_HTMLDOCUMENTEVENTS_ONBEFOREUPDATE      DISPID_EVMETH_ONBEFOREUPDATE
+#define DISPID_HTMLDOCUMENTEVENTS_ONAFTERUPDATE       DISPID_EVMETH_ONAFTERUPDATE
+#define DISPID_HTMLDOCUMENTEVENTS_ONROWEXIT           DISPID_EVMETH_ONROWEXIT
+#define DISPID_HTMLDOCUMENTEVENTS_ONROWENTER          DISPID_EVMETH_ONROWENTER
+#define DISPID_HTMLDOCUMENTEVENTS_ONDRAGSTART         DISPID_EVMETH_ONDRAGSTART
+#define DISPID_HTMLDOCUMENTEVENTS_ONSELECTSTART       DISPID_EVMETH_ONSELECTSTART
+#define DISPID_HTMLDOCUMENTEVENTS_ONERRORUPDATE       DISPID_EVMETH_ONERRORUPDATE
+#define DISPID_HTMLDOCUMENTEVENTS_ONCONTEXTMENU       DISPID_EVMETH_ONCONTEXTMENU
+#define DISPID_HTMLDOCUMENTEVENTS_ONSTOP              DISPID_EVMETH_ONSTOP
+#define DISPID_HTMLDOCUMENTEVENTS_ONROWSDELETE        DISPID_EVMETH_ONROWSDELETE
+#define DISPID_HTMLDOCUMENTEVENTS_ONROWSINSERTED      DISPID_EVMETH_ONROWSINSERTED
+#define DISPID_HTMLDOCUMENTEVENTS_ONCELLCHANGE        DISPID_EVMETH_ONCELLCHANGE
+#define DISPID_HTMLDOCUMENTEVENTS_ONPROPERTYCHANGE    DISPID_EVMETH_ONPROPERTYCHANGE
+#define DISPID_HTMLDOCUMENTEVENTS_ONDATASETCHANGED    DISPID_EVMETH_ONDATASETCHANGED
+#define DISPID_HTMLDOCUMENTEVENTS_ONDATAAVAILABLE     DISPID_EVMETH_ONDATAAVAILABLE
+#define DISPID_HTMLDOCUMENTEVENTS_ONDATASETCOMPLETE   DISPID_EVMETH_ONDATASETCOMPLETE
+#define DISPID_HTMLDOCUMENTEVENTS_ONBEFOREEDITFOCUS   DISPID_EVMETH_ONBEFOREEDITFOCUS
+#define DISPID_HTMLDOCUMENTEVENTS_ONSELECTIONCHANGE   DISPID_EVMETH_ONSELECTIONCHANGE
+#define DISPID_HTMLDOCUMENTEVENTS_ONCONTROLSELECT     DISPID_EVMETH_ONCONTROLSELECT
+#define DISPID_HTMLDOCUMENTEVENTS_ONMOUSEWHEEL        DISPID_EVMETH_ONMOUSEWHEEL
+#define DISPID_HTMLDOCUMENTEVENTS_ONFOCUSIN           DISPID_EVMETH_ONFOCUSIN
+#define DISPID_HTMLDOCUMENTEVENTS_ONFOCUSOUT          DISPID_EVMETH_ONFOCUSOUT
+#define DISPID_HTMLDOCUMENTEVENTS_ONACTIVATE          DISPID_EVMETH_ONACTIVATE
+#define DISPID_HTMLDOCUMENTEVENTS_ONDEACTIVATE        DISPID_EVMETH_ONDEACTIVATE
+#define DISPID_HTMLDOCUMENTEVENTS_ONBEFOREACTIVATE    DISPID_EVMETH_ONBEFOREACTIVATE
+#define DISPID_HTMLDOCUMENTEVENTS_ONBEFOREDEACTIVATE  DISPID_EVMETH_ONBEFOREDEACTIVATE
+
+/* HTMLDocumentEvents2 */
+#define DISPID_HTMLDOCUMENTEVENTS2_ONHELP              DISPID_EVMETH_ONHELP
+#define DISPID_HTMLDOCUMENTEVENTS2_ONCLICK             DISPID_EVMETH_ONCLICK
+#define DISPID_HTMLDOCUMENTEVENTS2_ONDBLCLICK          DISPID_EVMETH_ONDBLCLICK
+#define DISPID_HTMLDOCUMENTEVENTS2_ONKEYDOWN           DISPID_EVMETH_ONKEYDOWN
+#define DISPID_HTMLDOCUMENTEVENTS2_ONKEYUP             DISPID_EVMETH_ONKEYUP
+#define DISPID_HTMLDOCUMENTEVENTS2_ONKEYPRESS          DISPID_EVMETH_ONKEYPRESS
+#define DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEDOWN         DISPID_EVMETH_ONMOUSEDOWN
+#define DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEMOVE         DISPID_EVMETH_ONMOUSEMOVE
+#define DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEUP           DISPID_EVMETH_ONMOUSEUP
+#define DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOUT          DISPID_EVMETH_ONMOUSEOUT
+#define DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOVER         DISPID_EVMETH_ONMOUSEOVER
+#define DISPID_HTMLDOCUMENTEVENTS2_ONREADYSTATECHANGE  DISPID_EVMETH_ONREADYSTATECHANGE
+#define DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREUPDATE      DISPID_EVMETH_ONBEFOREUPDATE
+#define DISPID_HTMLDOCUMENTEVENTS2_ONAFTERUPDATE       DISPID_EVMETH_ONAFTERUPDATE
+#define DISPID_HTMLDOCUMENTEVENTS2_ONROWEXIT           DISPID_EVMETH_ONROWEXIT
+#define DISPID_HTMLDOCUMENTEVENTS2_ONROWENTER          DISPID_EVMETH_ONROWENTER
+#define DISPID_HTMLDOCUMENTEVENTS2_ONDRAGSTART         DISPID_EVMETH_ONDRAGSTART
+#define DISPID_HTMLDOCUMENTEVENTS2_ONSELECTSTART       DISPID_EVMETH_ONSELECTSTART
+#define DISPID_HTMLDOCUMENTEVENTS2_ONERRORUPDATE       DISPID_EVMETH_ONERRORUPDATE
+#define DISPID_HTMLDOCUMENTEVENTS2_ONCONTEXTMENU       DISPID_EVMETH_ONCONTEXTMENU
+#define DISPID_HTMLDOCUMENTEVENTS2_ONSTOP              DISPID_EVMETH_ONSTOP
+#define DISPID_HTMLDOCUMENTEVENTS2_ONROWSDELETE        DISPID_EVMETH_ONROWSDELETE
+#define DISPID_HTMLDOCUMENTEVENTS2_ONROWSINSERTED      DISPID_EVMETH_ONROWSINSERTED
+#define DISPID_HTMLDOCUMENTEVENTS2_ONCELLCHANGE        DISPID_EVMETH_ONCELLCHANGE
+#define DISPID_HTMLDOCUMENTEVENTS2_ONPROPERTYCHANGE    DISPID_EVMETH_ONPROPERTYCHANGE
+#define DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCHANGED    DISPID_EVMETH_ONDATASETCHANGED
+#define DISPID_HTMLDOCUMENTEVENTS2_ONDATAAVAILABLE     DISPID_EVMETH_ONDATAAVAILABLE
+#define DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCOMPLETE   DISPID_EVMETH_ONDATASETCOMPLETE
+#define DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREEDITFOCUS   DISPID_EVMETH_ONBEFOREEDITFOCUS
+#define DISPID_HTMLDOCUMENTEVENTS2_ONSELECTIONCHANGE   DISPID_EVMETH_ONSELECTIONCHANGE
+#define DISPID_HTMLDOCUMENTEVENTS2_ONCONTROLSELECT     DISPID_EVMETH_ONCONTROLSELECT
+#define DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEWHEEL        DISPID_EVMETH_ONMOUSEWHEEL
+#define DISPID_HTMLDOCUMENTEVENTS2_ONFOCUSIN           DISPID_EVMETH_ONFOCUSIN
+#define DISPID_HTMLDOCUMENTEVENTS2_ONFOCUSOUT          DISPID_EVMETH_ONFOCUSOUT
+#define DISPID_HTMLDOCUMENTEVENTS2_ONACTIVATE          DISPID_EVMETH_ONACTIVATE
+#define DISPID_HTMLDOCUMENTEVENTS2_ONDEACTIVATE        DISPID_EVMETH_ONDEACTIVATE
+#define DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREACTIVATE    DISPID_EVMETH_ONBEFOREACTIVATE
+#define DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREDEACTIVATE  DISPID_EVMETH_ONBEFOREDEACTIVATE
+
 /* IHTMLDocument */
 #define DISPID_IHTMLDOCUMENT_SCRIPT    (DISPID_OMDOCUMENT+1)
 
diff --git a/include/mshtml.idl b/include/mshtml.idl
index 92ee077..50d31b1 100644
--- a/include/mshtml.idl
+++ b/include/mshtml.idl
@@ -4165,6 +4165,258 @@
 }
 
 /*****************************************************************************
+ *    HTMLDocumentEvents2 interface
+ */
+[
+    hidden,
+    uuid(3050f613-98b5-11cf-bb82-00aa00bdce0b)
+]
+dispinterface HTMLDocumentEvents2
+{
+    properties:
+    methods:
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONHELP)]
+    VARIANT_BOOL onhelp([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONCLICK)]
+    VARIANT_BOOL onclick([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONDBLCLICK)]
+    VARIANT_BOOL ondblclick([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYDOWN)]
+    void onkeydown([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYUP)]
+    void onkeyup([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYPRESS)]
+    VARIANT_BOOL onkeypress([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEDOWN)]
+    void onmousedown([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEMOVE)]
+    void onmousemove([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEUP)]
+    void onmouseup([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOUT)]
+    void onmouseout([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOVER)]
+    void onmouseover([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONREADYSTATECHANGE)]
+    void onreadystatechange([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREUPDATE)]
+    VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONAFTERUPDATE)]
+    void onafterupdate([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWEXIT)]
+    VARIANT_BOOL onrowexit([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWENTER)]
+    void onrowenter([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONDRAGSTART)]
+    VARIANT_BOOL ondragstart([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONSELECTSTART)]
+    VARIANT_BOOL onselectstart([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONERRORUPDATE)]
+    VARIANT_BOOL onerrorupdate([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONCONTEXTMENU)]
+    VARIANT_BOOL oncontextmenu([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONSTOP)]
+    VARIANT_BOOL onstop([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWSDELETE)]
+    void onrowsdelete([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWSINSERTED)]
+    void onrowsinserted([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONCELLCHANGE)]
+    void oncellchange([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONPROPERTYCHANGE)]
+    void onpropertychange([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCHANGED)]
+    void ondatasetchanged([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATAAVAILABLE)]
+    void ondataavailable([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCOMPLETE)]
+    void ondatasetcomplete([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREEDITFOCUS)]
+    void onbeforeeditfocus([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONSELECTIONCHANGE)]
+    void onselectionchange([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONCONTROLSELECT)]
+    VARIANT_BOOL oncontrolselect([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEWHEEL)]
+    VARIANT_BOOL onmousewheel([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONFOCUSIN)]
+    void onfocusin([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONFOCUSOUT)]
+    void onfocusout([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONACTIVATE)]
+    void onactivate([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONDEACTIVATE)]
+    void ondeactivate([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREACTIVATE)]
+    VARIANT_BOOL onbeforeactivate([in] IHTMLEventObj *pEvtObj);
+
+    [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREDEACTIVATE)]
+    VARIANT_BOOL onbeforedeactivate([in] IHTMLEventObj *pEvtObj);
+}
+
+/*****************************************************************************
+ *    HTMLDocumentEvents interface
+ */
+[
+    hidden,
+    uuid(3050f260-98b5-11cf-bb82-00aa00bdce0b)
+]
+dispinterface HTMLDocumentEvents
+{
+    properties:
+    methods:
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONHELP)]
+    VARIANT_BOOL onhelp();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONCLICK)]
+    VARIANT_BOOL onclick();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONDBLCLICK)]
+    VARIANT_BOOL ondblclick();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYDOWN)]
+    void onkeydown();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYUP)]
+    void onkeyup();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYPRESS)]
+    VARIANT_BOOL onkeypress();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEDOWN)]
+    void onmousedown();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEMOVE)]
+    void onmousemove();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEUP)]
+    void onmouseup();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOUT)]
+    void onmouseout();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOVER)]
+    void onmouseover();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONREADYSTATECHANGE)]
+    void onreadystatechange();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREUPDATE)]
+    VARIANT_BOOL onbeforeupdate();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONAFTERUPDATE)]
+    void onafterupdate();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONROWEXIT)]
+    VARIANT_BOOL onrowexit();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONROWENTER)]
+    void onrowenter();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONDRAGSTART)]
+    VARIANT_BOOL ondragstart();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONSELECTSTART)]
+    VARIANT_BOOL onselectstart();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONERRORUPDATE)]
+    VARIANT_BOOL onerrorupdate();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONCONTEXTMENU)]
+    VARIANT_BOOL oncontextmenu();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONSTOP)]
+    VARIANT_BOOL onstop();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONROWSDELETE)]
+    void onrowsdelete();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONROWSINSERTED)]
+    void onrowsinserted();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONCELLCHANGE)]
+    void oncellchange();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONPROPERTYCHANGE)]
+    void onpropertychange();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONDATASETCHANGED)]
+    void ondatasetchanged();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONDATAAVAILABLE)]
+    void ondataavailable();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONDATASETCOMPLETE)]
+    void ondatasetcomplete();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREEDITFOCUS)]
+    void onbeforeeditfocus();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONSELECTIONCHANGE)]
+    void onselectionchange();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONCONTROLSELECT)]
+    VARIANT_BOOL oncontrolselect();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEWHEEL)]
+    VARIANT_BOOL onmousewheel();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONFOCUSIN)]
+    void onfocusin();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONFOCUSOUT)]
+    void onfocusout();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONACTIVATE)]
+    void onactivate();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONDEACTIVATE)]
+    void ondeactivate();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREACTIVATE)]
+    VARIANT_BOOL onbeforeactivate();
+
+    [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREDEACTIVATE)]
+    VARIANT_BOOL onbeforedeactivate();
+}
+
+/*****************************************************************************
  *    IHTMLDocument interface
  */
 [
@@ -4841,6 +5093,7 @@
 {
     [default]         interface IHTMLDocument2;
     [source, default] dispinterface HTMLDocumentEvents;
+    [source]          dispinterface HTMLDocumentEvents2;
 };
 
 } /* library MSHTML */