include: Add HTMLTextContainerEvents dispinterface and necessary dispids.
diff --git a/include/mshtmdid.h b/include/mshtmdid.h
index e9da079..804119a 100644
--- a/include/mshtmdid.h
+++ b/include/mshtmdid.h
@@ -984,6 +984,71 @@
 #define DISPID_IHTMLELEMENTCOLLECTION__NEWENUM   DISPID_NEWENUM
 #define DISPID_IHTMLELEMENTCOLLECTION_ITEM       DISPID_VALUE
 
+/* HTMLElementEvents */
+#define DISPID_HTMLELEMENTEVENTS_ONHELP             DISPID_EVMETH_ONHELP
+#define DISPID_HTMLELEMENTEVENTS_ONCLICK            DISPID_EVMETH_ONCLICK
+#define DISPID_HTMLELEMENTEVENTS_ONDBLCLICK         DISPID_EVMETH_ONDBLCLICK
+#define DISPID_HTMLELEMENTEVENTS_ONKEYPRESS         DISPID_EVMETH_ONKEYPRESS
+#define DISPID_HTMLELEMENTEVENTS_ONKEYDOWN          DISPID_EVMETH_ONKEYDOWN
+#define DISPID_HTMLELEMENTEVENTS_ONKEYUP            DISPID_EVMETH_ONKEYUP
+#define DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT         DISPID_EVMETH_ONMOUSEOUT
+#define DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER        DISPID_EVMETH_ONMOUSEOVER
+#define DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE        DISPID_EVMETH_ONMOUSEMOVE
+#define DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN        DISPID_EVMETH_ONMOUSEDOWN
+#define DISPID_HTMLELEMENTEVENTS_ONMOUSEUP          DISPID_EVMETH_ONMOUSEUP
+#define DISPID_HTMLELEMENTEVENTS_ONSELECTSTART      DISPID_EVMETH_ONSELECTSTART
+#define DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE     DISPID_EVMETH_ONFILTER
+#define DISPID_HTMLELEMENTEVENTS_ONDRAGSTART        DISPID_EVMETH_ONDRAGSTART
+#define DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE     DISPID_EVMETH_ONBEFOREUPDATE
+#define DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE      DISPID_EVMETH_ONAFTERUPDATE
+#define DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE      DISPID_EVMETH_ONERRORUPDATE
+#define DISPID_HTMLELEMENTEVENTS_ONROWEXIT          DISPID_EVMETH_ONROWEXIT
+#define DISPID_HTMLELEMENTEVENTS_ONROWENTER         DISPID_EVMETH_ONROWENTER
+#define DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED   DISPID_EVMETH_ONDATASETCHANGED
+#define DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE    DISPID_EVMETH_ONDATAAVAILABLE
+#define DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE  DISPID_EVMETH_ONDATASETCOMPLETE
+#define DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE      DISPID_EVMETH_ONLOSECAPTURE
+#define DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE   DISPID_EVMETH_ONPROPERTYCHANGE
+#define DISPID_HTMLELEMENTEVENTS_ONSCROLL           DISPID_EVMETH_ONSCROLL
+#define DISPID_HTMLELEMENTEVENTS_ONFOCUS            DISPID_EVMETH_ONFOCUS
+#define DISPID_HTMLELEMENTEVENTS_ONBLUR             DISPID_EVMETH_ONBLUR
+#define DISPID_HTMLELEMENTEVENTS_ONRESIZE           DISPID_EVMETH_ONRESIZE
+#define DISPID_HTMLELEMENTEVENTS_ONDRAG             DISPID_EVMETH_ONDRAG
+#define DISPID_HTMLELEMENTEVENTS_ONDRAGEND          DISPID_EVMETH_ONDRAGEND
+#define DISPID_HTMLELEMENTEVENTS_ONDRAGENTER        DISPID_EVMETH_ONDRAGENTER
+#define DISPID_HTMLELEMENTEVENTS_ONDRAGOVER         DISPID_EVMETH_ONDRAGOVER
+#define DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE        DISPID_EVMETH_ONDRAGLEAVE
+#define DISPID_HTMLELEMENTEVENTS_ONDROP             DISPID_EVMETH_ONDROP
+#define DISPID_HTMLELEMENTEVENTS_ONBEFORECUT        DISPID_EVMETH_ONBEFORECUT
+#define DISPID_HTMLELEMENTEVENTS_ONCUT              DISPID_EVMETH_ONCUT
+#define DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY       DISPID_EVMETH_ONBEFORECOPY
+#define DISPID_HTMLELEMENTEVENTS_ONCOPY             DISPID_EVMETH_ONCOPY
+#define DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE      DISPID_EVMETH_ONBEFOREPASTE
+#define DISPID_HTMLELEMENTEVENTS_ONPASTE            DISPID_EVMETH_ONPASTE
+#define DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU      DISPID_EVMETH_ONCONTEXTMENU
+#define DISPID_HTMLELEMENTEVENTS_ONROWSDELETE       DISPID_EVMETH_ONROWSDELETE
+#define DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED     DISPID_EVMETH_ONROWSINSERTED
+#define DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE       DISPID_EVMETH_ONCELLCHANGE
+#define DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE DISPID_EVMETH_ONREADYSTATECHANGE
+#define DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS  DISPID_EVMETH_ONBEFOREEDITFOCUS
+#define DISPID_HTMLELEMENTEVENTS_ONLAYOUTCOMPLETE   DISPID_EVMETH_ONLAYOUTCOMPLETE
+#define DISPID_HTMLELEMENTEVENTS_ONPAGE             DISPID_EVMETH_ONPAGE
+#define DISPID_HTMLELEMENTEVENTS_ONBEFOREDEACTIVATE DISPID_EVMETH_ONBEFOREDEACTIVATE
+#define DISPID_HTMLELEMENTEVENTS_ONBEFOREACTIVATE   DISPID_EVMETH_ONBEFOREACTIVATE
+#define DISPID_HTMLELEMENTEVENTS_ONMOVE             DISPID_EVMETH_ONMOVE
+#define DISPID_HTMLELEMENTEVENTS_ONCONTROLSELECT    DISPID_EVMETH_ONCONTROLSELECT
+#define DISPID_HTMLELEMENTEVENTS_ONMOVESTART        DISPID_EVMETH_ONMOVESTART
+#define DISPID_HTMLELEMENTEVENTS_ONMOVEEND          DISPID_EVMETH_ONMOVEEND
+#define DISPID_HTMLELEMENTEVENTS_ONRESIZESTART      DISPID_EVMETH_ONRESIZESTART
+#define DISPID_HTMLELEMENTEVENTS_ONRESIZEEND        DISPID_EVMETH_ONRESIZEEND
+#define DISPID_HTMLELEMENTEVENTS_ONMOUSEENTER       DISPID_EVMETH_ONMOUSEENTER
+#define DISPID_HTMLELEMENTEVENTS_ONMOUSELEAVE       DISPID_EVMETH_ONMOUSELEAVE
+#define DISPID_HTMLELEMENTEVENTS_ONMOUSEWHEEL       DISPID_EVMETH_ONMOUSEWHEEL
+#define DISPID_HTMLELEMENTEVENTS_ONACTIVATE         DISPID_EVMETH_ONACTIVATE
+#define DISPID_HTMLELEMENTEVENTS_ONDEACTIVATE       DISPID_EVMETH_ONDEACTIVATE
+#define DISPID_HTMLELEMENTEVENTS_ONFOCUSIN          DISPID_EVMETH_ONFOCUSIN
+#define DISPID_HTMLELEMENTEVENTS_ONFOCUSOUT         DISPID_EVMETH_ONFOCUSOUT
+
 /* IHTMLElement */
 #define DISPID_IHTMLELEMENT_SETATTRIBUTE         (DISPID_HTMLOBJECT+1)
 #define DISPID_IHTMLELEMENT_GETATTRIBUTE         (DISPID_HTMLOBJECT+2)
@@ -1824,6 +1889,14 @@
 #define DISPID_IHTMLCURRENTSTYLE_OVERFLOWY             DISPID_A_OVERFLOWY
 #define DISPID_IHTMLCURRENTSTYLE_TEXTTRANSFORM         DISPID_A_TEXTTRANSFORM
 
+/* HTMLTextContainerEvents2 */
+#define DISPID_HTMLTEXTCONTAINEREVENTS2_ONCHANGE       DISPID_EVMETH_ONCHANGE
+#define DISPID_HTMLTEXTCONTAINEREVENTS2_ONSELECT       DISPID_EVMETH_ONSELECT
+
+/* HTMLTextContainerEvents */
+#define DISPID_HTMLTEXTCONTAINEREVENTS_ONCHANGE        DISPID_EVMETH_ONCHANGE
+#define DISPID_HTMLTEXTCONTAINEREVENTS_ONSELECT        DISPID_EVMETH_ONSELECT
+
 /* IHTMLTextContainer */
 #define DISPID_IHTMLTEXTCONTAINER_CREATECONTROLRANGE  DISPID_TEXTSITE+1
 #define DISPID_IHTMLTEXTCONTAINER_SCROLLHEIGHT        DISPID_TEXTSITE+2
diff --git a/include/mshtml.idl b/include/mshtml.idl
index 97316f9..7a8521c 100644
--- a/include/mshtml.idl
+++ b/include/mshtml.idl
@@ -4473,6 +4473,214 @@
 }
 
 /*****************************************************************************
+ *    HTMLTextContainerEvents interface
+ */
+[
+    hidden,
+    uuid(1ff6aa72-5842-11cf-a707-00aa00c0098d)
+]
+dispinterface HTMLTextContainerEvents
+{
+properties:
+
+methods:
+    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)]
+    VARIANT_BOOL onhelp();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)]
+    VARIANT_BOOL onclick();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)]
+    VARIANT_BOOL ondblclick();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)]
+    VARIANT_BOOL onkeypress();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)]
+    void onkeydown();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)]
+    void onkeyup();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)]
+    void onmouseout();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)]
+    void onmouseover();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)]
+    void onmousemove();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)]
+    void onmousedown();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)]
+    void onmouseup();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)]
+    VARIANT_BOOL onselectstart();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)]
+    void onfilterchange();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)]
+    VARIANT_BOOL ondragstart();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)]
+    VARIANT_BOOL onbeforeupdate();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)]
+    void onafterupdate();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)]
+    VARIANT_BOOL onerrorupdate();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)]
+    VARIANT_BOOL onrowexit();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)]
+    void onrowenter();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)]
+    void ondatasetchanged();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)]
+    void ondataavailable();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)]
+    void ondatasetcomplete();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)]
+    void onlosecapture();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)]
+    void onpropertychange();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)]
+    void onscroll();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)]
+    void onfocus();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)]
+    void onblur();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)]
+    void onresize();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)]
+    VARIANT_BOOL ondrag();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)]
+    void ondragend();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)]
+    VARIANT_BOOL ondragenter();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)]
+    VARIANT_BOOL ondragover();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)]
+    void ondragleave();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)]
+    VARIANT_BOOL ondrop();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)]
+    VARIANT_BOOL onbeforecut();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)]
+    VARIANT_BOOL oncut();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)]
+    VARIANT_BOOL onbeforecopy();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)]
+    VARIANT_BOOL oncopy();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)]
+    VARIANT_BOOL onbeforepaste();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)]
+    VARIANT_BOOL onpaste();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)]
+    VARIANT_BOOL oncontextmenu();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)]
+    void onrowsdelete();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)]
+    void onrowsinserted();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)]
+    void oncellchange();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)]
+    void onreadystatechange();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)]
+    void onbeforeeditfocus();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONLAYOUTCOMPLETE)]
+    void onlayoutcomplete();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONPAGE)]
+    void onpage();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREDEACTIVATE)]
+    VARIANT_BOOL onbeforedeactivate();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREACTIVATE)]
+    VARIANT_BOOL onbeforeactivate();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONMOVE)]
+    void onmove();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONCONTROLSELECT)]
+    VARIANT_BOOL oncontrolselect();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONMOVESTART)]
+    VARIANT_BOOL onmovestart();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONMOVEEND)]
+    void onmoveend();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZESTART)]
+    VARIANT_BOOL onresizestart();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZEEND)]
+    void onresizeend();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEENTER)]
+    void onmouseenter();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSELEAVE)]
+    void onmouseleave();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEWHEEL)]
+    VARIANT_BOOL onmousewheel();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONACTIVATE)]
+    void onactivate();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONDEACTIVATE)]
+    void ondeactivate();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUSIN)]
+    void onfocusin();
+
+    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUSOUT)]
+    void onfocusout();
+
+    [id(DISPID_HTMLTEXTCONTAINEREVENTS_ONCHANGE)]
+    void onchange();
+
+    [id(DISPID_HTMLTEXTCONTAINEREVENTS_ONSELECT)]
+    void onselect();
+};
+
+/*****************************************************************************
  *    IHTMLDocument interface
  */
 [