Added mshtml.idl.

diff --git a/dlls/mshtml/main.c b/dlls/mshtml/main.c
index 4ab9df2..3405ec2 100644
--- a/dlls/mshtml/main.c
+++ b/dlls/mshtml/main.c
@@ -31,7 +31,7 @@
 #include "winreg.h"
 #include "ole2.h"
 
-#include "uuids.h"
+#include "mshtml.h"
 
 #include "wine/unicode.h"
 #include "wine/debug.h"
diff --git a/dlls/uuid/uuid.c b/dlls/uuid/uuid.c
index d18d546..60bab9e 100644
--- a/dlls/uuid/uuid.c
+++ b/dlls/uuid/uuid.c
@@ -55,6 +55,7 @@
 #include "activscp.h"
 #include "dispex.h"
 #include "mlang.h"
+#include "mshtml.h"
 
 /* FIXME: cguids declares GUIDs but does not define their values */
 
diff --git a/include/.cvsignore b/include/.cvsignore
index 886929f..aca0479 100644
--- a/include/.cvsignore
+++ b/include/.cvsignore
@@ -13,6 +13,7 @@
 mediaobj.h
 mlang.h
 mmstream.h
+mshtml.h
 oaidl.h
 objidl.h
 ocidl.h
diff --git a/include/Makefile.in b/include/Makefile.in
index a034f0b..db47cc2 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -18,6 +18,7 @@
 	mediaobj.idl \
 	mlang.idl \
 	mmstream.idl \
+	mshtml.idl \
 	oaidl.idl \
 	objidl.idl \
 	ocidl.idl \
@@ -156,6 +157,7 @@
 	msacmdlg.h \
 	msacmdrv.h \
 	mscat.h \
+	mshtmdid.h \
 	msi.h \
 	msiquery.h \
 	mssip.h \
diff --git a/include/mshtmdid.h b/include/mshtmdid.h
new file mode 100644
index 0000000..fe8520c
--- /dev/null
+++ b/include/mshtmdid.h
@@ -0,0 +1,885 @@
+/*
+ * Copyright 2004 Jacek Caban
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#ifndef __MSHTMDID_H__
+#define __MSHTMDID_H__
+
+#define DISPID_NORMAL_FIRST     1000
+#define DISPID_OMDOCUMENT       DISPID_NORMAL_FIRST
+#define DISPID_ANCHOR           DISPID_NORMAL_FIRST
+#define DISPID_BLOCK            DISPID_NORMAL_FIRST
+#define DISPID_BR               DISPID_NORMAL_FIRST
+#define DISPID_BGSOUND          DISPID_NORMAL_FIRST
+#define DISPID_DD               DISPID_NORMAL_FIRST
+#define DISPID_DIR              DISPID_NORMAL_FIRST
+#define DISPID_DIV              DISPID_NORMAL_FIRST
+#define DISPID_DL               DISPID_NORMAL_FIRST
+#define DISPID_DT               DISPID_NORMAL_FIRST
+#define DISPID_EFONT            DISPID_NORMAL_FIRST
+#define DISPID_FORM             DISPID_NORMAL_FIRST
+#define DISPID_HEADER           DISPID_NORMAL_FIRST
+#define DISPID_HEDELEMS         DISPID_NORMAL_FIRST
+#define DISPID_HR               DISPID_NORMAL_FIRST
+#define DISPID_LABEL            DISPID_NORMAL_FIRST
+#define DISPID_LI               DISPID_NORMAL_FIRST
+#define DISPID_IMGBASE          DISPID_NORMAL_FIRST
+#define DISPID_MENU             DISPID_NORMAL_FIRST
+#define DISPID_OL               DISPID_NORMAL_FIRST
+#define DISPID_PARA             DISPID_NORMAL_FIRST
+#define DISPID_SELECT           DISPID_NORMAL_FIRST
+#define DISPID_SELECTOBJ        DISPID_NORMAL_FIRST
+#define DISPID_TABLE            DISPID_NORMAL_FIRST
+#define DISPID_TEXTSITE         DISPID_NORMAL_FIRST
+#define DISPID_UL               DISPID_NORMAL_FIRST
+#define DISPID_PHRASE           DISPID_NORMAL_FIRST
+#define DISPID_UNKNOWNPDL       DISPID_NORMAL_FIRST
+#define DISPID_COMMENTPDL       DISPID_NORMAL_FIRST
+#define DISPID_RANGE            DISPID_NORMAL_FIRST
+#define DISPID_SELECTION        DISPID_NORMAL_FIRST
+#define DISPID_OPTION           DISPID_NORMAL_FIRST
+#define DISPID_RANGE            DISPID_NORMAL_FIRST
+#define DISPID_SELECTION        DISPID_NORMAL_FIRST
+#define DISPID_OPTION           DISPID_NORMAL_FIRST
+#define DISPID_RANGE            DISPID_NORMAL_FIRST
+#define DISPID_SELECTION        DISPID_NORMAL_FIRST
+#define DISPID_OPTION           DISPID_NORMAL_FIRST
+#define DISPID_RANGE            DISPID_NORMAL_FIRST
+#define DISPID_SELECTION        DISPID_NORMAL_FIRST
+#define DISPID_OPTION           DISPID_NORMAL_FIRST
+#define DISPID_RANGE            DISPID_NORMAL_FIRST
+#define DISPID_SELECTION        DISPID_NORMAL_FIRST
+#define DISPID_OPTION           DISPID_NORMAL_FIRST
+#define DISPID_MAP              DISPID_NORMAL_FIRST
+#define DISPID_AREA             DISPID_NORMAL_FIRST
+#define DISPID_PARAM            DISPID_NORMAL_FIRST
+#define DISPID_TABLESECTION     DISPID_NORMAL_FIRST
+#define DISPID_TABLEROW         DISPID_NORMAL_FIRST
+#define DISPID_TABLECOL         DISPID_NORMAL_FIRST
+#define DISPID_SCRIPT           DISPID_NORMAL_FIRST
+#define DISPID_STYLESHEET       DISPID_NORMAL_FIRST
+#define DISPID_STYLERULE        DISPID_NORMAL_FIRST
+#define DISPID_STYLESHEETS_COL  DISPID_NORMAL_FIRST
+#define DISPID_STYLERULES_COL   DISPID_NORMAL_FIRST
+#define DISPID_MIMETYPES_COL    DISPID_NORMAL_FIRST
+#define DISPID_PLUGINS_COL      DISPID_NORMAL_FIRST
+#define DISPID_2D               DISPID_NORMAL_FIRST
+#define DISPID_OMWINDOW         DISPID_NORMAL_FIRST
+#define DISPID_EVENTOBJ         DISPID_NORMAL_FIRST
+#define DISPID_OLESITE          DISPID_NORMAL_FIRST
+#define DISPID_FRAMESET         DISPID_NORMAL_FIRST
+#define DISPID_LINK             DISPID_NORMAL_FIRST
+#define DISPID_STYLEELEMENT     DISPID_NORMAL_FIRST
+#define DISPID_FILTERS          DISPID_NORMAL_FIRST
+#define DISPID_TABLESECTION     DISPID_NORMAL_FIRST
+#define DISPID_OMDOCUMENT       DISPID_NORMAL_FIRST
+#define DISPID_SCREEN           DISPID_NORMAL_FIRST
+
+#define DISPID_COLLECTION      (DISPID_NORMAL_FIRST+500)
+#define DISPID_IMG             (DISPID_IMGBASE+1000)
+#define DISPID_INPUTIMAGE      (DISPID_IMGBASE+1000)
+#define DISPID_INPUT           (DISPID_TEXTSITE+1000)
+#define DISPID_TABLECELL       (DISPID_TEXTSITE+1000)
+#define DISPID_1D              (DISPID_TEXTSITE+1000)
+#define DISPID_BODY            (DISPID_TEXTSITE+1000)
+#define DISPID_INPUTTEXTBASE   (DISPID_INPUT+1000)
+#define DISPID_INPUTTEXT       (DISPID_INPUTTEXTBASE+1000)
+#define DISPID_TEXTAREA        (DISPID_INPUTTEXT+1000)
+#define DISPID_MARQUEE         (DISPID_TEXTAREA+1000)
+
+#define DISPID_XOBJ_MIN       0x80010000
+#define DISPID_XOBJ_MAX       0x8001FFFF
+#define DISPID_XOBJ_BASE      DISPID_XOBJ_MIN
+#define DISPID_HTMLOBJECT     (DISPID_XOBJ_BASE+500)
+#define DISPID_ELEMENT        (DISPID_HTMLOBJECT+500)
+#define DISPID_SITE           (DISPID_ELEMENT+1000)
+#define DISPID_OBJECT         (DISPID_SITE+1000)
+#define DISPID_STYLE          (DISPID_OBJECT+1000)
+#define DISPID_ATTRS          (DISPID_STYLE+1000)
+#define DISPID_EVENTS         (DISPID_ATTRS+1000)
+#define DISPID_XOBJ_EXPANDO   (DISPID_EVENTS+1000)
+#define DISPID_XOBJ_ORDINAL   (DISPID_XOBJ_EXPANDO+1000)
+
+#define DISPID_WINDOW      1
+#define DISPID_HISTORY     1
+#define DISPID_LOCATION    1
+#define DISPID_NAVIGATOR   1
+
+#define STDPROPID_XOBJ_NAME              (DISPID_XOBJ_BASE+0)
+#define STDPROPID_XOBJ_INDEX             (DISPID_XOBJ_BASE+1)
+#define STDPROPID_XOBJ_BASEHREF          (DISPID_XOBJ_BASE+2)
+#define STDPROPID_XOBJ_LEFT              (DISPID_XOBJ_BASE+3)
+#define STDPROPID_XOBJ_TOP               (DISPID_XOBJ_BASE+4)
+#define STDPROPID_XOBJ_WIDTH             (DISPID_XOBJ_BASE+5)
+#define STDPROPID_XOBJ_HEIGHT            (DISPID_XOBJ_BASE+6)
+#define STDPROPID_XOBJ_VISIBLE           (DISPID_XOBJ_BASE+7)
+#define STDPROPID_XOBJ_PARENT            (DISPID_XOBJ_BASE+8)
+#define STDPROPID_XOBJ_DRAGMODE          (DISPID_XOBJ_BASE+9)
+#define STDPROPID_XOBJ_DRAGICON          (DISPID_XOBJ_BASE+10)
+#define STDPROPID_XOBJ_TAG               (DISPID_XOBJ_BASE+11)
+#define STDPROPID_XOBJ_TABSTOP           (DISPID_XOBJ_BASE+14)
+#define STDPROPID_XOBJ_TABINDEX          (DISPID_XOBJ_BASE+15)
+#define STDPROPID_XOBJ_HELPCONTEXTID     (DISPID_XOBJ_BASE+50)
+#define STDPROPID_XOBJ_DEFAULT           (DISPID_XOBJ_BASE+55)
+#define STDPROPID_XOBJ_CANCEL            (DISPID_XOBJ_BASE+56)
+#define STDPROPID_XOBJ_LEFTNORUN         (DISPID_XOBJ_BASE+57)
+#define STDPROPID_XOBJ_TOPNORUN          (DISPID_XOBJ_BASE+58)
+#define STDPROPID_XOBJ_ALIGNPERSIST      (DISPID_XOBJ_BASE+60)
+#define STDPROPID_XOBJ_LINKTIMEOUT       (DISPID_XOBJ_BASE+61)
+#define STDPROPID_XOBJ_LINKTOPIC         (DISPID_XOBJ_BASE+62)
+#define STDPROPID_XOBJ_LINKITEM          (DISPID_XOBJ_BASE+63)
+#define STDPROPID_XOBJ_LINKMODE          (DISPID_XOBJ_BASE+64)
+#define STDPROPID_XOBJ_DATACHANGED       (DISPID_XOBJ_BASE+65)
+#define STDPROPID_XOBJ_DATAFIELD         (DISPID_XOBJ_BASE+66)
+#define STDPROPID_XOBJ_DATASOURCE        (DISPID_XOBJ_BASE+67)
+#define STDPROPID_XOBJ_WHATSTHISHELPID   (DISPID_XOBJ_BASE+68)
+#define STDPROPID_XOBJ_CONTROLTIPTEXT    (DISPID_XOBJ_BASE+69)
+#define STDPROPID_XOBJ_STATUSBARTEXT     (DISPID_XOBJ_BASE+70)
+#define STDPROPID_XOBJ_APPLICATION       (DISPID_XOBJ_BASE+71)
+#define STDPROPID_XOBJ_BLOCKALIGN        (DISPID_XOBJ_BASE+72)
+#define STDPROPID_XOBJ_CONTROLALIGN      (DISPID_XOBJ_BASE+73)
+#define STDPROPID_XOBJ_STYLE             (DISPID_XOBJ_BASE+74)
+#define STDPROPID_XOBJ_COUNT             (DISPID_XOBJ_BASE+75)
+#define STDPROPID_XOBJ_DISABLED          (DISPID_XOBJ_BASE+76)
+
+#define DISPID_A_FIRST                       DISPID_ATTRS
+#define DISPID_A_BACKGROUNDIMAGE             (DISPID_A_FIRST+1)
+#define DISPID_A_COLOR                       (DISPID_A_FIRST+2)
+#define DISPID_A_TEXTTRANSFORM               (DISPID_A_FIRST+4)
+#define DISPID_A_NOWRAP                      (DISPID_A_FIRST+5)
+#define DISPID_A_LINEHEIGHT                  (DISPID_A_FIRST+6)
+#define DISPID_A_TEXTINDENT                  (DISPID_A_FIRST+7)
+#define DISPID_A_LETTERSPACING               (DISPID_A_FIRST+8)
+#define DISPID_A_LANG                        (DISPID_A_FIRST+9)
+#define DISPID_A_OVERFLOW                    (DISPID_A_FIRST+10)
+#define DISPID_A_PADDING                     (DISPID_A_FIRST+11)
+#define DISPID_A_PADDINGTOP                  (DISPID_A_FIRST+12)
+#define DISPID_A_PADDINGRIGHT                (DISPID_A_FIRST+13)
+#define DISPID_A_PADDINGBOTTOM               (DISPID_A_FIRST+14)
+#define DISPID_A_PADDINGLEFT                 (DISPID_A_FIRST+15)
+#define DISPID_A_CLEAR                       (DISPID_A_FIRST+16)
+#define DISPID_A_LISTTYPE                    (DISPID_A_FIRST+17)
+#define DISPID_A_FONTFACE                    (DISPID_A_FIRST+18)
+#define DISPID_A_FONTSIZE                    (DISPID_A_FIRST+19)
+#define DISPID_A_TEXTDECORATIONLINETHROUGH   (DISPID_A_FIRST+20)
+#define DISPID_A_TEXTDECORATIONUNDERLINE     (DISPID_A_FIRST+21)
+#define DISPID_A_TEXTDECORATIONBLINK         (DISPID_A_FIRST+22)
+#define DISPID_A_TEXTDECORATIONNONE          (DISPID_A_FIRST+23)
+#define DISPID_A_FONTSTYLE                   (DISPID_A_FIRST+24)
+#define DISPID_A_FONTVARIANT                 (DISPID_A_FIRST+25)
+#define DISPID_A_BASEFONT                    (DISPID_A_FIRST+26)
+#define DISPID_A_FONTWEIGHT                  (DISPID_A_FIRST+27)
+#define DISPID_A_TABLEBORDERCOLOR            (DISPID_A_FIRST+28)
+#define DISPID_A_TABLEBORDERCOLORLIGHT       (DISPID_A_FIRST+29)
+#define DISPID_A_TABLEBORDERCOLORDARK        (DISPID_A_FIRST+30)
+#define DISPID_A_TABLEVALIGN                 (DISPID_A_FIRST+31)
+#define DISPID_A_BACKGROUND                  (DISPID_A_FIRST+32)
+#define DISPID_A_BACKGROUNDPOSX              (DISPID_A_FIRST+33)
+#define DISPID_A_BACKGROUNDPOSY              (DISPID_A_FIRST+34)
+#define DISPID_A_TEXTDECORATION              (DISPID_A_FIRST+35)
+#define DISPID_A_MARGIN                      (DISPID_A_FIRST+36)
+#define DISPID_A_MARGINTOP                   (DISPID_A_FIRST+37)
+#define DISPID_A_MARGINRIGHT                 (DISPID_A_FIRST+38)
+#define DISPID_A_MARGINBOTTOM                (DISPID_A_FIRST+39)
+#define DISPID_A_MARGINLEFT                  (DISPID_A_FIRST+40)
+#define DISPID_A_FONT                        (DISPID_A_FIRST+41)
+#define DISPID_A_FONTSIZEKEYWORD             (DISPID_A_FIRST+42)
+#define DISPID_A_FONTSIZECOMBINE             (DISPID_A_FIRST+43)
+#define DISPID_A_BACKGROUNDREPEAT            (DISPID_A_FIRST+44)
+#define DISPID_A_BACKGROUNDATTACHMENT        (DISPID_A_FIRST+45)
+#define DISPID_A_BACKGROUNDPOSITION          (DISPID_A_FIRST+46)
+#define DISPID_A_WORDSPACING                 (DISPID_A_FIRST+47)
+#define DISPID_A_VERTICALALIGN               (DISPID_A_FIRST+48)
+#define DISPID_A_BORDER                      (DISPID_A_FIRST+49)
+#define DISPID_A_BORDERTOP                   (DISPID_A_FIRST+50)
+#define DISPID_A_BORDERRIGHT                 (DISPID_A_FIRST+51)
+#define DISPID_A_BORDERBOTTOM                (DISPID_A_FIRST+52)
+#define DISPID_A_BORDERLEFT                  (DISPID_A_FIRST+53)
+#define DISPID_A_BORDERCOLOR                 (DISPID_A_FIRST+54)
+#define DISPID_A_BORDERTOPCOLOR              (DISPID_A_FIRST+55)
+#define DISPID_A_BORDERRIGHTCOLOR            (DISPID_A_FIRST+56)
+#define DISPID_A_BORDERBOTTOMCOLOR           (DISPID_A_FIRST+57)
+#define DISPID_A_BORDERLEFTCOLOR             (DISPID_A_FIRST+58)
+#define DISPID_A_BORDERWIDTH                 (DISPID_A_FIRST+59)
+#define DISPID_A_BORDERTOPWIDTH              (DISPID_A_FIRST+60)
+#define DISPID_A_BORDERRIGHTWIDTH            (DISPID_A_FIRST+61)
+#define DISPID_A_BORDERBOTTOMWIDTH           (DISPID_A_FIRST+62)
+#define DISPID_A_BORDERLEFTWIDTH             (DISPID_A_FIRST+63)
+#define DISPID_A_BORDERSTYLE                 (DISPID_A_FIRST+64)
+#define DISPID_A_BORDERTOPSTYLE              (DISPID_A_FIRST+65)
+#define DISPID_A_BORDERRIGHTSTYLE            (DISPID_A_FIRST+66)
+#define DISPID_A_BORDERBOTTOMSTYLE           (DISPID_A_FIRST+67)
+#define DISPID_A_BORDERLEFTSTYLE             (DISPID_A_FIRST+68)
+#define DISPID_A_TEXTDECORATIONOVERLINE      (DISPID_A_FIRST+69)
+#define DISPID_A_FLOAT                       (DISPID_A_FIRST+70)
+#define DISPID_A_DISPLAY                     (DISPID_A_FIRST+71)
+#define DISPID_A_LISTSTYLETYPE               (DISPID_A_FIRST+72)
+#define DISPID_A_LISTSTYLEPOSITION           (DISPID_A_FIRST+73)
+#define DISPID_A_LISTSTYLEIMAGE              (DISPID_A_FIRST+74)
+#define DISPID_A_LISTSTYLE                   (DISPID_A_FIRST+75)
+#define DISPID_A_WHITESPACE                  (DISPID_A_FIRST+76)
+#define DISPID_A_PAGEBREAKBEFORE             (DISPID_A_FIRST+77)
+#define DISPID_A_PAGEBREAKAFTER              (DISPID_A_FIRST+78)
+#define DISPID_A_SCROLL                      (DISPID_A_FIRST+79)
+#define DISPID_A_VISIBILITY                  (DISPID_A_FIRST+80)
+#define DISPID_A_HIDDEN                      (DISPID_A_FIRST+81)
+#define DISPID_A_FILTER                      (DISPID_A_FIRST+82)
+#define DISPID_DEFAULTVALUE                  (DISPID_A_FIRST+83)
+#define DISPID_A_POSITION                    (DISPID_A_FIRST+90)
+#define DISPID_A_ZINDEX                      (DISPID_A_FIRST+91)
+#define DISPID_A_CLIP                        (DISPID_A_FIRST+92)
+#define DISPID_A_CLIPRECTTOP                 (DISPID_A_FIRST+93)
+#define DISPID_A_CLIPRECTRIGHT               (DISPID_A_FIRST+94)
+#define DISPID_A_CLIPRECTBOTTOM              (DISPID_A_FIRST+95)
+#define DISPID_A_CLIPRECTLEFT                (DISPID_A_FIRST+96)
+#define DISPID_A_FONTFACESRC                 (DISPID_A_FIRST+97)
+#define DISPID_A_STYLETEXT                   (DISPID_A_FIRST+99)
+#define DISPID_A_LANGUAGE                    (DISPID_A_FIRST+100)
+#define DISPID_A_VALUE                       (DISPID_A_FIRST+101)
+#define DISPID_A_CURSOR                      (DISPID_A_FIRST+102)
+
+/* events */
+#define DISPID_EVPROP_ONMOUSEOVER          (DISPID_EVENTS+0)
+#define DISPID_EVPROP_ONMOUSEOUT           (DISPID_EVENTS+1)
+#define DISPID_EVPROP_ONMOUSEDOWN          (DISPID_EVENTS+2)
+#define DISPID_EVPROP_ONMOUSEUP            (DISPID_EVENTS+3)
+#define DISPID_EVPROP_ONMOUSEMOVE          (DISPID_EVENTS+4)
+#define DISPID_EVPROP_ONKEYDOWN            (DISPID_EVENTS+5)
+#define DISPID_EVPROP_ONKEYUP              (DISPID_EVENTS+6)
+#define DISPID_EVPROP_ONKEYPRESS           (DISPID_EVENTS+7)
+#define DISPID_EVPROP_ONCLICK              (DISPID_EVENTS+8)
+#define DISPID_EVPROP_ONDBLCLICK           (DISPID_EVENTS+9)
+#define DISPID_EVPROP_ONSELECT             (DISPID_EVENTS+10)
+#define DISPID_EVPROP_ONSUBMIT             (DISPID_EVENTS+11)
+#define DISPID_EVPROP_ONRESET              (DISPID_EVENTS+12)
+#define DISPID_EVPROP_ONHELP               (DISPID_EVENTS+13)
+#define DISPID_EVPROP_ONFOCUS              (DISPID_EVENTS+14)
+#define DISPID_EVPROP_ONBLUR               (DISPID_EVENTS+15)
+#define DISPID_EVPROP_ONROWEXIT            (DISPID_EVENTS+18)
+#define DISPID_EVPROP_ONROWENTER           (DISPID_EVENTS+19)
+#define DISPID_EVPROP_ONBOUNCE             (DISPID_EVENTS+20)
+#define DISPID_EVPROP_ONBEFOREUPDATE       (DISPID_EVENTS+21)
+#define DISPID_EVPROP_ONAFTERUPDATE        (DISPID_EVENTS+22)
+#define DISPID_EVPROP_ONBEFOREDRAGOVER     (DISPID_EVENTS+23)
+#define DISPID_EVPROP_ONBEFOREDROPORPASTE  (DISPID_EVENTS+24)
+#define DISPID_EVPROP_ONREADYSTATECHANGE   (DISPID_EVENTS+25)
+#define DISPID_EVPROP_ONFINISH             (DISPID_EVENTS+26)
+#define DISPID_EVPROP_ONSTART              (DISPID_EVENTS+27)
+#define DISPID_EVPROP_ONABORT              (DISPID_EVENTS+28)
+#define DISPID_EVPROP_ONERROR              (DISPID_EVENTS+29)
+#define DISPID_EVPROP_ONCHANGE             (DISPID_EVENTS+30)
+#define DISPID_EVPROP_ONSCROLL             (DISPID_EVENTS+31)
+#define DISPID_EVPROP_ONLOAD               (DISPID_EVENTS+32)
+#define DISPID_EVPROP_ONUNLOAD             (DISPID_EVENTS+33)
+#define DISPID_EVPROP_ONLAYOUT             (DISPID_EVENTS+34)
+#define DISPID_EVPROP_ONDRAGSTART          (DISPID_EVENTS+35)
+#define DISPID_EVPROP_ONRESIZE             (DISPID_EVENTS+36)
+#define DISPID_EVPROP_ONSELECTSTART        (DISPID_EVENTS+37)
+#define DISPID_EVPROP_ONERRORUPDATE        (DISPID_EVENTS+38)
+#define DISPID_EVPROP_ONBEFOREUNLOAD       (DISPID_EVENTS+39)
+#define DISPID_EVPROP_ONDATASETCHANGED     (DISPID_EVENTS+40)
+#define DISPID_EVPROP_ONDATAAVAILABLE      (DISPID_EVENTS+41)
+#define DISPID_EVPROP_ONDATASETCOMPLETE    (DISPID_EVENTS+42)
+#define DISPID_EVPROP_ONFILTER             (DISPID_EVENTS+43)
+#define DISPID_EVPROP_ONCHANGEFOCUS        (DISPID_EVENTS+44)
+#define DISPID_EVPROP_ONCHANGEBLUR         (DISPID_EVENTS+45)
+
+/* IHTMLDocument */
+#define DISPID_IHTMLDOCUMENT_SCRIPT    (DISPID_OMDOCUMENT+1)
+
+/* IHTMLDocument2 */
+#define DISPID_IHTMLDOCUMENT2_ALL                     (DISPID_OMDOCUMENT+3)
+#define DISPID_IHTMLDOCUMENT2_BODY                    (DISPID_OMDOCUMENT+4)
+#define DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT           (DISPID_OMDOCUMENT+5)
+#define DISPID_IHTMLDOCUMENT2_APPLETS                 (DISPID_OMDOCUMENT+8)
+#define DISPID_IHTMLDOCUMENT2_ANCHORS                 (DISPID_OMDOCUMENT+7)
+#define DISPID_IHTMLDOCUMENT2_LINKS                   (DISPID_OMDOCUMENT+9)
+#define DISPID_IHTMLDOCUMENT2_FORMS                   (DISPID_OMDOCUMENT+10)
+#define DISPID_IHTMLDOCUMENT2_IMAGES                  (DISPID_OMDOCUMENT+11)
+#define DISPID_IHTMLDOCUMENT2_TITLE                   (DISPID_OMDOCUMENT+12)
+#define DISPID_IHTMLDOCUMENT2_SCRIPTS                 (DISPID_OMDOCUMENT+13)
+#define DISPID_IHTMLDOCUMENT2_DESIGNMODE              (DISPID_OMDOCUMENT+14)
+#define DISPID_IHTMLDOCUMENT2_EMBEDS                  (DISPID_OMDOCUMENT+15)
+#define DISPID_IHTMLDOCUMENT2_SELECTION               (DISPID_OMDOCUMENT+17)
+#define DISPID_IHTMLDOCUMENT2_READYSTATE              (DISPID_OMDOCUMENT+18)
+#define DISPID_IHTMLDOCUMENT2_FRAMES                  (DISPID_OMDOCUMENT+19)
+#define DISPID_IHTMLDOCUMENT2_PLUGINS                 (DISPID_OMDOCUMENT+21)
+#define DISPID_IHTMLDOCUMENT2_ALINKCOLOR              (DISPID_OMDOCUMENT+22)
+#define DISPID_IHTMLDOCUMENT2_VLINKCOLOR              (DISPID_OMDOCUMENT+23)
+#define DISPID_IHTMLDOCUMENT2_LINKCOLOR               (DISPID_OMDOCUMENT+24)
+#define DISPID_IHTMLDOCUMENT2_URL                     (DISPID_OMDOCUMENT+25)
+#define DISPID_IHTMLDOCUMENT2_LOCATION                (DISPID_OMDOCUMENT+26)
+#define DISPID_IHTMLDOCUMENT2_REFERRER                (DISPID_OMDOCUMENT+27)
+#define DISPID_IHTMLDOCUMENT2_LASTMODIFIED            (DISPID_OMDOCUMENT+28)
+#define DISPID_IHTMLDOCUMENT2_DOMAIN                  (DISPID_OMDOCUMENT+29)
+#define DISPID_IHTMLDOCUMENT2_COOKIE                  (DISPID_OMDOCUMENT+30)
+#define DISPID_IHTMLDOCUMENT2_EXPANDO                 (DISPID_OMDOCUMENT+31)
+#define DISPID_IHTMLDOCUMENT2_CHARSET                 (DISPID_OMDOCUMENT+32)
+#define DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET          (DISPID_OMDOCUMENT+33)
+#define DISPID_IHTMLDOCUMENT2_PARENTWINDOW            (DISPID_OMDOCUMENT+34)
+#define DISPID_IHTMLDOCUMENT2_MIMETYPE                (DISPID_OMDOCUMENT+41)
+#define DISPID_IHTMLDOCUMENT2_FILESIZE                (DISPID_OMDOCUMENT+42)
+#define DISPID_IHTMLDOCUMENT2_FILECREATEDDATE         (DISPID_OMDOCUMENT+43)
+#define DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE        (DISPID_OMDOCUMENT+44)
+#define DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE         (DISPID_OMDOCUMENT+45)
+#define DISPID_IHTMLDOCUMENT2_SECURITY                (DISPID_OMDOCUMENT+46)
+#define DISPID_IHTMLDOCUMENT2_PROTOCOL                (DISPID_OMDOCUMENT+47)
+#define DISPID_IHTMLDOCUMENT2_NAMEPROP                (DISPID_OMDOCUMENT+48)
+#define DISPID_IHTMLDOCUMENT2_WRITE                   (DISPID_OMDOCUMENT+54)
+#define DISPID_IHTMLDOCUMENT2_WRITELN                 (DISPID_OMDOCUMENT+55)
+#define DISPID_IHTMLDOCUMENT2_OPEN                    (DISPID_OMDOCUMENT+56)
+#define DISPID_IHTMLDOCUMENT2_CLOSE                   (DISPID_OMDOCUMENT+57)
+#define DISPID_IHTMLDOCUMENT2_CLEAR                   (DISPID_OMDOCUMENT+58)
+#define DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED   (DISPID_OMDOCUMENT+59)
+#define DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED     (DISPID_OMDOCUMENT+60)
+#define DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE       (DISPID_OMDOCUMENT+61)
+#define DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM    (DISPID_OMDOCUMENT+62)
+#define DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT        (DISPID_OMDOCUMENT+63)
+#define DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE       (DISPID_OMDOCUMENT+64)
+#define DISPID_IHTMLDOCUMENT2_EXECCOMMAND             (DISPID_OMDOCUMENT+65)
+#define DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP     (DISPID_OMDOCUMENT+66)
+#define DISPID_IHTMLDOCUMENT2_CREATEELEMENT           (DISPID_OMDOCUMENT+67)
+#define DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT        (DISPID_OMDOCUMENT+68)
+#define DISPID_IHTMLDOCUMENT2_STYLESHEETS             (DISPID_OMDOCUMENT+69)
+#define DISPID_IHTMLDOCUMENT2_TOSTRING                (DISPID_OMDOCUMENT+70)
+#define DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET        (DISPID_OMDOCUMENT+71)
+#define DISPID_IHTMLDOCUMENT2_ONHELP                  DISPID_EVPROP_ONHELP
+#define DISPID_IHTMLDOCUMENT2_ONCLICK                 DISPID_EVPROP_ONCLICK
+#define DISPID_IHTMLDOCUMENT2_ONDBLCLICK              DISPID_EVPROP_ONDBLCLICK
+#define DISPID_IHTMLDOCUMENT2_ONKEYUP                 DISPID_EVPROP_ONKEYUP
+#define DISPID_IHTMLDOCUMENT2_ONKEYDOWN               DISPID_EVPROP_ONKEYDOWN
+#define DISPID_IHTMLDOCUMENT2_ONKEYPRESS              DISPID_EVPROP_ONKEYPRESS
+#define DISPID_IHTMLDOCUMENT2_ONMOUSEUP               DISPID_EVPROP_ONMOUSEUP
+#define DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN             DISPID_EVPROP_ONMOUSEDOWN
+#define DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE             DISPID_EVPROP_ONMOUSEMOVE
+#define DISPID_IHTMLDOCUMENT2_ONMOUSEOUT              DISPID_EVPROP_ONMOUSEOUT
+#define DISPID_IHTMLDOCUMENT2_ONMOUSEOVER             DISPID_EVPROP_ONMOUSEOVER
+#define DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE      DISPID_EVPROP_ONREADYSTATECHANGE
+#define DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE           DISPID_EVPROP_ONAFTERUPDATE
+#define DISPID_IHTMLDOCUMENT2_ONROWEXIT               DISPID_EVPROP_ONROWEXIT
+#define DISPID_IHTMLDOCUMENT2_ONROWENTER              DISPID_EVPROP_ONROWENTER
+#define DISPID_IHTMLDOCUMENT2_ONDRAGSTART             DISPID_EVPROP_ONDRAGSTART
+#define DISPID_IHTMLDOCUMENT2_ONSELECTSTART           DISPID_EVPROP_ONSELECTSTART
+#define DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE          DISPID_EVPROP_ONBEFOREUPDATE
+#define DISPID_IHTMLDOCUMENT2_ONERRORUPDATE           DISPID_EVPROP_ONERRORUPDATE
+#define DISPID_IHTMLDOCUMENT2_BGCOLOR                 DISPID_BACKCOLOR
+#define DISPID_IHTMLDOCUMENT2_FGCOLOR                 DISPID_A_COLOR
+
+/* IHTMLElementCollection */
+#define DISPID_IHTMLELEMENTCOLLECTION_LENGTH     DISPID_COLLECTION
+#define DISPID_IHTMLELEMENTCOLLECTION_TOSTRING   (DISPID_COLLECTION+1)
+#define DISPID_IHTMLELEMENTCOLLECTION_TAGS       (DISPID_COLLECTION+2)
+#define DISPID_IHTMLELEMENTCOLLECTION__NEWENUM   DISPID_NEWENUM
+#define DISPID_IHTMLELEMENTCOLLECTION_ITEM       DISPID_VALUE
+
+/* IHTMLElement */
+#define DISPID_IHTMLELEMENT_SETATTRIBUTE         (DISPID_HTMLOBJECT+1)
+#define DISPID_IHTMLELEMENT_GETATTRIBUTE         (DISPID_HTMLOBJECT+2)
+#define DISPID_IHTMLELEMENT_REMOVEATTRIBUTE      (DISPID_HTMLOBJECT+3)
+#define DISPID_IHTMLELEMENT_CLASSNAME            (DISPID_ELEMENT+1)
+#define DISPID_IHTMLELEMENT_ID                   (DISPID_ELEMENT+2)
+#define DISPID_IHTMLELEMENT_TAGNAME              (DISPID_ELEMENT+4)
+#define DISPID_IHTMLELEMENT_OFFSETLEFT           (DISPID_ELEMENT+8)
+#define DISPID_IHTMLELEMENT_OFFSETTOP            (DISPID_ELEMENT+9)
+#define DISPID_IHTMLELEMENT_OFFSETWIDTH          (DISPID_ELEMENT+10)
+#define DISPID_IHTMLELEMENT_OFFSETHEIGHT         (DISPID_ELEMENT+11)
+#define DISPID_IHTMLELEMENT_OFFSETPARENT         (DISPID_ELEMENT+12)
+#define DISPID_IHTMLELEMENT_DOCUMENT             (DISPID_ELEMENT+18)
+#define DISPID_IHTMLELEMENT_SCROLLINTOVIEW       (DISPID_ELEMENT+19)
+#define DISPID_IHTMLELEMENT_CONTAINS             (DISPID_ELEMENT+20)
+#define DISPID_IHTMLELEMENT_SOURCEINDEX          (DISPID_ELEMENT+24)
+#define DISPID_IHTMLELEMENT_RECORDNUMBER         (DISPID_ELEMENT+25)
+#define DISPID_IHTMLELEMENT_INNERHTML            (DISPID_ELEMENT+26)
+#define DISPID_IHTMLELEMENT_INNERTEXT            (DISPID_ELEMENT+27)
+#define DISPID_IHTMLELEMENT_OUTERHTML            (DISPID_ELEMENT+28)
+#define DISPID_IHTMLELEMENT_OUTERTEXT            (DISPID_ELEMENT+29)
+#define DISPID_IHTMLELEMENT_INSERTADJACENTHTML   (DISPID_ELEMENT+30)
+#define DISPID_IHTMLELEMENT_INSERTADJACENTTEXT   (DISPID_ELEMENT+31)
+#define DISPID_IHTMLELEMENT_PARENTTEXTEDIT       (DISPID_ELEMENT+32)
+#define DISPID_IHTMLELEMENT_ISTEXTEDIT           (DISPID_ELEMENT+34)
+#define DISPID_IHTMLELEMENT_CLICK                (DISPID_ELEMENT+33)
+#define DISPID_IHTMLELEMENT_FILTERS              (DISPID_ELEMENT+35)
+#define DISPID_IHTMLELEMENT_TOSTRING             (DISPID_ELEMENT+36)
+#define DISPID_IHTMLELEMENT_CHILDREN             (DISPID_ELEMENT+37)
+#define DISPID_IHTMLELEMENT_ALL                  (DISPID_ELEMENT+38)
+#define DISPID_IHTMLELEMENT_PARENTELEMENT        STDPROPID_XOBJ_PARENT
+#define DISPID_IHTMLELEMENT_STYLE                STDPROPID_XOBJ_STYLE
+#define DISPID_IHTMLELEMENT_ONHELP               DISPID_EVPROP_ONHELP
+#define DISPID_IHTMLELEMENT_ONCLICK              DISPID_EVPROP_ONCLICK
+#define DISPID_IHTMLELEMENT_ONDBLCLICK           DISPID_EVPROP_ONDBLCLICK
+#define DISPID_IHTMLELEMENT_ONKEYDOWN            DISPID_EVPROP_ONKEYDOWN
+#define DISPID_IHTMLELEMENT_ONKEYUP              DISPID_EVPROP_ONKEYUP
+#define DISPID_IHTMLELEMENT_ONKEYPRESS           DISPID_EVPROP_ONKEYPRESS
+#define DISPID_IHTMLELEMENT_ONMOUSEOUT           DISPID_EVPROP_ONMOUSEOUT
+#define DISPID_IHTMLELEMENT_ONMOUSEOVER          DISPID_EVPROP_ONMOUSEOVER
+#define DISPID_IHTMLELEMENT_ONMOUSEMOVE          DISPID_EVPROP_ONMOUSEMOVE
+#define DISPID_IHTMLELEMENT_ONMOUSEDOWN          DISPID_EVPROP_ONMOUSEDOWN
+#define DISPID_IHTMLELEMENT_ONMOUSEUP            DISPID_EVPROP_ONMOUSEUP
+#define DISPID_IHTMLELEMENT_TITLE                STDPROPID_XOBJ_CONTROLTIPTEXT
+#define DISPID_IHTMLELEMENT_LANGUAGE             DISPID_A_LANGUAGE
+#define DISPID_IHTMLELEMENT_ONSELECTSTART        DISPID_EVPROP_ONSELECTSTART
+#define DISPID_IHTMLELEMENT_LANG                 DISPID_A_LANG
+#define DISPID_IHTMLELEMENT_ONDRAGSTART          DISPID_EVPROP_ONDRAGSTART
+#define DISPID_IHTMLELEMENT_ONBEFOREUPDATE       DISPID_EVPROP_ONBEFOREUPDATE
+#define DISPID_IHTMLELEMENT_ONAFTERUPDATE        DISPID_EVPROP_ONAFTERUPDATE
+#define DISPID_IHTMLELEMENT_ONERRORUPDATE        DISPID_EVPROP_ONERRORUPDATE
+#define DISPID_IHTMLELEMENT_ONROWEXIT            DISPID_EVPROP_ONROWEXIT
+#define DISPID_IHTMLELEMENT_ONROWENTER           DISPID_EVPROP_ONROWENTER
+#define DISPID_IHTMLELEMENT_ONDATASETCHANGED     DISPID_EVPROP_ONDATASETCHANGED
+#define DISPID_IHTMLELEMENT_ONDATAAVAILABLE      DISPID_EVPROP_ONDATAAVAILABLE
+#define DISPID_IHTMLELEMENT_ONDATASETCOMPLETE    DISPID_EVPROP_ONDATASETCOMPLETE
+#define DISPID_IHTMLELEMENT_ONFILTERCHANGE       DISPID_EVPROP_ONFILTER
+
+/* IHTMLStyle */
+#define DISPID_IHTMLSTYLE_PIXELTOP                    DISPID_STYLE
+#define DISPID_IHTMLSTYLE_PIXELLEFT                   (DISPID_STYLE+1)
+#define DISPID_IHTMLSTYLE_PIXELWIDTH                  (DISPID_STYLE+2)
+#define DISPID_IHTMLSTYLE_PIXELHEIGHT                 (DISPID_STYLE+3)
+#define DISPID_IHTMLSTYLE_POSTOP                      (DISPID_STYLE+4)
+#define DISPID_IHTMLSTYLE_POSLEFT                     (DISPID_STYLE+5)
+#define DISPID_IHTMLSTYLE_POSWIDTH                    (DISPID_STYLE+6)
+#define DISPID_IHTMLSTYLE_POSHEIGHT                   (DISPID_STYLE+7)
+#define DISPID_IHTMLSTYLE_TOSTRING                    (DISPID_STYLE+8)
+#define DISPID_IHTMLSTYLE_SETATTRIBUTE                (DISPID_HTMLOBJECT+1)
+#define DISPID_IHTMLSTYLE_GETATTRIBUTE                (DISPID_HTMLOBJECT+2)
+#define DISPID_IHTMLSTYLE_REMOVEATTRIBUTE             (DISPID_HTMLOBJECT+3)
+#define DISPID_IHTMLSTYLE_FONTFAMILY                  DISPID_A_FONTFACE
+#define DISPID_IHTMLSTYLE_FONTSTYLE                   DISPID_A_FONTSTYLE
+#define DISPID_IHTMLSTYLE_FONTVARIANT                 DISPID_A_FONTVARIANT
+#define DISPID_IHTMLSTYLE_FONTWEIGHT                  DISPID_A_FONTWEIGHT
+#define DISPID_IHTMLSTYLE_FONTSIZE                    DISPID_A_FONTSIZE
+#define DISPID_IHTMLSTYLE_FONT                        DISPID_A_FONT
+#define DISPID_IHTMLSTYLE_COLOR                       DISPID_A_COLOR
+#define DISPID_IHTMLSTYLE_BACKGROUND                  DISPID_A_BACKGROUND
+#define DISPID_IHTMLSTYLE_BACKGROUNDIMAGE             DISPID_A_BACKGROUNDIMAGE
+#define DISPID_IHTMLSTYLE_BACKGROUNDREPEAT            DISPID_A_BACKGROUNDREPEAT
+#define DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT        DISPID_A_BACKGROUNDATTACHMENT
+#define DISPID_IHTMLSTYLE_BACKGROUNDPOSITION          DISPID_A_BACKGROUNDPOSITION
+#define DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX         DISPID_A_BACKGROUNDPOSX
+#define DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY         DISPID_A_BACKGROUNDPOSY
+#define DISPID_IHTMLSTYLE_WORDSPACING                 DISPID_A_WORDSPACING
+#define DISPID_IHTMLSTYLE_LETTERSPACING               DISPID_A_LETTERSPACING
+#define DISPID_IHTMLSTYLE_TEXTDECORATION              DISPID_A_TEXTDECORATION
+#define DISPID_IHTMLSTYLE_TEXTDECORATIONNONE          DISPID_A_TEXTDECORATIONNONE
+#define DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE     DISPID_A_TEXTDECORATIONUNDERLINE
+#define DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE      DISPID_A_TEXTDECORATIONOVERLINE
+#define DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH   DISPID_A_TEXTDECORATIONLINETHROUGH
+#define DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK         DISPID_A_TEXTDECORATIONBLINK
+#define DISPID_IHTMLSTYLE_VERTICALALIGN               DISPID_A_VERTICALALIGN
+#define DISPID_IHTMLSTYLE_TEXTTRANSFORM               DISPID_A_TEXTTRANSFORM
+#define DISPID_IHTMLSTYLE_TEXTINDENT                  DISPID_A_TEXTINDENT
+#define DISPID_IHTMLSTYLE_LINEHEIGHT                  DISPID_A_LINEHEIGHT
+#define DISPID_IHTMLSTYLE_MARGINTOP                   DISPID_A_MARGINTOP
+#define DISPID_IHTMLSTYLE_MARGINRIGHT                 DISPID_A_MARGINRIGHT
+#define DISPID_IHTMLSTYLE_MARGINBOTTOM                DISPID_A_MARGINBOTTOM
+#define DISPID_IHTMLSTYLE_MARGINLEFT                  DISPID_A_MARGINLEFT
+#define DISPID_IHTMLSTYLE_MARGIN                      DISPID_A_MARGIN
+#define DISPID_IHTMLSTYLE_PADDINGTOP                  DISPID_A_PADDINGTOP
+#define DISPID_IHTMLSTYLE_PADDINGRIGHT                DISPID_A_PADDINGRIGHT
+#define DISPID_IHTMLSTYLE_PADDINGBOTTOM               DISPID_A_PADDINGBOTTOM
+#define DISPID_IHTMLSTYLE_PADDINGLEFT                 DISPID_A_PADDINGLEFT
+#define DISPID_IHTMLSTYLE_PADDING                     DISPID_A_PADDING
+#define DISPID_IHTMLSTYLE_BORDER                      DISPID_A_BORDER
+#define DISPID_IHTMLSTYLE_BORDERTOP                   DISPID_A_BORDERTOP
+#define DISPID_IHTMLSTYLE_BORDERRIGHT                 DISPID_A_BORDERRIGHT
+#define DISPID_IHTMLSTYLE_BORDERBOTTOM                DISPID_A_BORDERBOTTOM
+#define DISPID_IHTMLSTYLE_BORDERLEFT                  DISPID_A_BORDERLEFT
+#define DISPID_IHTMLSTYLE_BORDERCOLOR                 DISPID_A_BORDERCOLOR
+#define DISPID_IHTMLSTYLE_BORDERTOPCOLOR              DISPID_A_BORDERTOPCOLOR
+#define DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR            DISPID_A_BORDERRIGHTCOLOR
+#define DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR           DISPID_A_BORDERBOTTOMCOLOR
+#define DISPID_IHTMLSTYLE_BORDERLEFTCOLOR             DISPID_A_BORDERLEFTCOLOR
+#define DISPID_IHTMLSTYLE_BORDERWIDTH                 DISPID_A_BORDERWIDTH
+#define DISPID_IHTMLSTYLE_BORDERTOPWIDTH              DISPID_A_BORDERTOPWIDTH
+#define DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH            DISPID_A_BORDERRIGHTWIDTH
+#define DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH           DISPID_A_BORDERBOTTOMWIDTH
+#define DISPID_IHTMLSTYLE_BORDERLEFTWIDTH             DISPID_A_BORDERLEFTWIDTH
+#define DISPID_IHTMLSTYLE_BORDERSTYLE                 DISPID_A_BORDERSTYLE
+#define DISPID_IHTMLSTYLE_BORDERTOPSTYLE              DISPID_A_BORDERTOPSTYLE
+#define DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE            DISPID_A_BORDERRIGHTSTYLE
+#define DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE           DISPID_A_BORDERBOTTOMSTYLE
+#define DISPID_IHTMLSTYLE_BORDERLEFTSTYLE             DISPID_A_BORDERLEFTSTYLE
+#define DISPID_IHTMLSTYLE_STYLEFLOAT                  DISPID_A_FLOAT
+#define DISPID_IHTMLSTYLE_CLEAR                       DISPID_A_CLEAR
+#define DISPID_IHTMLSTYLE_DISPLAY                     DISPID_A_DISPLAY
+#define DISPID_IHTMLSTYLE_VISIBILITY                  DISPID_A_VISIBILITY
+#define DISPID_IHTMLSTYLE_LISTSTYLETYPE               DISPID_A_LISTSTYLETYPE
+#define DISPID_IHTMLSTYLE_LISTSTYLEPOSITION           DISPID_A_LISTSTYLEPOSITION
+#define DISPID_IHTMLSTYLE_LISTSTYLEIMAGE              DISPID_A_LISTSTYLEIMAGE
+#define DISPID_IHTMLSTYLE_LISTSTYLE                   DISPID_A_LISTSTYLE
+#define DISPID_IHTMLSTYLE_WHITESPACE                  DISPID_A_WHITESPACE
+#define DISPID_IHTMLSTYLE_POSITION                    DISPID_A_POSITION
+#define DISPID_IHTMLSTYLE_ZINDEX                      DISPID_A_ZINDEX
+#define DISPID_IHTMLSTYLE_OVERFLOW                    DISPID_A_OVERFLOW
+#define DISPID_IHTMLSTYLE_PAGEBREAKBEFORE             DISPID_A_PAGEBREAKBEFORE
+#define DISPID_IHTMLSTYLE_PAGEBREAKAFTER              DISPID_A_PAGEBREAKAFTER
+#define DISPID_IHTMLSTYLE_CSSTEXT                     DISPID_A_STYLETEXT
+#define DISPID_IHTMLSTYLE_CURSOR                      DISPID_A_CURSOR
+#define DISPID_IHTMLSTYLE_CLIP                        DISPID_A_CLIP
+#define DISPID_IHTMLSTYLE_FILTER                      DISPID_A_FILTER
+#define DISPID_IHTMLSTYLE_WIDTH                       STDPROPID_XOBJ_WIDTH
+#define DISPID_IHTMLSTYLE_HEIGHT                      STDPROPID_XOBJ_HEIGHT
+#define DISPID_IHTMLSTYLE_TOP                         STDPROPID_XOBJ_TOP
+#define DISPID_IHTMLSTYLE_LEFT                        STDPROPID_XOBJ_LEFT
+#define DISPID_IHTMLSTYLE_TEXTALIGN                   STDPROPID_XOBJ_BLOCKALIGN
+#define DISPID_IHTMLSTYLE_BACKGROUNDCOLOR             DISPID_BACKCOLOR
+
+/* IHTMLFiltersCollection */
+#define DISPID_IHTMLFILTERSCOLLECTION_LENGTH     (DISPID_FILTERS+1)
+#define DISPID_IHTMLFILTERSCOLLECTION__NEWENUM   DISPID_NEWENUM
+#define DISPID_IHTMLFILTERSCOLLECTION_ITEM       DISPID_VALUE
+
+/* IHTMLSelectionObject */
+#define DISPID_IHTMLSELECTIONOBJECT_CREATERANGE   (DISPID_SELECTOBJ+1)
+#define DISPID_IHTMLSELECTIONOBJECT_EMPTY         (DISPID_SELECTOBJ+2)
+#define DISPID_IHTMLSELECTIONOBJECT_CLEAR         (DISPID_SELECTOBJ+3)
+#define DISPID_IHTMLSELECTIONOBJECT_TYPE          (DISPID_SELECTOBJ+4)
+
+/* IHTMLFramesCollection2 */
+#define DISPID_IHTMLFRAMESCOLLECTION2_ITEM     0
+#define DISPID_IHTMLFRAMESCOLLECTION2_LENGTH   1001
+
+/* IHTMLLocation */
+#define DISPID_IHTMLLOCATION_HOST       (DISPID_LOCATION+1)
+#define DISPID_IHTMLLOCATION_HOSTNAME   (DISPID_LOCATION+2)
+#define DISPID_IHTMLLOCATION_PORT       (DISPID_LOCATION+3)
+#define DISPID_IHTMLLOCATION_PATHNAME   (DISPID_LOCATION+4)
+#define DISPID_IHTMLLOCATION_SEARCH     (DISPID_LOCATION+5)
+#define DISPID_IHTMLLOCATION_HASH       (DISPID_LOCATION+6)
+#define DISPID_IHTMLLOCATION_RELOAD     (DISPID_LOCATION+7)
+#define DISPID_IHTMLLOCATION_REPLACE    (DISPID_LOCATION+8)
+#define DISPID_IHTMLLOCATION_ASSIGN     (DISPID_LOCATION+9)
+#define DISPID_IHTMLLOCATION_TOSTRING   (DISPID_LOCATION+10)
+#define DISPID_IHTMLLOCATION_HREF       DISPID_VALUE
+#define DISPID_IHTMLLOCATION_PROTOCOL   DISPID_LOCATION
+
+/* IHTMLWindow2 */
+#define DISPID_IHTMLWINDOW2_HISTORY              2
+#define DISPID_IHTMLWINDOW2_CLOSE                3
+#define DISPID_IHTMLWINDOW2_OPENER               4
+#define DISPID_IHTMLWINDOW2_NAVIGATOR            5
+#define DISPID_IHTMLWINDOW2_MOVETO               6
+#define DISPID_IHTMLWINDOW2_MOVEBY               7
+#define DISPID_IHTMLWINDOW2_RESIZETO             9
+#define DISPID_IHTMLWINDOW2_RESIZEBY             8
+#define DISPID_IHTMLWINDOW2_NAME                 11
+#define DISPID_IHTMLWINDOW2_PARENT               12
+#define DISPID_IHTMLWINDOW2_OPEN                 13
+#define DISPID_IHTMLWINDOW2_LOCATION             14
+#define DISPID_IHTMLWINDOW2_SELF                 20
+#define DISPID_IHTMLWINDOW2_TOP                  21
+#define DISPID_IHTMLWINDOW2_WINDOW               22
+#define DISPID_IHTMLWINDOW2_CLOSED               23
+#define DISPID_IHTMLWINDOW2_NAVIGATE             25
+#define DISPID_IHTMLWINDOW2_FRAMES               1100
+#define DISPID_IHTMLWINDOW2_DEFAULTSTATUS        1101
+#define DISPID_IHTMLWINDOW2_STATUS               1102
+#define DISPID_IHTMLWINDOW2_SETTIMEOUT           1103
+#define DISPID_IHTMLWINDOW2_CLEARTIMEOUT         1104
+#define DISPID_IHTMLWINDOW2_ALERT                1105
+#define DISPID_IHTMLWINDOW2_CONFIRM              1110
+#define DISPID_IHTMLWINDOW2_PROMPT               1111
+#define DISPID_IHTMLWINDOW2_IMAGE                1125
+#define DISPID_IHTMLWINDOW2_DOCUMENT             1151
+#define DISPID_IHTMLWINDOW2_EVENT                1152
+#define DISPID_IHTMLWINDOW2__NEWENUM             1153
+#define DISPID_IHTMLWINDOW2_SHOWMODALDIALOG      1154
+#define DISPID_IHTMLWINDOW2_SHOWHELP             1155
+#define DISPID_IHTMLWINDOW2_SCREEN               1156
+#define DISPID_IHTMLWINDOW2_OPTION               1157
+#define DISPID_IHTMLWINDOW2_FOCUS                1158
+#define DISPID_IHTMLWINDOW2_BLUR                 1159
+#define DISPID_IHTMLWINDOW2_SCROLL               1160
+#define DISPID_IHTMLWINDOW2_CLIENTINFORMATION    1161
+#define DISPID_IHTMLWINDOW2_SETINTERVAL          1162
+#define DISPID_IHTMLWINDOW2_CLEARINTERVAL        1163
+#define DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING   1164
+#define DISPID_IHTMLWINDOW2_EXECSCRIPT           1165
+#define DISPID_IHTMLWINDOW2_TOSTRING             1166
+#define DISPID_IHTMLWINDOW2_SCROLLBY             1167
+#define DISPID_IHTMLWINDOW2_SCROLLTO             1168
+#define DISPID_IHTMLWINDOW2_EXTERNAL             1169
+#define DISPID_IHTMLWINDOW2_ONFOCUS              DISPID_EVPROP_ONFOCUS
+#define DISPID_IHTMLWINDOW2_ONBLUR               DISPID_EVPROP_ONBLUR
+#define DISPID_IHTMLWINDOW2_ONLOAD               DISPID_EVPROP_ONLOAD
+#define DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD       DISPID_EVPROP_ONBEFOREUNLOAD
+#define DISPID_IHTMLWINDOW2_ONUNLOAD             DISPID_EVPROP_ONUNLOAD
+#define DISPID_IHTMLWINDOW2_ONHELP               DISPID_EVPROP_ONHELP
+#define DISPID_IHTMLWINDOW2_ONERROR              DISPID_EVPROP_ONERROR
+#define DISPID_IHTMLWINDOW2_ONRESIZE             DISPID_EVPROP_ONRESIZE
+#define DISPID_IHTMLWINDOW2_ONSCROLL             DISPID_EVPROP_ONSCROLL
+
+/* IHTMLImageElementFactory */
+#define DISPID_IHTMLIMAGEELEMENTFACTORY_CREATE                    DISPID_VALUE
+
+/* IHTMLImgElement */
+#define DISPID_IHTMLIMGELEMENT_BORDER             (DISPID_IMGBASE+4)
+#define DISPID_IHTMLIMGELEMENT_VSPACE             (DISPID_IMGBASE+5)
+#define DISPID_IHTMLIMGELEMENT_HSPACE             (DISPID_IMGBASE+6)
+#define DISPID_IHTMLIMGELEMENT_ALT                (DISPID_IMGBASE+2)
+#define DISPID_IHTMLIMGELEMENT_SRC                (DISPID_IMGBASE+3)
+#define DISPID_IHTMLIMGELEMENT_LOWSRC             (DISPID_IMGBASE+7)
+#define DISPID_IHTMLIMGELEMENT_VRML               (DISPID_IMGBASE+8)
+#define DISPID_IHTMLIMGELEMENT_DYNSRC             (DISPID_IMGBASE+9)
+#define DISPID_IHTMLIMGELEMENT_READYSTATE         (DISPID_IMGBASE+12)
+#define DISPID_IHTMLIMGELEMENT_COMPLETE           (DISPID_IMGBASE+10)
+#define DISPID_IHTMLIMGELEMENT_LOOP               (DISPID_IMGBASE+11)
+#define DISPID_IHTMLIMGELEMENT_ISMAP              (DISPID_IMG+2)
+#define DISPID_IHTMLIMGELEMENT_USEMAP             (DISPID_IMG+8)
+#define DISPID_IHTMLIMGELEMENT_MIMETYPE           (DISPID_IMG+10)
+#define DISPID_IHTMLIMGELEMENT_FILESIZE           (DISPID_IMG+11)
+#define DISPID_IHTMLIMGELEMENT_FILECREATEDDATE    (DISPID_IMG+12)
+#define DISPID_IHTMLIMGELEMENT_FILEMODIFIEDDATE   (DISPID_IMG+13)
+#define DISPID_IHTMLIMGELEMENT_FILEUPDATEDDATE    (DISPID_IMG+14)
+#define DISPID_IHTMLIMGELEMENT_PROTOCOL           (DISPID_IMG+15)
+#define DISPID_IHTMLIMGELEMENT_HREF               (DISPID_IMG+16)
+#define DISPID_IHTMLIMGELEMENT_NAMEPROP           (DISPID_IMG+17)
+#define DISPID_IHTMLIMGELEMENT_ALIGN              STDPROPID_XOBJ_CONTROLALIGN
+#define DISPID_IHTMLIMGELEMENT_ONLOAD             DISPID_EVPROP_ONLOAD
+#define DISPID_IHTMLIMGELEMENT_ONERROR            DISPID_EVPROP_ONERROR
+#define DISPID_IHTMLIMGELEMENT_ONABORT            DISPID_EVPROP_ONABORT
+#define DISPID_IHTMLIMGELEMENT_NAME               STDPROPID_XOBJ_NAME
+#define DISPID_IHTMLIMGELEMENT_WIDTH              STDPROPID_XOBJ_WIDTH
+#define DISPID_IHTMLIMGELEMENT_HEIGHT             STDPROPID_XOBJ_HEIGHT
+#define DISPID_IHTMLIMGELEMENT_START              DISPID_IMGBASE+13
+
+/* IOmHistory */
+#define DISPID_IOMHISTORY_LENGTH    DISPID_HISTORY
+#define DISPID_IOMHISTORY_BACK      (DISPID_HISTORY+1)
+#define DISPID_IOMHISTORY_FORWARD   (DISPID_HISTORY+2)
+#define DISPID_IOMHISTORY_GO        (DISPID_HISTORY+3)
+
+/* IOmNavigator */
+#define DISPID_IOMNAVIGATOR_APPCODENAME       DISPID_NAVIGATOR
+#define DISPID_IOMNAVIGATOR_APPNAME           (DISPID_NAVIGATOR+1)
+#define DISPID_IOMNAVIGATOR_APPVERSION        (DISPID_NAVIGATOR+2)
+#define DISPID_IOMNAVIGATOR_USERAGENT         (DISPID_NAVIGATOR+3)
+#define DISPID_IOMNAVIGATOR_JAVAENABLED       (DISPID_NAVIGATOR+4)
+#define DISPID_IOMNAVIGATOR_TAINTENABLED      (DISPID_NAVIGATOR+5)
+#define DISPID_IOMNAVIGATOR_MIMETYPES         (DISPID_NAVIGATOR+6)
+#define DISPID_IOMNAVIGATOR_PLUGINS           (DISPID_NAVIGATOR+7)
+#define DISPID_IOMNAVIGATOR_COOKIEENABLED     (DISPID_NAVIGATOR+8)
+#define DISPID_IOMNAVIGATOR_OPSPROFILE        (DISPID_NAVIGATOR+9)
+#define DISPID_IOMNAVIGATOR_TOSTRING          (DISPID_NAVIGATOR+10)
+#define DISPID_IOMNAVIGATOR_CPUCLASS          (DISPID_NAVIGATOR+11)
+#define DISPID_IOMNAVIGATOR_SYSTEMLANGUAGE    (DISPID_NAVIGATOR+12)
+#define DISPID_IOMNAVIGATOR_BROWSERLANGUAGE   (DISPID_NAVIGATOR+13)
+#define DISPID_IOMNAVIGATOR_USERLANGUAGE      (DISPID_NAVIGATOR+14)
+#define DISPID_IOMNAVIGATOR_PLATFORM          (DISPID_NAVIGATOR+15)
+#define DISPID_IOMNAVIGATOR_APPMINORVERSION   (DISPID_NAVIGATOR+16)
+#define DISPID_IOMNAVIGATOR_CONNECTIONSPEED   (DISPID_NAVIGATOR+17)
+#define DISPID_IOMNAVIGATOR_ONLINE            (DISPID_NAVIGATOR+18)
+#define DISPID_IOMNAVIGATOR_USERPROFILE       (DISPID_NAVIGATOR+19)
+
+/* IHTMLMimeTypesCollection */
+#define DISPID_IHTMLMIMETYPESCOLLECTION_LENGTH   1
+
+/* IHTMLPluginsCollection */
+#define DISPID_IHTMLPLUGINSCOLLECTION_LENGTH    1
+#define DISPID_IHTMLPLUGINSCOLLECTION_REFRESH   2
+
+/* IHTMLOpsProfile */
+#define DISPID_IHTMLOPSPROFILE_ADDREQUEST       1
+#define DISPID_IHTMLOPSPROFILE_CLEARREQUEST     2
+#define DISPID_IHTMLOPSPROFILE_DOREQUEST        3
+#define DISPID_IHTMLOPSPROFILE_GETATTRIBUTE     4
+#define DISPID_IHTMLOPSPROFILE_SETATTRIBUTE     5
+#define DISPID_IHTMLOPSPROFILE_COMMITCHANGES    6
+#define DISPID_IHTMLOPSPROFILE_ADDREADREQUEST   7
+#define DISPID_IHTMLOPSPROFILE_DOREADREQUEST    8
+#define DISPID_IHTMLOPSPROFILE_DOWRITEREQUEST   9
+
+/* IHTMLEventObj */
+#define DISPID_IHTMLEVENTOBJ_SRCELEMENT     (DISPID_EVENTOBJ+1)
+#define DISPID_IHTMLEVENTOBJ_ALTKEY         (DISPID_EVENTOBJ+2)
+#define DISPID_IHTMLEVENTOBJ_CTRLKEY        (DISPID_EVENTOBJ+3)
+#define DISPID_IHTMLEVENTOBJ_SHIFTKEY       (DISPID_EVENTOBJ+4)
+#define DISPID_IHTMLEVENTOBJ_X              (DISPID_EVENTOBJ+5)
+#define DISPID_IHTMLEVENTOBJ_Y              (DISPID_EVENTOBJ+6)
+#define DISPID_IHTMLEVENTOBJ_RETURNVALUE    (DISPID_EVENTOBJ+7)
+#define DISPID_IHTMLEVENTOBJ_CANCELBUBBLE   (DISPID_EVENTOBJ+8)
+#define DISPID_IHTMLEVENTOBJ_FROMELEMENT    (DISPID_EVENTOBJ+9)
+#define DISPID_IHTMLEVENTOBJ_TOELEMENT      (DISPID_EVENTOBJ+10)
+#define DISPID_IHTMLEVENTOBJ_KEYCODE        (DISPID_EVENTOBJ+11)
+#define DISPID_IHTMLEVENTOBJ_BUTTON         (DISPID_EVENTOBJ+12)
+#define DISPID_IHTMLEVENTOBJ_TYPE           (DISPID_EVENTOBJ+13)
+#define DISPID_IHTMLEVENTOBJ_QUALIFIER      (DISPID_EVENTOBJ+14)
+#define DISPID_IHTMLEVENTOBJ_REASON         (DISPID_EVENTOBJ+15)
+#define DISPID_IHTMLEVENTOBJ_CLIENTX        (DISPID_EVENTOBJ+20)
+#define DISPID_IHTMLEVENTOBJ_CLIENTY        (DISPID_EVENTOBJ+21)
+#define DISPID_IHTMLEVENTOBJ_OFFSETX        (DISPID_EVENTOBJ+22)
+#define DISPID_IHTMLEVENTOBJ_OFFSETY        (DISPID_EVENTOBJ+23)
+#define DISPID_IHTMLEVENTOBJ_SCREENX        (DISPID_EVENTOBJ+24)
+#define DISPID_IHTMLEVENTOBJ_SCREENY        (DISPID_EVENTOBJ+25)
+#define DISPID_IHTMLEVENTOBJ_SRCFILTER      (DISPID_EVENTOBJ+26)
+
+/* IHTMLScreen */
+#define DISPID_IHTMLSCREEN_COLORDEPTH             (DISPID_SCREEN+1)
+#define DISPID_IHTMLSCREEN_BUFFERDEPTH            (DISPID_SCREEN+2)
+#define DISPID_IHTMLSCREEN_WIDTH                  (DISPID_SCREEN+3)
+#define DISPID_IHTMLSCREEN_HEIGHT                 (DISPID_SCREEN+4)
+#define DISPID_IHTMLSCREEN_UPDATEINTERVAL         (DISPID_SCREEN+5)
+#define DISPID_IHTMLSCREEN_AVAILHEIGHT            (DISPID_SCREEN+6)
+#define DISPID_IHTMLSCREEN_AVAILWIDTH             (DISPID_SCREEN+7)
+#define DISPID_IHTMLSCREEN_FONTSMOOTHINGENABLED   (DISPID_SCREEN+8)
+
+/* IHTMLOptionElementFactory */
+#define DISPID_IHTMLOPTIONELEMENTFACTORY_CREATE   DISPID_VALUE
+
+/* IHTMLOptionElement */
+#define DISPID_IHTMLOPTIONELEMENT_SELECTED          (DISPID_OPTION+1)
+#define DISPID_IHTMLOPTIONELEMENT_VALUE             (DISPID_OPTION+2)
+#define DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED   (DISPID_OPTION+3)
+#define DISPID_IHTMLOPTIONELEMENT_INDEX             (DISPID_OPTION+5)
+#define DISPID_IHTMLOPTIONELEMENT_TEXT              (DISPID_OPTION+4)
+#define DISPID_IHTMLOPTIONELEMENT_FORM              (DISPID_OPTION+6)
+
+/* IHTMLFormElement */
+#define DISPID_IHTMLFORMELEMENT_ACTION     (DISPID_FORM+1)
+#define DISPID_IHTMLFORMELEMENT_DIR        (DISPID_FORM+2)
+#define DISPID_IHTMLFORMELEMENT_ENCODING   (DISPID_FORM+3)
+#define DISPID_IHTMLFORMELEMENT_METHOD     (DISPID_FORM+4)
+#define DISPID_IHTMLFORMELEMENT_ELEMENTS   (DISPID_FORM+5)
+#define DISPID_IHTMLFORMELEMENT_TARGET     (DISPID_FORM+6)
+#define DISPID_IHTMLFORMELEMENT_SUBMIT     (DISPID_FORM+9)
+#define DISPID_IHTMLFORMELEMENT_RESET      (DISPID_FORM+10)
+#define DISPID_IHTMLFORMELEMENT_TAGS       (DISPID_COLLECTION+2)
+#define DISPID_IHTMLFORMELEMENT_NAME       STDPROPID_XOBJ_NAME
+#define DISPID_IHTMLFORMELEMENT_ONSUBMIT   DISPID_EVPROP_ONSUBMIT
+#define DISPID_IHTMLFORMELEMENT_ONRESET    DISPID_EVPROP_ONRESET
+#define DISPID_IHTMLFORMELEMENT_LENGTH     DISPID_COLLECTION
+#define DISPID_IHTMLFORMELEMENT__NEWENUM   DISPID_NEWENUM
+#define DISPID_IHTMLFORMELEMENT_ITEM       DISPID_VALUE
+
+/* IHTMLStyleSheetsCollection */
+#define DISPID_IHTMLSTYLESHEETSCOLLECTION_LENGTH     (DISPID_STYLESHEETS_COL+1)
+#define DISPID_IHTMLSTYLESHEETSCOLLECTION__NEWENUM   DISPID_NEWENUM
+#define DISPID_IHTMLSTYLESHEETSCOLLECTION_ITEM       DISPID_VALUE
+
+/* IHTMLStyleSheet */
+#define DISPID_IHTMLSTYLESHEET_TITLE              (DISPID_STYLESHEET+1)
+#define DISPID_IHTMLSTYLESHEET_PARENTSTYLESHEET   (DISPID_STYLESHEET+2)
+#define DISPID_IHTMLSTYLESHEET_OWNINGELEMENT      (DISPID_STYLESHEET+3)
+#define DISPID_IHTMLSTYLESHEET_READONLY           (DISPID_STYLESHEET+4)
+#define DISPID_IHTMLSTYLESHEET_IMPORTS            (DISPID_STYLESHEET+5)
+#define DISPID_IHTMLSTYLESHEET_HREF               (DISPID_STYLESHEET+6)
+#define DISPID_IHTMLSTYLESHEET_TYPE               (DISPID_STYLESHEET+7)
+#define DISPID_IHTMLSTYLESHEET_ID                 (DISPID_STYLESHEET+8)
+#define DISPID_IHTMLSTYLESHEET_ADDIMPORT          (DISPID_STYLESHEET+9)
+#define DISPID_IHTMLSTYLESHEET_ADDRULE            (DISPID_STYLESHEET+10)
+#define DISPID_IHTMLSTYLESHEET_REMOVEIMPORT       (DISPID_STYLESHEET+11)
+#define DISPID_IHTMLSTYLESHEET_REMOVERULE         (DISPID_STYLESHEET+12)
+#define DISPID_IHTMLSTYLESHEET_MEDIA              (DISPID_STYLESHEET+13)
+#define DISPID_IHTMLSTYLESHEET_CSSTEXT            (DISPID_STYLESHEET+14)
+#define DISPID_IHTMLSTYLESHEET_RULES              (DISPID_STYLESHEET+15)
+#define DISPID_IHTMLSTYLESHEET_DISABLED           STDPROPID_XOBJ_DISABLED
+
+/* IHTMLStyleSheetRulesCollection */
+#define DISPID_IHTMLSTYLESHEETRULESCOLLECTION_LENGTH   (DISPID_STYLERULES_COL+1)
+#define DISPID_IHTMLSTYLESHEETRULESCOLLECTION_ITEM     DISPID_VALUE
+
+/* IHTMLStyleSheetRule */
+#define DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT   (DISPID_STYLERULE+1)
+#define DISPID_IHTMLSTYLESHEETRULE_READONLY       (DISPID_STYLERULE+2)
+#define DISPID_IHTMLSTYLESHEETRULE_STYLE          STDPROPID_XOBJ_STYLE
+
+/* IHTMLRuleStyle */
+#define DISPID_IHTMLRULESTYLE_SETATTRIBUTE                (DISPID_HTMLOBJECT+1)
+#define DISPID_IHTMLRULESTYLE_GETATTRIBUTE                (DISPID_HTMLOBJECT+2)
+#define DISPID_IHTMLRULESTYLE_REMOVEATTRIBUTE             (DISPID_HTMLOBJECT+3)
+#define DISPID_IHTMLRULESTYLE_FONTFAMILY                  DISPID_A_FONTFACE
+#define DISPID_IHTMLRULESTYLE_FONTSTYLE                   DISPID_A_FONTSTYLE
+#define DISPID_IHTMLRULESTYLE_FONTVARIANT                 DISPID_A_FONTVARIANT
+#define DISPID_IHTMLRULESTYLE_FONTWEIGHT                  DISPID_A_FONTWEIGHT
+#define DISPID_IHTMLRULESTYLE_FONTSIZE                    DISPID_A_FONTSIZE
+#define DISPID_IHTMLRULESTYLE_FONT                        DISPID_A_FONT
+#define DISPID_IHTMLRULESTYLE_COLOR                       DISPID_A_COLOR
+#define DISPID_IHTMLRULESTYLE_BACKGROUND                  DISPID_A_BACKGROUND
+#define DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE             DISPID_A_BACKGROUNDIMAGE
+#define DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT            DISPID_A_BACKGROUNDREPEAT
+#define DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT        DISPID_A_BACKGROUNDATTACHMENT
+#define DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION          DISPID_A_BACKGROUNDPOSITION
+#define DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX         DISPID_A_BACKGROUNDPOSX
+#define DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY         DISPID_A_BACKGROUNDPOSY
+#define DISPID_IHTMLRULESTYLE_WORDSPACING                 DISPID_A_WORDSPACING
+#define DISPID_IHTMLRULESTYLE_LETTERSPACING               DISPID_A_LETTERSPACING
+#define DISPID_IHTMLRULESTYLE_TEXTDECORATION              DISPID_A_TEXTDECORATION
+#define DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE          DISPID_A_TEXTDECORATIONNONE
+#define DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE     DISPID_A_TEXTDECORATIONUNDERLINE
+#define DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE      DISPID_A_TEXTDECORATIONOVERLINE
+#define DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH   DISPID_A_TEXTDECORATIONLINETHROUGH
+#define DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK         DISPID_A_TEXTDECORATIONBLINK
+#define DISPID_IHTMLRULESTYLE_VERTICALALIGN               DISPID_A_VERTICALALIGN
+#define DISPID_IHTMLRULESTYLE_TEXTTRANSFORM               DISPID_A_TEXTTRANSFORM
+#define DISPID_IHTMLRULESTYLE_TEXTINDENT                  DISPID_A_TEXTINDENT
+#define DISPID_IHTMLRULESTYLE_LINEHEIGHT                  DISPID_A_LINEHEIGHT
+#define DISPID_IHTMLRULESTYLE_MARGINTOP                   DISPID_A_MARGINTOP
+#define DISPID_IHTMLRULESTYLE_MARGINRIGHT                 DISPID_A_MARGINRIGHT
+#define DISPID_IHTMLRULESTYLE_MARGINBOTTOM                DISPID_A_MARGINBOTTOM
+#define DISPID_IHTMLRULESTYLE_MARGINLEFT                  DISPID_A_MARGINLEFT
+#define DISPID_IHTMLRULESTYLE_MARGIN                      DISPID_A_MARGIN
+#define DISPID_IHTMLRULESTYLE_PADDINGTOP                  DISPID_A_PADDINGTOP
+#define DISPID_IHTMLRULESTYLE_PADDINGRIGHT                DISPID_A_PADDINGRIGHT
+#define DISPID_IHTMLRULESTYLE_PADDINGBOTTOM               DISPID_A_PADDINGBOTTOM
+#define DISPID_IHTMLRULESTYLE_PADDINGLEFT                 DISPID_A_PADDINGLEFT
+#define DISPID_IHTMLRULESTYLE_PADDING                     DISPID_A_PADDING
+#define DISPID_IHTMLRULESTYLE_BORDER                      DISPID_A_BORDER
+#define DISPID_IHTMLRULESTYLE_BORDERTOP                   DISPID_A_BORDERTOP
+#define DISPID_IHTMLRULESTYLE_BORDERRIGHT                 DISPID_A_BORDERRIGHT
+#define DISPID_IHTMLRULESTYLE_BORDERBOTTOM                DISPID_A_BORDERBOTTOM
+#define DISPID_IHTMLRULESTYLE_BORDERLEFT                  DISPID_A_BORDERLEFT
+#define DISPID_IHTMLRULESTYLE_BORDERCOLOR                 DISPID_A_BORDERCOLOR
+#define DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR              DISPID_A_BORDERTOPCOLOR
+#define DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR            DISPID_A_BORDERRIGHTCOLOR
+#define DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR           DISPID_A_BORDERBOTTOMCOLOR
+#define DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR             DISPID_A_BORDERLEFTCOLOR
+#define DISPID_IHTMLRULESTYLE_BORDERWIDTH                 DISPID_A_BORDERWIDTH
+#define DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH              DISPID_A_BORDERTOPWIDTH
+#define DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH            DISPID_A_BORDERRIGHTWIDTH
+#define DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH           DISPID_A_BORDERBOTTOMWIDTH
+#define DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH             DISPID_A_BORDERLEFTWIDTH
+#define DISPID_IHTMLRULESTYLE_BORDERSTYLE                 DISPID_A_BORDERSTYLE
+#define DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE              DISPID_A_BORDERTOPSTYLE
+#define DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE            DISPID_A_BORDERRIGHTSTYLE
+#define DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE           DISPID_A_BORDERBOTTOMSTYLE
+#define DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE             DISPID_A_BORDERLEFTSTYLE
+#define DISPID_IHTMLRULESTYLE_STYLEFLOAT                  DISPID_A_FLOAT
+#define DISPID_IHTMLRULESTYLE_CLEAR                       DISPID_A_CLEAR
+#define DISPID_IHTMLRULESTYLE_DISPLAY                     DISPID_A_DISPLAY
+#define DISPID_IHTMLRULESTYLE_VISIBILITY                  DISPID_A_VISIBILITY
+#define DISPID_IHTMLRULESTYLE_LISTSTYLETYPE               DISPID_A_LISTSTYLETYPE
+#define DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION           DISPID_A_LISTSTYLEPOSITION
+#define DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE              DISPID_A_LISTSTYLEIMAGE
+#define DISPID_IHTMLRULESTYLE_LISTSTYLE                   DISPID_A_LISTSTYLE
+#define DISPID_IHTMLRULESTYLE_WHITESPACE                  DISPID_A_WHITESPACE
+#define DISPID_IHTMLRULESTYLE_POSITION                    DISPID_A_POSITION
+#define DISPID_IHTMLRULESTYLE_ZINDEX                      DISPID_A_ZINDEX
+#define DISPID_IHTMLRULESTYLE_OVERFLOW                    DISPID_A_OVERFLOW
+#define DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE             DISPID_A_PAGEBREAKBEFORE
+#define DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER              DISPID_A_PAGEBREAKAFTER
+#define DISPID_IHTMLRULESTYLE_CSSTEXT                     DISPID_A_STYLETEXT
+#define DISPID_IHTMLRULESTYLE_CURSOR                      DISPID_A_CURSOR
+#define DISPID_IHTMLRULESTYLE_CLIP                        DISPID_A_CLIP
+#define DISPID_IHTMLRULESTYLE_FILTER                      DISPID_A_FILTER
+#define DISPID_IHTMLRULESTYLE_TOP                         STDPROPID_XOBJ_TOP
+#define DISPID_IHTMLRULESTYLE_LEFT                        STDPROPID_XOBJ_LEFT
+#define DISPID_IHTMLRULESTYLE_WIDTH                       STDPROPID_XOBJ_WIDTH
+#define DISPID_IHTMLRULESTYLE_HEIGHT                      STDPROPID_XOBJ_HEIGHT
+#define DISPID_IHTMLRULESTYLE_TEXTALIGN                   STDPROPID_XOBJ_BLOCKALIGN
+#define DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR             DISPID_BACKCOLOR
+
+#endif /* __MSHTMDID_H__ */
diff --git a/include/mshtml.idl b/include/mshtml.idl
new file mode 100644
index 0000000..270fa60
--- /dev/null
+++ b/include/mshtml.idl
@@ -0,0 +1,2991 @@
+/*
+ * Copyright 2004 Jacek Caban
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include <mshtmdid.h>
+/* #include <mshtmcid.h> */
+#include <olectl.h>
+
+import "ocidl.idl";
+/* import "dimm.idl"; */
+
+cpp_quote("#include <olectl.h>")
+
+interface IHTMLElement;
+interface IHTMLDocument2;
+interface IHTMLStyleSheetsCollection;
+
+/*****************************************************************************
+ *    IHTMLStyle interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F25E-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLStyle : IDispatch
+{
+    [propput, id(DISPID_IHTMLSTYLE_FONTFAMILY)]
+    HRESULT fontFamily([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_FONTFAMILY)]
+    HRESULT fontFamily([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_FONTSTYLE)]
+    HRESULT fontStyle([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_FONTSTYLE)]
+    HRESULT fontStyle([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_FONTVARIANT)]
+    HRESULT fontVariant([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_FONTVARIANT)]
+    HRESULT fontVariant([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_FONTWEIGHT)]
+    HRESULT fontWeight([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_FONTWEIGHT)]
+    HRESULT fontWeight([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_FONTSIZE)]
+    HRESULT fontSize([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_FONTSIZE)]
+    HRESULT fontSize([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_FONT)]
+    HRESULT font([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_FONT)]
+    HRESULT font([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_COLOR)]
+    HRESULT color([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_COLOR)]
+    HRESULT color([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BACKGROUND)]
+    HRESULT background([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BACKGROUND)]
+    HRESULT background([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDCOLOR)]
+    HRESULT backgroundColor([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDCOLOR)]
+    HRESULT backgroundColor([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDIMAGE)]
+    HRESULT backgroundImage([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDIMAGE)]
+    HRESULT backgroundImage([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDREPEAT)]
+    HRESULT backgroundRepeat([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDREPEAT)]
+    HRESULT backgroundRepeat([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT)]
+    HRESULT backgroundAttachment([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT)]
+    HRESULT backgroundAttachment([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITION)]
+    HRESULT backgroundPosition([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITION)]
+    HRESULT backgroundPosition([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX)]
+    HRESULT backgroundPositionX([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX)]
+    HRESULT backgroundPositionX([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY)]
+    HRESULT backgroundPositionY([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY)]
+    HRESULT backgroundPositionY([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_WORDSPACING)]
+    HRESULT wordSpacing([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_WORDSPACING)]
+    HRESULT wordSpacing([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_LETTERSPACING)]
+    HRESULT letterSpacing([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_LETTERSPACING)]
+    HRESULT letterSpacing([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATION)]
+    HRESULT textDecoration([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATION)]
+    HRESULT textDecoration([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONNONE)]
+    HRESULT textDecorationNone([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONNONE)]
+    HRESULT textDecorationNone([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE)]
+    HRESULT textDecorationUnderline([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE)]
+    HRESULT textDecorationUnderline([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE)]
+    HRESULT textDecorationOverline([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE)]
+    HRESULT textDecorationOverline([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH)]
+    HRESULT textDecorationLineThrough([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH)]
+    HRESULT textDecorationLineThrough([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK)]
+    HRESULT textDecorationBlink([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK)]
+    HRESULT textDecorationBlink([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_VERTICALALIGN)]
+    HRESULT verticalAlign([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_VERTICALALIGN)]
+    HRESULT verticalAlign([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_TEXTTRANSFORM)]
+    HRESULT textTransform([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_TEXTTRANSFORM)]
+    HRESULT textTransform([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_TEXTALIGN)]
+    HRESULT textAlign([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_TEXTALIGN)]
+    HRESULT textAlign([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_TEXTINDENT)]
+    HRESULT textIndent([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_TEXTINDENT)]
+    HRESULT textIndent([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_LINEHEIGHT)]
+    HRESULT lineHeight([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_LINEHEIGHT)]
+    HRESULT lineHeight([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_MARGINTOP)]
+    HRESULT marginTop([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_MARGINTOP)]
+    HRESULT marginTop([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_MARGINRIGHT)]
+    HRESULT marginRight([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_MARGINRIGHT)]
+    HRESULT marginRight([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_MARGINBOTTOM)]
+    HRESULT marginBottom([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_MARGINBOTTOM)]
+    HRESULT marginBottom([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_MARGINLEFT)]
+    HRESULT marginLeft([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_MARGINLEFT)]
+    HRESULT marginLeft([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_MARGIN)]
+    HRESULT margin([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_MARGIN)]
+    HRESULT margin([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_PADDINGTOP)]
+    HRESULT paddingTop([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_PADDINGTOP)]
+    HRESULT paddingTop([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_PADDINGRIGHT)]
+    HRESULT paddingRight([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_PADDINGRIGHT)]
+    HRESULT paddingRight([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_PADDINGBOTTOM)]
+    HRESULT paddingBottom([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_PADDINGBOTTOM)]
+    HRESULT paddingBottom([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_PADDINGLEFT)]
+    HRESULT paddingLeft([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_PADDINGLEFT)]
+    HRESULT paddingLeft([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_PADDING)]
+    HRESULT padding([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_PADDING)]
+    HRESULT padding([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDER)]
+    HRESULT border([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDER)]
+    HRESULT border([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERTOP)]
+    HRESULT borderTop([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERTOP)]
+    HRESULT borderTop([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHT)]
+    HRESULT borderRight([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHT)]
+    HRESULT borderRight([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOM)]
+    HRESULT borderBottom([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOM)]
+    HRESULT borderBottom([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERLEFT)]
+    HRESULT borderLeft([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERLEFT)]
+    HRESULT borderLeft([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERCOLOR)]
+    HRESULT borderColor([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERCOLOR)]
+    HRESULT borderColor([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERTOPCOLOR)]
+    HRESULT borderTopColor([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERTOPCOLOR)]
+    HRESULT borderTopColor([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR)]
+    HRESULT borderRightColor([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR)]
+    HRESULT borderRightColor([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR)]
+    HRESULT borderBottomColor([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR)]
+    HRESULT borderBottomColor([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTCOLOR)]
+    HRESULT borderLeftColor([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTCOLOR)]
+    HRESULT borderLeftColor([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERWIDTH)]
+    HRESULT borderWidth([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERWIDTH)]
+    HRESULT borderWidth([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERTOPWIDTH)]
+    HRESULT borderTopWidth([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERTOPWIDTH)]
+    HRESULT borderTopWidth([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH)]
+    HRESULT borderRightWidth([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH)]
+    HRESULT borderRightWidth([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH)]
+    HRESULT borderBottomWidth([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH)]
+    HRESULT borderBottomWidth([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTWIDTH)]
+    HRESULT borderLeftWidth([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTWIDTH)]
+    HRESULT borderLeftWidth([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERSTYLE)]
+    HRESULT borderStyle([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERSTYLE)]
+    HRESULT borderStyle([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERTOPSTYLE)]
+    HRESULT borderTopStyle([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERTOPSTYLE)]
+    HRESULT borderTopStyle([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE)]
+    HRESULT borderRightStyle([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE)]
+    HRESULT borderRightStyle([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE)]
+    HRESULT borderBottomStyle([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE)]
+    HRESULT borderBottomStyle([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTSTYLE)]
+    HRESULT borderLeftStyle([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTSTYLE)]
+    HRESULT borderLeftStyle([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_WIDTH)]
+    HRESULT width([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_WIDTH)]
+    HRESULT width([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_HEIGHT)]
+    HRESULT height([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_HEIGHT)]
+    HRESULT height([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_STYLEFLOAT)]
+    HRESULT styleFloat([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_STYLEFLOAT)]
+    HRESULT styleFloat([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_CLEAR)]
+    HRESULT clear([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_CLEAR)]
+    HRESULT clear([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_DISPLAY)]
+    HRESULT display([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_DISPLAY)]
+    HRESULT display([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_VISIBILITY)]
+    HRESULT visibility([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_VISIBILITY)]
+    HRESULT visibility([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_LISTSTYLETYPE)]
+    HRESULT listStyleType([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_LISTSTYLETYPE)]
+    HRESULT listStyleType([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_LISTSTYLEPOSITION)]
+    HRESULT listStylePosition([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_LISTSTYLEPOSITION)]
+    HRESULT listStylePosition([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_LISTSTYLEIMAGE)]
+    HRESULT listStyleImage([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_LISTSTYLEIMAGE)]
+    HRESULT listStyleImage([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_LISTSTYLE)]
+    HRESULT listStyle([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_LISTSTYLE)]
+    HRESULT listStyle([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_WHITESPACE)]
+    HRESULT whiteSpace([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_WHITESPACE)]
+    HRESULT whiteSpace([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_TOP)]
+    HRESULT top([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_TOP)]
+    HRESULT top([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_LEFT)]
+    HRESULT left([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_LEFT)]
+    HRESULT left([retval, out] VARIANT *p);
+
+    [propget, id(DISPID_IHTMLSTYLE_POSITION)]
+    HRESULT position([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_ZINDEX)]
+    HRESULT zIndex([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLE_ZINDEX)]
+    HRESULT zIndex([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_OVERFLOW)]
+    HRESULT overflow([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_OVERFLOW)]
+    HRESULT overflow([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_PAGEBREAKBEFORE)]
+    HRESULT pageBreakBefore([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_PAGEBREAKBEFORE)]
+    HRESULT pageBreakBefore([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_PAGEBREAKAFTER)]
+    HRESULT pageBreakAfter([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_PAGEBREAKAFTER)]
+    HRESULT pageBreakAfter([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_CSSTEXT)]
+    HRESULT cssText([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_CSSTEXT)]
+    HRESULT cssText([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_PIXELTOP)]
+    HRESULT pixelTop([in] long v);
+
+    [propget, id(DISPID_IHTMLSTYLE_PIXELTOP)]
+    HRESULT pixelTop([retval, out] long *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_PIXELLEFT)]
+    HRESULT pixelLeft([in] long v);
+
+    [propget, id(DISPID_IHTMLSTYLE_PIXELLEFT)]
+    HRESULT pixelLeft([retval, out] long *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_PIXELWIDTH)]
+    HRESULT pixelWidth([in] long v);
+
+    [propget, id(DISPID_IHTMLSTYLE_PIXELWIDTH)]
+    HRESULT pixelWidth([retval, out] long *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_PIXELHEIGHT)]
+    HRESULT pixelHeight([in] long v);
+
+    [propget, id(DISPID_IHTMLSTYLE_PIXELHEIGHT)]
+    HRESULT pixelHeight([retval, out] long *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_POSTOP)]
+    HRESULT posTop([in] float v);
+
+    [propget, id(DISPID_IHTMLSTYLE_POSTOP)]
+    HRESULT posTop([retval, out] float *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_POSLEFT)]
+    HRESULT posLeft([in] float v);
+
+    [propget, id(DISPID_IHTMLSTYLE_POSLEFT)]
+    HRESULT posLeft([retval, out] float *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_POSWIDTH)]
+    HRESULT posWidth([in] float v);
+
+    [propget, id(DISPID_IHTMLSTYLE_POSWIDTH)]
+    HRESULT posWidth([retval, out] float *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_POSHEIGHT)]
+    HRESULT posHeight([in] float v);
+
+    [propget, id(DISPID_IHTMLSTYLE_POSHEIGHT)]
+    HRESULT posHeight([retval, out] float *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_CURSOR)]
+    HRESULT cursor([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_CURSOR)]
+    HRESULT cursor([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_CLIP)]
+    HRESULT clip([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_CLIP)]
+    HRESULT clip([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLE_FILTER)]
+    HRESULT filter([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLE_FILTER)]
+    HRESULT filter([retval, out] BSTR *p);
+
+    [id(DISPID_IHTMLSTYLE_SETATTRIBUTE)]
+    HRESULT setAttribute(
+        [in] BSTR strAttributeName,
+        [in] VARIANT AttributeValue,
+        [defaultvalue(1), in] LONG lFlags);
+
+    [id(DISPID_IHTMLSTYLE_GETATTRIBUTE)]
+    HRESULT getAttribute(
+        [in] BSTR strAttributeName,
+        [defaultvalue(0), in] LONG lFlags,
+        [retval, out] VARIANT *AttributeValue);
+
+    [id(DISPID_IHTMLSTYLE_REMOVEATTRIBUTE)]
+    HRESULT removeAttribute(
+        [in] BSTR strAttributeName,
+        [defaultvalue(1), in]
+        LONG lFlags,
+        [retval, out] VARIANT_BOOL *pfSuccess);
+
+    [id(DISPID_IHTMLSTYLE_TOSTRING)]
+    HRESULT toString([retval, out] BSTR *String);
+}
+
+/*****************************************************************************
+ *    IHTMLRuleStyle interface
+ */
+[
+	odl,
+	oleautomation,
+	dual,
+	uuid(3050F3CF-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLRuleStyle : IDispatch
+{
+    [propput, id(DISPID_IHTMLRULESTYLE_FONTFAMILY)]
+    HRESULT fontFamily([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_FONTFAMILY)]
+    HRESULT fontFamily([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_FONTSTYLE)]
+    HRESULT fontStyle([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_FONTSTYLE)]
+    HRESULT fontStyle([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_FONTVARIANT)]
+    HRESULT fontVariant([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_FONTVARIANT)]
+    HRESULT fontVariant([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_FONTWEIGHT)]
+    HRESULT fontWeight([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_FONTWEIGHT)]
+    HRESULT fontWeight([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_FONTSIZE)]
+    HRESULT fontSize([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_FONTSIZE)]
+    HRESULT fontSize([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_FONT)]
+    HRESULT font([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_FONT)]
+    HRESULT font([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_COLOR)]
+    HRESULT color([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_COLOR)]
+    HRESULT color([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUND)]
+    HRESULT background([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUND)]
+    HRESULT background([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR)]
+    HRESULT backgroundColor([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR)]
+    HRESULT backgroundColor([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE)]
+    HRESULT backgroundImage([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE)]
+    HRESULT backgroundImage([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT)]
+    HRESULT backgroundRepeat([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT)]
+    HRESULT backgroundRepeat([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT)]
+    HRESULT backgroundAttachment([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT)]
+    HRESULT backgroundAttachment([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION)]
+    HRESULT backgroundPosition([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION)]
+    HRESULT backgroundPosition([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX)]
+    HRESULT backgroundPositionX([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX)]
+    HRESULT backgroundPositionX([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY)]
+    HRESULT backgroundPositionY([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY)]
+    HRESULT backgroundPositionY([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_WORDSPACING)]
+    HRESULT wordSpacing([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_WORDSPACING)]
+    HRESULT wordSpacing([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_LETTERSPACING)]
+    HRESULT letterSpacing([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_LETTERSPACING)]
+    HRESULT letterSpacing([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATION)]
+    HRESULT textDecoration([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATION)]
+    HRESULT textDecoration([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE)]
+    HRESULT textDecorationNone([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE)]
+    HRESULT textDecorationNone([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE)]
+    HRESULT textDecorationUnderline([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE)]
+    HRESULT textDecorationUnderline([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE)]
+    HRESULT textDecorationOverline([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE)]
+    HRESULT textDecorationOverline([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH)]
+    HRESULT textDecorationLineThrough([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH)]
+    HRESULT textDecorationLineThrough([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK)]
+    HRESULT textDecorationBlink([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK)]
+    HRESULT textDecorationBlink([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_VERTICALALIGN)]
+    HRESULT verticalAlign([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_VERTICALALIGN)]
+    HRESULT verticalAlign([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_TEXTTRANSFORM)]
+    HRESULT textTransform([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_TEXTTRANSFORM)]
+    HRESULT textTransform([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_TEXTALIGN)]
+    HRESULT textAlign([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_TEXTALIGN)]
+    HRESULT textAlign([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_TEXTINDENT)]
+    HRESULT textIndent([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_TEXTINDENT)]
+    HRESULT textIndent([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_LINEHEIGHT)]
+    HRESULT lineHeight([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_LINEHEIGHT)]
+    HRESULT lineHeight([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_MARGINTOP)]
+    HRESULT marginTop([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_MARGINTOP)]
+    HRESULT marginTop([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_MARGINRIGHT)]
+    HRESULT marginRight([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_MARGINRIGHT)]
+    HRESULT marginRight([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_MARGINBOTTOM)]
+    HRESULT marginBottom([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_MARGINBOTTOM)]
+    HRESULT marginBottom([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_MARGINLEFT)]
+    HRESULT marginLeft([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_MARGINLEFT)]
+    HRESULT marginLeft([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_MARGIN)]
+    HRESULT margin([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_MARGIN)]
+    HRESULT margin([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_PADDINGTOP)]
+    HRESULT paddingTop([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_PADDINGTOP)]
+    HRESULT paddingTop([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_PADDINGRIGHT)]
+    HRESULT paddingRight([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_PADDINGRIGHT)]
+    HRESULT paddingRight([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_PADDINGBOTTOM)]
+    HRESULT paddingBottom([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_PADDINGBOTTOM)]
+    HRESULT paddingBottom([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_PADDINGLEFT)]
+    HRESULT paddingLeft([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_PADDINGLEFT)]
+    HRESULT paddingLeft([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_PADDING)]
+    HRESULT padding([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_PADDING)]
+    HRESULT padding([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDER)]
+    HRESULT border([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDER)]
+    HRESULT border([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOP)]
+    HRESULT borderTop([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOP)]
+    HRESULT borderTop([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHT)]
+    HRESULT borderRight([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHT)]
+    HRESULT borderRight([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOM)]
+    HRESULT borderBottom([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOM)]
+    HRESULT borderBottom([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFT)]
+    HRESULT borderLeft([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFT)]
+    HRESULT borderLeft([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERCOLOR)]
+    HRESULT borderColor([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERCOLOR)]
+    HRESULT borderColor([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR)]
+    HRESULT borderTopColor([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR)]
+    HRESULT borderTopColor([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR)]
+    HRESULT borderRightColor([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR)]
+    HRESULT borderRightColor([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR)]
+    HRESULT borderBottomColor([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR)]
+    HRESULT borderBottomColor([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR)]
+    HRESULT borderLeftColor([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR)]
+    HRESULT borderLeftColor([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERWIDTH)]
+    HRESULT borderWidth([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERWIDTH)]
+    HRESULT borderWidth([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH)]
+    HRESULT borderTopWidth([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH)]
+    HRESULT borderTopWidth([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH)]
+    HRESULT borderRightWidth([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH)]
+    HRESULT borderRightWidth([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH)]
+    HRESULT borderBottomWidth([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH)]
+    HRESULT borderBottomWidth([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH)]
+    HRESULT borderLeftWidth([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH)]
+    HRESULT borderLeftWidth([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERSTYLE)]
+    HRESULT borderStyle([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERSTYLE)]
+    HRESULT borderStyle([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE)]
+    HRESULT borderTopStyle([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE)]
+    HRESULT borderTopStyle([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE)]
+    HRESULT borderRightStyle([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE)]
+    HRESULT borderRightStyle([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE)]
+    HRESULT borderBottomStyle([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE)]
+    HRESULT borderBottomStyle([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE)]
+    HRESULT borderLeftStyle([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE)]
+    HRESULT borderLeftStyle([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_WIDTH)]
+    HRESULT width([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_WIDTH)]
+    HRESULT width([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_HEIGHT)]
+    HRESULT height([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_HEIGHT)]
+    HRESULT height([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_STYLEFLOAT)]
+    HRESULT styleFloat([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_STYLEFLOAT)]
+    HRESULT styleFloat([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_CLEAR)]
+    HRESULT clear([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_CLEAR)]
+    HRESULT clear([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_DISPLAY)]
+    HRESULT display([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_DISPLAY)]
+    HRESULT display([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_VISIBILITY)]
+    HRESULT visibility([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_VISIBILITY)]
+    HRESULT visibility([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLETYPE)]
+    HRESULT listStyleType([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLETYPE)]
+    HRESULT listStyleType([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION)]
+    HRESULT listStylePosition([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION)]
+    HRESULT listStylePosition([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE)]
+    HRESULT listStyleImage([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE)]
+    HRESULT listStyleImage([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLE)]
+    HRESULT listStyle([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLE)]
+    HRESULT listStyle([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_WHITESPACE)]
+    HRESULT whiteSpace([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_WHITESPACE)]
+    HRESULT whiteSpace([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_TOP)]
+    HRESULT top([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_TOP)]
+    HRESULT top([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_LEFT)]
+    HRESULT left([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_LEFT)]
+    HRESULT left([retval, out] VARIANT *p);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_POSITION)]
+    HRESULT position([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_ZINDEX)]
+    HRESULT zIndex([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_ZINDEX)]
+    HRESULT zIndex([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_OVERFLOW)]
+    HRESULT overflow([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_OVERFLOW)]
+    HRESULT overflow([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE)]
+    HRESULT pageBreakBefore([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE)]
+    HRESULT pageBreakBefore([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER)]
+    HRESULT pageBreakAfter([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER)]
+    HRESULT pageBreakAfter([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_CSSTEXT)]
+    HRESULT cssText([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_CSSTEXT)]
+    HRESULT cssText([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_CURSOR)]
+    HRESULT cursor([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_CURSOR)]
+    HRESULT cursor([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_CLIP)]
+    HRESULT clip([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_CLIP)]
+    HRESULT clip([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLRULESTYLE_FILTER)]
+    HRESULT filter([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLRULESTYLE_FILTER)]
+    HRESULT filter([retval, out] BSTR *p);
+
+    [id(DISPID_IHTMLRULESTYLE_SETATTRIBUTE)]
+    HRESULT setAttribute(
+        [in] BSTR strAttributeName,
+        [in] VARIANT AttributeValue,
+        [defaultvalue(1), in] LONG lFlags);
+
+    [id(DISPID_IHTMLRULESTYLE_GETATTRIBUTE)]
+    HRESULT getAttribute(
+        [in] BSTR strAttributeName,
+        [defaultvalue(0), in] LONG lFlags,
+        [retval, out] VARIANT *AttributeValue);
+
+    [id(DISPID_IHTMLRULESTYLE_REMOVEATTRIBUTE)]
+    HRESULT removeAttribute(
+        [in] BSTR strAttributeName,
+        [defaultvalue(1), in] LONG lFlags,
+        [retval, out] VARIANT_BOOL *pfSuccess);
+}
+
+/*****************************************************************************
+ *    IHTMLFiltersCollection interface
+ */
+[
+	odl,
+	oleautomation,
+	dual,
+	uuid(3050F3EE-98B5-11Cf-BB82-00AA00BDCE0B)
+]
+interface IHTMLFiltersCollection : IDispatch
+{
+    [propget, id(DISPID_IHTMLFILTERSCOLLECTION_LENGTH)]
+    HRESULT length([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLFILTERSCOLLECTION__NEWENUM)]
+    HRESULT _newEnum([retval, out] IUnknown **p);
+
+    [id(DISPID_IHTMLFILTERSCOLLECTION_ITEM)]
+    HRESULT item(
+        [in] VARIANT *pvarIndex,
+        [retval, out] VARIANT *pvarResult);
+}
+
+
+/*****************************************************************************
+ *    IHTMLElement interface
+ */
+[
+    odl,
+    dual,
+    oleautomation,
+    uuid(3050f1FF-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLElement : IDispatch
+{
+    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
+    HRESULT setAttribute(
+        [in] BSTR strAttributeName,
+        [in] VARIANT AttributeValue,
+        [defaultvalue(1), in] LONG lFlags);
+
+    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
+    HRESULT getAttribute(
+        [in] BSTR strAttributeName,
+        [defaultvalue(0), in] LONG lFlags,
+        [retval, out] VARIANT AttributeValue);
+
+    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
+    HRESULT removeAttribute(
+        [in] BSTR strAttributeName,
+        [defaultvalue(1), in] LONG lFlags,
+        [retval, out] VARIANT_BOOL *pfSuccess);
+
+    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME)]
+    HRESULT className([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME)]
+    HRESULT className([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ID)]
+    HRESULT id([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ID)]
+    HRESULT id([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
+    HRESULT tagName([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
+    HRESULT parentElement([retval, out] IHTMLElement **p);
+
+    [propget, id(DISPID_IHTMLELEMENT_STYLE)]
+    HRESULT style([retval, out] IHTMLStyle **p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONHELP)]
+    HRESULT onhelp([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONHELP)]
+    HRESULT onhelp([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONCLICK)]
+    HRESULT onclick([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONCLICK)]
+    HRESULT onclick([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
+    HRESULT ondblclick([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
+    HRESULT ondblclick([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
+    HRESULT onkeydown([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
+    HRESULT onkeydown([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP)]
+    HRESULT onkeyup([in] VARIANT v);
+    
+    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP)]
+    HRESULT onkeyup([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
+    HRESULT onkeypress([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
+    HRESULT onkeypress([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
+    HRESULT onmouseout([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
+    HRESULT onmouseout([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
+    HRESULT onmouseover([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
+    HRESULT onmouseover([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
+    HRESULT onmousemove([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
+    HRESULT onmousemove([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
+    HRESULT onmousedown([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
+    HRESULT onmousedown([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
+    HRESULT onmouseup([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
+    HRESULT onmouseup([retval, out] VARIANT *p);
+
+    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
+    HRESULT document([retval, out] IDispatch **p);
+
+    [propput, id(DISPID_IHTMLELEMENT_TITLE)]
+    HRESULT title([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLELEMENT_TITLE)]
+    HRESULT title([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE)]
+    HRESULT language([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE)]
+    HRESULT language([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
+    HRESULT onselectstart([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
+    HRESULT onselectstart([retval, out] VARIANT *p);
+
+    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
+    HRESULT scrollIntoView([optional, in] VARIANT varargStart);
+
+    [id(DISPID_IHTMLELEMENT_CONTAINS)]
+    HRESULT contains(
+        [in] IHTMLElement *pChild,
+        [retval, out] VARIANT_BOOL *pfResult);
+
+    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX)]
+    HRESULT sourceIndex([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
+    HRESULT recordNumber([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_LANG)]
+    HRESULT lang([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLELEMENT_LANG)]
+    HRESULT lang([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
+    HRESULT offsetLeft([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
+    HRESULT offsetTop([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
+    HRESULT offsetWidth([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
+    HRESULT offsetHeight([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
+    HRESULT offsetParent([retval, out] IHTMLElement **p);
+
+    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
+    HRESULT innerHTML([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
+    HRESULT innerHTML([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
+    HRESULT innerText([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
+    HRESULT innerText([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
+    HRESULT outerHTML([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
+    HRESULT outerHTML([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
+    HRESULT outerText([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
+    HRESULT outerText([retval, out] BSTR *p);
+
+    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
+    HRESULT insertAdjacentHTML([in] BSTR where, [in] BSTR html);
+
+    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
+    HRESULT insertAdjacentText([in] BSTR where, [in] BSTR text);
+
+    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
+    HRESULT parentTextEdit([retval, out] IHTMLElement **p);
+
+    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
+    HRESULT isTextEdit([retval, out] VARIANT_BOOL *p);
+
+    [id(DISPID_IHTMLELEMENT_CLICK)]
+    HRESULT click();
+
+    [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
+    HRESULT filters([retval, out] IHTMLFiltersCollection **p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
+    HRESULT ondragstart([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
+    HRESULT ondragstart([retval, out] VARIANT *p);
+
+    [id(DISPID_IHTMLELEMENT_TOSTRING)]
+    HRESULT toString([retval, out] BSTR *String);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
+    HRESULT onbeforeupdate([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
+    HRESULT onbeforeupdate([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
+    HRESULT onafterupdate([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
+    HRESULT onafterupdate([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
+    HRESULT onerrorupdate([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
+    HRESULT onerrorupdate([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
+    HRESULT onrowexit([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
+    HRESULT onrowexit([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER)]
+    HRESULT onrowenter([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER)]
+    HRESULT onrowenter([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
+    HRESULT ondatasetchanged([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
+    HRESULT ondatasetchanged([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
+    HRESULT ondataavailable([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
+    HRESULT ondataavailable([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
+    HRESULT ondatasetcomplete([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
+    HRESULT ondatasetcomplete([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
+    HRESULT onfilterchange([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
+    HRESULT onfilterchange([retval, out] VARIANT *p);
+
+    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
+    HRESULT children([retval, out] IDispatch **p);
+
+    [propget, id(DISPID_IHTMLELEMENT_ALL)]
+    HRESULT all([retval, out] IDispatch **p);
+}
+
+/*****************************************************************************
+ *    IHTMLStyleSheetRule interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F357-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLStyleSheetRule : IDispatch
+{
+    [propput, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
+    HRESULT selectorText([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
+    HRESULT selectorText([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLSTYLESHEETRULE_STYLE)]
+    HRESULT style([retval, out] IHTMLRuleStyle **p);
+
+    [propget, id(DISPID_IHTMLSTYLESHEETRULE_READONLY)]
+    HRESULT readOnly([retval, out] VARIANT_BOOL *p);
+}
+
+/*****************************************************************************
+ *    IHTMLStyleSheetRulesCollection interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F2E5-98B5-11Cf-BB82-00AA00BDCE0B)
+]
+interface IHTMLStyleSheetRulesCollection : IDispatch
+{
+    [propget, id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_LENGTH)]
+    HRESULT length([retval, out] long *p);
+
+    [id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_ITEM)]
+    HRESULT item(
+        [in] long index,
+        [retval, out] IHTMLStyleSheetRule **ppHTMLStyleSheetRule);
+}
+
+/*****************************************************************************
+ *    IHTMLStyleSheet interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F2E3-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLStyleSheet : IDispatch
+{
+    [propput, id(DISPID_IHTMLSTYLESHEET_TITLE)]
+    HRESULT title([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLESHEET_TITLE)]
+    HRESULT title([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLSTYLESHEET_PARENTSTYLESHEET)]
+    HRESULT parentStyleSheet([retval, out] IHTMLStyleSheet **p);
+
+    [propget, id(DISPID_IHTMLSTYLESHEET_OWNINGELEMENT)]
+    HRESULT owningElement([retval, out] IHTMLElement **p);
+
+    [propput, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
+    HRESULT disabled([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
+    HRESULT disabled([retval, out] VARIANT_BOOL *p);
+
+    [propget, id(DISPID_IHTMLSTYLESHEET_READONLY)]
+    HRESULT readOnly([retval, out] VARIANT_BOOL *p);
+
+    [propget, id(DISPID_IHTMLSTYLESHEET_IMPORTS)]
+    HRESULT imports([retval, out] IHTMLStyleSheetsCollection **p);
+
+    [propput, id(DISPID_IHTMLSTYLESHEET_HREF)]
+    HRESULT href([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLESHEET_HREF)]
+    HRESULT href([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLSTYLESHEET_TYPE)]
+    HRESULT type([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLSTYLESHEET_ID)]
+    HRESULT id([retval, out] BSTR *p);
+
+    [id(DISPID_IHTMLSTYLESHEET_ADDIMPORT)]
+    HRESULT addImport(
+        [in] BSTR bstrURL,
+        [defaultvalue(-1), in] long lIndex,
+        [retval, out] long *plIndex);
+
+    [id(DISPID_IHTMLSTYLESHEET_ADDRULE)]
+    HRESULT addRule(
+        [in] BSTR bstrSelector,
+        [in] BSTR bstrStyle,
+        [defaultvalue(-1), in] long lIndex,
+        [retval, out] long *plNewIndex);
+
+    [id(DISPID_IHTMLSTYLESHEET_REMOVEIMPORT)]
+    HRESULT removeImport([in] long lIndex);
+
+    [id(DISPID_IHTMLSTYLESHEET_REMOVERULE)]
+    HRESULT removeRule([in] long lIndex);
+
+    [propput, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
+    HRESULT media([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
+    HRESULT media([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
+    HRESULT cssText([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
+    HRESULT cssText([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLSTYLESHEET_RULES)]
+    HRESULT rules([retval, out] IHTMLStyleSheetRulesCollection **p);
+}
+
+/*****************************************************************************
+ *    IHTMLStyleSheetsCollection interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F37E-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLStyleSheetsCollection : IDispatch
+{
+    [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION_LENGTH)]
+    HRESULT length([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION__NEWENUM)]
+    HRESULT _newEnum([retval, out] IUnknown **p);
+
+    [id(DISPID_IHTMLSTYLESHEETSCOLLECTION_ITEM)]
+    HRESULT item(
+        [in] VARIANT *pvarIndex,
+        [retval, out] VARIANT *pvarResult);
+}
+
+/*****************************************************************************
+ *    IHTMLFormElement interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F1F7-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLFormElement : IDispatch
+{
+    [propput, id(DISPID_IHTMLFORMELEMENT_ACTION)]
+    HRESULT action([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLFORMELEMENT_ACTION)]
+    HRESULT action([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLFORMELEMENT_DIR)]
+    HRESULT dir([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLFORMELEMENT_DIR)]
+    HRESULT dir([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
+    HRESULT encoding([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
+    HRESULT encoding([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLFORMELEMENT_METHOD)]
+    HRESULT method([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLFORMELEMENT_METHOD)]
+    HRESULT method([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLFORMELEMENT_ELEMENTS)]
+    HRESULT elements([retval, out] IDispatch **p);
+
+    [propput, id(DISPID_IHTMLFORMELEMENT_TARGET)]
+    HRESULT target([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLFORMELEMENT_TARGET)]
+    HRESULT target([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLFORMELEMENT_NAME)]
+    HRESULT name([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLFORMELEMENT_NAME)]
+    HRESULT name([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
+    HRESULT onsubmit([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
+    HRESULT onsubmit([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
+    HRESULT onreset([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
+    HRESULT onreset([retval, out] VARIANT *p);
+
+    [id(DISPID_IHTMLFORMELEMENT_SUBMIT)]
+    HRESULT submit();
+
+    [id(DISPID_IHTMLFORMELEMENT_RESET)]
+    HRESULT reset();
+
+    [propput, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
+    HRESULT length([in] long v);
+
+    [propget, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
+    HRESULT length([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLFORMELEMENT__NEWENUM)]
+    HRESULT _newEnum([retval, out] IUnknown **p);
+
+    [id(DISPID_IHTMLFORMELEMENT_ITEM)]
+    HRESULT item(
+        [optional, in] VARIANT name,
+        [optional, in] VARIANT index,
+        [retval, out] IDispatch **pdisp);
+
+    [id(DISPID_IHTMLFORMELEMENT_TAGS)]
+    HRESULT tags(
+        [in] VARIANT tagName,
+        [retval, out] IDispatch **pdisp);
+}
+
+/*****************************************************************************
+ *    IHTMLImgElement interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F240-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLImgElement : IDispatch
+{
+    [propput, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
+    HRESULT isMap([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
+    HRESULT isMap([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
+    HRESULT useMap([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
+    HRESULT useMap([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_MIMETYPE)]
+    HRESULT mimeType([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_FILESIZE)]
+    HRESULT fileSize([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_FILECREATEDDATE)]
+    HRESULT fileCreatedDate([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_FILEMODIFIEDDATE)]
+    HRESULT fileModifiedDate([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_FILEUPDATEDDATE)]
+    HRESULT fileUpdatedDate([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_PROTOCOL)]
+    HRESULT protocol([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_HREF)]
+    HRESULT href([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_NAMEPROP)]
+    HRESULT nameProp([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_BORDER)]
+    HRESULT border([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_BORDER)]
+    HRESULT border([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
+    HRESULT vspace([in] long v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
+    HRESULT vspace([retval, out] long *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
+    HRESULT hspace([in] long v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
+    HRESULT hspace([retval, out] long *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_ALT)]
+    HRESULT alt([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_ALT)]
+    HRESULT alt([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_SRC)]
+    HRESULT src([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_SRC)]
+    HRESULT src([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
+    HRESULT lowsrc([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
+    HRESULT lowsrc([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_VRML)]
+    HRESULT vrml([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_VRML)]
+    HRESULT vrml([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
+    HRESULT dynsrc([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
+    HRESULT dynsrc([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_READYSTATE)]
+    HRESULT readyState([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_COMPLETE)]
+    HRESULT complete([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_LOOP)]
+    HRESULT loop([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_LOOP)]
+    HRESULT loop([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
+    HRESULT align([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
+    HRESULT align([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
+    HRESULT onload([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
+    HRESULT onload([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
+    HRESULT onerror([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
+    HRESULT onerror([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
+    HRESULT onabort([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
+    HRESULT onabort([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_NAME)]
+    HRESULT name([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_NAME)]
+    HRESULT name([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
+    HRESULT width([in] long v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
+    HRESULT width([retval, out] long *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
+    HRESULT height([in] long v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
+    HRESULT height([retval, out] long *p);
+
+    [propput, id(DISPID_IHTMLIMGELEMENT_START)]
+    HRESULT start([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLIMGELEMENT_START)]
+    HRESULT start([retval, out] BSTR *p);
+}
+
+/*****************************************************************************
+ *    IHTMLImageElementFactory interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F38E-98B5-11CF-BB82-00AAA0BDCE0B)
+]
+interface IHTMLImageElementFactory : IDispatch
+{
+    [id(DISPID_IHTMLIMAGEELEMENTFACTORY_CREATE)]
+    HRESULT create(
+        [optional, in] VARIANT width,
+        [optional, in] VARIANT height,
+        [retval, out]  IHTMLImgElement **elem);
+}
+
+/*****************************************************************************
+ *    IHTMLElementCollection interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F21F-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLElementCollection : IDispatch
+{
+    [id(DISPID_IHTMLELEMENTCOLLECTION_TOSTRING)]
+    HRESULT toString([retval, out] BSTR *String);
+
+    [propput, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
+    HRESULT length([in] long v);
+
+    [propget, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
+    HRESULT length([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLELEMENTCOLLECTION__NEWENUM)]
+    HRESULT _newEnum([retval, out] IUnknown **p);
+
+    [id(DISPID_IHTMLELEMENTCOLLECTION_ITEM)]
+    HRESULT item(
+        [optional, in] VARIANT name,
+        [optional, in] VARIANT index,
+        [retval,  out] IDispatch **pdisp);
+
+    [id(DISPID_IHTMLELEMENTCOLLECTION_TAGS)]
+    HRESULT tags(
+        [in] VARIANT tagName,
+        [retval, out] IDispatch **pdisp);
+}
+
+/*****************************************************************************
+ *    IHTMLSelectionObject interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F25A-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLSelectionObject : IDispatch
+{
+    [id(DISPID_IHTMLSELECTIONOBJECT_CREATERANGE)]
+    HRESULT createRange([retval, out] IDispatch **range);
+
+    [id(DISPID_IHTMLSELECTIONOBJECT_EMPTY)]
+    HRESULT empty();
+
+    [id(DISPID_IHTMLSELECTIONOBJECT_CLEAR)]
+    HRESULT clear();
+
+    [propget, id(DISPID_IHTMLSELECTIONOBJECT_TYPE)]
+    HRESULT type([retval, out] BSTR *p);
+}
+
+/*****************************************************************************
+ *    IHTMLOptionElement interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F211-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLOptionElement : IDispatch
+{
+    [propput, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
+    HRESULT selected([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
+    HRESULT selected([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
+    HRESULT value([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
+    HRESULT value([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
+    HRESULT defaultSelected([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
+    HRESULT defaultSelected([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
+    HRESULT index([in] LONG v);
+
+    [propget, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
+    HRESULT index([retval, out] LONG *p);
+
+    [propput, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
+    HRESULT text([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
+    HRESULT text([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLOPTIONELEMENT_FORM)]
+    HRESULT form([retval, out] IHTMLFormElement **p);
+}
+
+/*****************************************************************************
+ *    IHTMLOptionElementFactory interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F38C-98B5-11Cf-BB82-00AA00BDCE0B)
+]
+interface IHTMLOptionElementFactory : IDispatch
+{
+    [id(DISPID_IHTMLOPTIONELEMENTFACTORY_CREATE)]
+    HRESULT create(
+        [optional, in] VARIANT text,
+        [optional, in] VARIANT value,
+        [optional, in] VARIANT defaultselected,
+        [optional, in] VARIANT selected,
+        [retval, out] IHTMLOptionElement **optelem);
+}
+
+/*****************************************************************************
+ *    IOmHistory interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(FECEAAA2-8405-11CF-8BA1-00AA00476DA6)
+]
+interface IOmHistory : IDispatch
+{
+    [propget, id(DISPID_IOMHISTORY_LENGTH)]
+    HRESULT length([retval, out] short *p);
+
+    [id(DISPID_IOMHISTORY_BACK)]
+    HRESULT back([optional, in] VARIANT *pvargdistance);
+
+    [id(DISPID_IOMHISTORY_FORWARD)]
+    HRESULT forward([optional, in] VARIANT *pvargdistance);
+
+    [id(DISPID_IOMHISTORY_GO)]
+    HRESULT go([optional, in] VARIANT *pvargdistance);
+}
+
+/*****************************************************************************
+ *    IHTMLMimeTypesCollection interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F3FC-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLMimeTypesCollection : IDispatch
+{
+    [propget, id(DISPID_IHTMLMIMETYPESCOLLECTION_LENGTH)]
+    HRESULT length([retval, out] long *p);
+}
+
+/*****************************************************************************
+ *    IHTMLPluginsCollection interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F3FD-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLPluginsCollection : IDispatch
+{
+    [propget, id(DISPID_IHTMLPLUGINSCOLLECTION_LENGTH)]
+    HRESULT length([retval, out] long *p);
+
+    [id(DISPID_IHTMLPLUGINSCOLLECTION_REFRESH)]
+    HRESULT refresh([defaultvalue(0), in] VARIANT_BOOL reload);
+}
+
+/*****************************************************************************
+ *    IHTMLOpsProfile interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F401-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLOpsProfile : IDispatch
+{
+    [id(DISPID_IHTMLOPSPROFILE_ADDREQUEST)]
+    HRESULT addRequest(
+        [in] BSTR name,
+        [optional, in] VARIANT reserved,
+        [retval, out] VARIANT_BOOL *success);
+
+    [id(DISPID_IHTMLOPSPROFILE_CLEARREQUEST)]
+    HRESULT clearRequest();
+
+    [id(DISPID_IHTMLOPSPROFILE_DOREQUEST)]
+    HRESULT doRequest(
+        [in] VARIANT usage,
+        [optional, in] VARIANT fname,
+        [optional, in] VARIANT domain,
+        [optional, in] VARIANT path,
+        [optional, in] VARIANT expire,
+        [optional, in] VARIANT reserved);
+
+    [id(DISPID_IHTMLOPSPROFILE_GETATTRIBUTE)]
+    HRESULT getAttribute(
+        [in] BSTR name,
+        [retval, out] BSTR *value);
+
+    [id(DISPID_IHTMLOPSPROFILE_SETATTRIBUTE)]
+    HRESULT setAttribute(
+        [in] BSTR name,
+        [in] BSTR value,
+        [optional, in] VARIANT prefs,
+        [retval, out] VARIANT_BOOL *success);
+
+    [id(DISPID_IHTMLOPSPROFILE_COMMITCHANGES)]
+    HRESULT commitChanges([retval, out] VARIANT_BOOL *success);
+
+    [id(DISPID_IHTMLOPSPROFILE_ADDREADREQUEST)]
+    HRESULT addReadRequest(
+        [in] BSTR name,
+        [optional, in] VARIANT reserved,
+        [retval, out] VARIANT_BOOL *success);
+
+    [id(DISPID_IHTMLOPSPROFILE_DOREADREQUEST)]
+    HRESULT doReadRequest(
+        [in] VARIANT usage,
+        [optional, in] VARIANT fname,
+        [optional, in] VARIANT domain,
+        [optional, in] VARIANT path,
+        [optional, in] VARIANT expire,
+        [optional, in] VARIANT reserved);
+
+    [id(DISPID_IHTMLOPSPROFILE_DOWRITEREQUEST)]
+    HRESULT doWriteRequest([retval, out] VARIANT_BOOL *success);
+}
+
+/*****************************************************************************
+ *    IOmNavigator interface
+ */
+[
+	odl,
+	oleautomation,
+	dual,
+	uuid(FECEAAA5-8405-11CF-8BA1-00AA00476DA6)
+]
+interface IOmNavigator : IDispatch
+{
+    [propget, id(DISPID_IOMNAVIGATOR_APPCODENAME)]
+    HRESULT appCodeName([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IOMNAVIGATOR_APPNAME)]
+    HRESULT appName([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IOMNAVIGATOR_APPVERSION)]
+    HRESULT appVersion([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IOMNAVIGATOR_USERAGENT)]
+    HRESULT userAgent([retval, out] BSTR *p);
+
+    [id(DISPID_IOMNAVIGATOR_JAVAENABLED)]
+    HRESULT javaEnabled([retval, out] VARIANT_BOOL *enabled);
+
+    [id(DISPID_IOMNAVIGATOR_TAINTENABLED)]
+    HRESULT taintEnabled([retval, out] VARIANT_BOOL *enabled);
+
+    [propget, id(DISPID_IOMNAVIGATOR_MIMETYPES)]
+    HRESULT mimeTypes([retval, out] IHTMLMimeTypesCollection **p);
+
+    [propget, id(DISPID_IOMNAVIGATOR_PLUGINS)]
+    HRESULT plugins([retval, out] IHTMLPluginsCollection **p);
+
+    [propget, id(DISPID_IOMNAVIGATOR_COOKIEENABLED)]
+    HRESULT cookieEnabled([retval, out] VARIANT_BOOL *p);
+
+    [propget, id(DISPID_IOMNAVIGATOR_OPSPROFILE)]
+    HRESULT opsProfile([retval, out] IHTMLOpsProfile **p);
+
+    [id(DISPID_IOMNAVIGATOR_TOSTRING)]
+    HRESULT toString([retval, out] BSTR *String);
+
+    [propget, id(DISPID_IOMNAVIGATOR_CPUCLASS)]
+    HRESULT cpuClass([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IOMNAVIGATOR_SYSTEMLANGUAGE)]
+    HRESULT systemLanguage([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IOMNAVIGATOR_BROWSERLANGUAGE)]
+    HRESULT browserLanguage([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IOMNAVIGATOR_USERLANGUAGE)]
+    HRESULT userLanguage([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IOMNAVIGATOR_PLATFORM)]
+    HRESULT platform([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IOMNAVIGATOR_APPMINORVERSION)]
+    HRESULT appMinorVersion([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IOMNAVIGATOR_CONNECTIONSPEED)]
+    HRESULT connectionSpeed([retval, out] long *p);
+
+    [propget, id(DISPID_IOMNAVIGATOR_ONLINE)]
+    HRESULT onLine([retval, out] VARIANT_BOOL *p);
+
+    [propget, id(DISPID_IOMNAVIGATOR_USERPROFILE)]
+    HRESULT userProfile([retval, out] IHTMLOpsProfile **p);
+}
+
+/*****************************************************************************
+ *    IHTMLLocation interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(163BB1E0-6E00-11cf-837A-48DC04C10000)
+]
+interface IHTMLLocation : IDispatch
+{
+    [propput, id(DISPID_IHTMLLOCATION_HREF)]
+    HRESULT href([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLLOCATION_HREF)]
+    HRESULT href([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLLOCATION_PROTOCOL)]
+    HRESULT protocol([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLLOCATION_PROTOCOL)]
+    HRESULT protocol([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLLOCATION_HOST)]
+    HRESULT host([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLLOCATION_HOST)]
+    HRESULT host([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLLOCATION_HOSTNAME)]
+    HRESULT hostname([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLLOCATION_HOSTNAME)]
+    HRESULT hostname([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLLOCATION_PORT)]
+    HRESULT port([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLLOCATION_PORT)]
+    HRESULT port([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLLOCATION_PATHNAME)]
+    HRESULT pathname([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLLOCATION_PATHNAME)]
+    HRESULT pathname([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLLOCATION_SEARCH)]
+    HRESULT search([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLLOCATION_SEARCH)]
+    HRESULT search([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLLOCATION_HASH)]
+    HRESULT hash([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLLOCATION_HASH)]
+    HRESULT hash([retval, out] BSTR *p);
+
+    [id(DISPID_IHTMLLOCATION_RELOAD)]
+    HRESULT reload([defaultvalue(0), in] VARIANT_BOOL flag);
+
+    [id(DISPID_IHTMLLOCATION_REPLACE)]
+    HRESULT replace([in] BSTR bstr);
+
+    [id(DISPID_IHTMLLOCATION_ASSIGN)]
+    HRESULT assign([in] BSTR bstr);
+
+    [id(DISPID_IHTMLLOCATION_TOSTRING)]
+    HRESULT toString([retval, out] BSTR *String);
+}
+
+/*****************************************************************************
+ *    IHTMLEventObj interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050F32D-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLEventObj : IDispatch
+{
+    [propget, id(DISPID_IHTMLEVENTOBJ_SRCELEMENT)]
+    HRESULT srcElement([retval, out] IHTMLElement **p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_ALTKEY)]
+    HRESULT altKey([retval, out] VARIANT_BOOL *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_CTRLKEY)]
+    HRESULT ctrlKey([retval, out] VARIANT_BOOL *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_SHIFTKEY)]
+    HRESULT shiftKey([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
+    HRESULT returnValue([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
+    HRESULT returnValue([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
+    HRESULT cancelBubble([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
+    HRESULT cancelBubble([retval, out] VARIANT_BOOL *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_FROMELEMENT)]
+    HRESULT fromElement([retval, out] IHTMLElement **p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_TOELEMENT)]
+    HRESULT toElement([retval, out] IHTMLElement **p);
+
+    [propput, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
+    HRESULT keyCode([in] long v);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
+    HRESULT keyCode([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_BUTTON)]
+    HRESULT button([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_TYPE)]
+    HRESULT type([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_QUALIFIER)]
+    HRESULT qualifier([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_REASON)]
+    HRESULT reason([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_X)]
+    HRESULT x([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_Y)]
+    HRESULT y([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTX)]
+    HRESULT clientX([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTY)]
+    HRESULT clientY([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETX)]
+    HRESULT offsetX([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETY)]
+    HRESULT offsetY([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_SCREENX)]
+    HRESULT screenX([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_SCREENY)]
+    HRESULT screenY([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLEVENTOBJ_SRCFILTER)]
+    HRESULT srcFilter([retval, out] IDispatch **p);
+}
+
+/*****************************************************************************
+ *    IHTMLFramesCollection2 interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(332C4426-26CB-11D0-B483-00C04FD90119)
+]
+interface IHTMLFramesCollection2 : IDispatch
+{
+    [id(DISPID_IHTMLFRAMESCOLLECTION2_ITEM)]
+    HRESULT item(
+        [in] VARIANT *pvarIndex,
+        [retval, out] VARIANT *pvarResult);
+
+    [propget, id(DISPID_IHTMLFRAMESCOLLECTION2_LENGTH)]
+    HRESULT length([retval, out] long *p);
+}
+
+/*****************************************************************************
+ *    IHTMLScreen interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050f35C-98B5-11CF-BB82-00AA00BDCE0B)
+]
+interface IHTMLScreen : IDispatch
+{
+    [propget, id(DISPID_IHTMLSCREEN_COLORDEPTH)]
+    HRESULT colorDepth([retval, out] long *p);
+
+    [propput, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
+    HRESULT bufferDepth([in] long v);
+
+    [propget, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
+    HRESULT bufferDepth([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLSCREEN_WIDTH)]
+    HRESULT width([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLSCREEN_HEIGHT)]
+    HRESULT height([retval, out] long *p);
+
+    [propput, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
+    HRESULT updateInterval([in] long v);
+
+    [propget, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
+    HRESULT updateInterval([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLSCREEN_AVAILHEIGHT)]
+    HRESULT availHeight([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLSCREEN_AVAILWIDTH)]
+    HRESULT availWidth([retval, out] long *p);
+
+    [propget, id(DISPID_IHTMLSCREEN_FONTSMOOTHINGENABLED)]
+    HRESULT fontSmoothingEnabled([retval, out] VARIANT_BOOL *p);
+}
+
+/*****************************************************************************
+ *    IHTMLWindow2 interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(332C4427-26CB-11D0-B483-00C04FD90119)
+]
+interface IHTMLWindow2 : IHTMLFramesCollection2
+{
+    [propget, id(DISPID_IHTMLWINDOW2_FRAMES)]
+    HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
+
+    [propput, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
+    HRESULT defaultStatus([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
+    HRESULT defaultStatus([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLWINDOW2_STATUS)]
+    HRESULT status([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLWINDOW2_STATUS)]
+    HRESULT status([retval, out] BSTR *p);
+
+    [id(DISPID_IHTMLWINDOW2_SETTIMEOUT)]
+    HRESULT setTimeout(
+        [in] BSTR expression,
+        [in] long msec,
+        [optional, in] VARIANT *language,
+        [retval, out] long *timerID);
+
+    [id(DISPID_IHTMLWINDOW2_CLEARTIMEOUT)]
+    HRESULT clearTimeout([in] long timerID);
+
+    [id(DISPID_IHTMLWINDOW2_ALERT)]
+    HRESULT alert([defaultvalue(""), in] BSTR message);
+
+    [id(DISPID_IHTMLWINDOW2_CONFIRM)]
+    HRESULT confirm(
+        [defaultvalue(""), in] BSTR message,
+        [retval, out] VARIANT_BOOL *confirmed);
+
+    [id(DISPID_IHTMLWINDOW2_PROMPT)]
+    HRESULT prompt(
+        [defaultvalue(""), in] BSTR message,
+        [defaultvalue("undefined"), in] BSTR defstr,
+        [retval, out] VARIANT *textdata);
+
+    [propget, id(DISPID_IHTMLWINDOW2_IMAGE)]
+    HRESULT Image([retval, out] IHTMLImageElementFactory **p);
+
+    [propget, id(DISPID_IHTMLWINDOW2_LOCATION)]
+    HRESULT location([retval, out] IHTMLLocation **p);
+
+    [propget, id(DISPID_IHTMLWINDOW2_HISTORY)]
+    HRESULT history([retval, out] IOmHistory **p);
+
+    [id(DISPID_IHTMLWINDOW2_CLOSE)]
+    HRESULT close();
+
+    [propput, id(DISPID_IHTMLWINDOW2_OPENER)]
+    HRESULT opener([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLWINDOW2_OPENER)]
+    HRESULT opener([retval, out] VARIANT *p);
+
+    [propget, id(DISPID_IHTMLWINDOW2_NAVIGATOR)]
+    HRESULT navigator([retval, out] IOmNavigator **p);
+
+    [propput, id(DISPID_IHTMLWINDOW2_NAME)]
+    HRESULT name([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLWINDOW2_NAME)]
+    HRESULT name([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLWINDOW2_PARENT)]
+    HRESULT parent([retval, out] IHTMLWindow2 **p);
+
+    [id(DISPID_IHTMLWINDOW2_OPEN)]
+    HRESULT open(
+        [defaultvalue(""), in] BSTR url,
+        [defaultvalue(""), in] BSTR name,
+        [defaultvalue(""), in] BSTR features,
+        [defaultvalue(0), in] VARIANT_BOOL replace,
+        [retval, out] IHTMLWindow2 **pomWindowResult);
+
+    [propget, id(DISPID_IHTMLWINDOW2_SELF)]
+    HRESULT self([retval, out] IHTMLWindow2 **p);
+
+    [propget, id(DISPID_IHTMLWINDOW2_TOP)]
+    HRESULT top([retval, out] IHTMLWindow2 **p);
+
+    [propget, id(DISPID_IHTMLWINDOW2_WINDOW)]
+    HRESULT window([retval, out] IHTMLWindow2 **p);
+
+    [id(DISPID_IHTMLWINDOW2_NAVIGATE)]
+    HRESULT navigate([in] BSTR url);
+
+    [propput, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
+    HRESULT onfocus([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
+    HRESULT onfocus([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLWINDOW2_ONBLUR)]
+    HRESULT onblur([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLWINDOW2_ONBLUR)]
+    HRESULT onblur([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLWINDOW2_ONLOAD)]
+    HRESULT onload([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLWINDOW2_ONLOAD)]
+    HRESULT onload([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
+    HRESULT onbeforeunload([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
+    HRESULT onbeforeunload([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
+    HRESULT onunload([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
+    HRESULT onunload([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLWINDOW2_ONHELP)]
+    HRESULT onhelp([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLWINDOW2_ONHELP)]
+    HRESULT onhelp([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLWINDOW2_ONERROR)]
+    HRESULT onerror([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLWINDOW2_ONERROR)]
+    HRESULT onerror([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
+    HRESULT onresize([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
+    HRESULT onresize([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
+    HRESULT onscroll([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
+    HRESULT onscroll([retval, out] VARIANT *p);
+
+    [propget, id(DISPID_IHTMLWINDOW2_DOCUMENT)]
+    HRESULT document([retval, out] IHTMLDocument2 **p);
+
+    [propget, id(DISPID_IHTMLWINDOW2_EVENT)]
+    HRESULT event([retval, out] IHTMLEventObj **p);
+
+    [propget, id(DISPID_IHTMLWINDOW2__NEWENUM)]
+    HRESULT _newEnum([retval, out] IUnknown **p);
+
+    [id(DISPID_IHTMLWINDOW2_SHOWMODALDIALOG)]
+    HRESULT showModalDialog(
+        [in] BSTR dialog,
+        [optional, in] VARIANT *varArgIn,
+        [optional, in] VARIANT *varOptions,
+        [retval, out] VARIANT *varArgOut);
+
+    [id(DISPID_IHTMLWINDOW2_SHOWHELP)]
+    HRESULT showHelp(
+        [in] BSTR helpURL,
+        [optional, in] VARIANT helpArg,
+        [defaultvalue(""), in] BSTR features);
+
+    [propget, id(DISPID_IHTMLWINDOW2_SCREEN)]
+    HRESULT screen([retval, out] IHTMLScreen **p);
+
+    [propget, id(DISPID_IHTMLWINDOW2_OPTION)]
+    HRESULT Option([retval, out] IHTMLOptionElementFactory **p);
+
+    [id(DISPID_IHTMLWINDOW2_FOCUS)]
+    HRESULT focus();
+
+    [propget, id(DISPID_IHTMLWINDOW2_CLOSED)]
+    HRESULT closed([retval, out] VARIANT_BOOL *p);
+
+    [id(DISPID_IHTMLWINDOW2_BLUR)]
+    HRESULT blur();
+
+    [id(DISPID_IHTMLWINDOW2_SCROLL)]
+    HRESULT scroll([in] long x, [in] long y);
+
+    [propget, id(DISPID_IHTMLWINDOW2_CLIENTINFORMATION)]
+    HRESULT clientInformation([retval, out] IOmNavigator **p);
+
+    [id(DISPID_IHTMLWINDOW2_SETINTERVAL)]
+    HRESULT setInterval([
+        in] BSTR expression,
+        [in] long msec,
+        [optional, in] VARIANT *language,
+        [retval, out] long *timerID);
+
+    [id(DISPID_IHTMLWINDOW2_CLEARINTERVAL)]
+    HRESULT clearInterval([in] long timerID);
+
+    [propput, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
+    HRESULT offscreenBuffering([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
+    HRESULT offscreenBuffering([retval, out] VARIANT *p);
+
+    [id(DISPID_IHTMLWINDOW2_EXECSCRIPT)]
+    HRESULT execScript(
+        [in] BSTR scode,
+        [defaultvalue("JScript"), in] BSTR language,
+        [retval, out] VARIANT *pvarRet);
+
+    [id(DISPID_IHTMLWINDOW2_TOSTRING)]
+    HRESULT toString([retval, out] BSTR *String);
+
+    [id(DISPID_IHTMLWINDOW2_SCROLLBY)]
+    HRESULT scrollBy([in] long x, [in] long y);
+
+    [id(DISPID_IHTMLWINDOW2_SCROLLTO)]
+    HRESULT scrollTo([in] long x, [in] long y);
+
+    [id(DISPID_IHTMLWINDOW2_MOVETO)]
+    HRESULT moveTo([in] long x, [in] long y);
+
+    [id(DISPID_IHTMLWINDOW2_MOVEBY)]
+    HRESULT moveBy([in] long x, [in] long y);
+
+    [id(DISPID_IHTMLWINDOW2_RESIZETO)]
+    HRESULT resizeTo([in] long x, [in] long y);
+
+    [id(DISPID_IHTMLWINDOW2_RESIZEBY)]
+    HRESULT resizeBy([in] long x, [in] long y);
+
+    [propget, id(DISPID_IHTMLWINDOW2_EXTERNAL)]
+    HRESULT external([retval, out] IDispatch **p);
+}
+
+/*****************************************************************************
+ *    IHTMLDocument interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(626FC520-A41E-11CF-A731-00A0C9082637)
+]
+interface IHTMLDocument : IDispatch
+{
+    [propget, id(DISPID_IHTMLDOCUMENT_SCRIPT)]
+    HRESULT Script([retval, out] IDispatch **p);
+}
+
+/*****************************************************************************
+ *    IHTMLDocument2 interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(332C4425-26CB-11D0-B483-00C04FD90119)
+]
+interface IHTMLDocument2 : IHTMLDocument
+{
+    [propget, id(DISPID_IHTMLDOCUMENT2_ALL)]
+    HRESULT all([retval, out] IHTMLElementCollection **p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_BODY)]
+    HRESULT body([retval, out] IHTMLElement **p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT)]
+    HRESULT activeElement([retval, out] IHTMLElement **p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_IMAGES)]
+    HRESULT images([retval, out] IHTMLElementCollection **p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_APPLETS)]
+    HRESULT applets([retval, out] IHTMLElementCollection **p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_LINKS)]
+    HRESULT links([retval, out] IHTMLElementCollection **p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_FORMS)]
+    HRESULT forms([retval, out] IHTMLElementCollection **p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ANCHORS)]
+    HRESULT anchors([retval, out] IHTMLElementCollection **p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_TITLE)]
+    HRESULT title([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_TITLE)]
+    HRESULT title([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_SCRIPTS)]
+    HRESULT scripts([retval, out] IHTMLElementCollection **p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
+    HRESULT designMode([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
+    HRESULT designMode([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_SELECTION)]
+    HRESULT selection([retval, out] IHTMLSelectionObject **p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_READYSTATE)]
+     HRESULT readyState([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_FRAMES)]
+    HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_EMBEDS)]
+    HRESULT embeds([retval, out] IHTMLElementCollection **p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_PLUGINS)]
+    HRESULT plugins([retval, out] IHTMLElementCollection **p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
+    HRESULT alinkColor([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
+    HRESULT alinkColor([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
+    HRESULT bgColor([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
+    HRESULT bgColor([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
+    HRESULT fgColor([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
+    HRESULT fgColor([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
+    HRESULT linkColor([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
+    HRESULT linkColor([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
+    HRESULT vlinkColor([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
+    HRESULT vlinkColor([retval, out] VARIANT *p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_REFERRER)]
+    HRESULT referrer([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_LOCATION)]
+    HRESULT location([retval, out] IHTMLLocation **p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_LASTMODIFIED)]
+    HRESULT lastModified([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_URL)]
+    HRESULT URL([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_URL)]
+    HRESULT URL([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
+    HRESULT domain([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
+    HRESULT domain([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
+    HRESULT cookie([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
+    HRESULT cookie([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
+    HRESULT expando([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
+    HRESULT expando([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
+     HRESULT charset([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
+    HRESULT charset([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
+    HRESULT defaultCharset([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
+    HRESULT defaultCharset([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_MIMETYPE)]
+    HRESULT mimeType([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_FILESIZE)]
+    HRESULT fileSize([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_FILECREATEDDATE)]
+    HRESULT fileCreatedDate([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE)]
+    HRESULT fileModifiedDate([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE)]
+    HRESULT fileUpdatedDate([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_SECURITY)]
+    HRESULT security([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_PROTOCOL)]
+    HRESULT protocol([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_NAMEPROP)]
+     HRESULT nameProp([retval, out] BSTR *p);
+
+    [vararg, id(DISPID_IHTMLDOCUMENT2_WRITE)]
+    HRESULT write([in] SAFEARRAY *psarray);
+
+    [vararg, id(DISPID_IHTMLDOCUMENT2_WRITELN)]
+    HRESULT writeln([in] SAFEARRAY *psarray);
+
+    [id(DISPID_IHTMLDOCUMENT2_OPEN)]
+    HRESULT open(
+        [defaultvalue("text/html"), in] BSTR url,
+        [optional, in] VARIANT name,
+        [optional, in] VARIANT features,
+        [optional, in] VARIANT replace,
+        [retval, out]  IDispatch **pomWindowResult);
+
+    [id(DISPID_IHTMLDOCUMENT2_CLOSE)]
+    HRESULT close();
+
+    [id(DISPID_IHTMLDOCUMENT2_CLEAR)]
+    HRESULT clear();
+
+    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED)]
+    HRESULT queryCommandSupported(
+        [in] BSTR cmdID,
+        [retval, out] VARIANT_BOOL *pfRet);
+
+    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED)]
+    HRESULT queryCommandEnabled(
+        [in] BSTR cmdID,
+        [retval, out] VARIANT_BOOL *pfRet);
+
+    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE)]
+    HRESULT queryCommandState(
+        [in] BSTR cmdID,
+        [retval, out] VARIANT_BOOL *pfRet);
+
+    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM)]
+    HRESULT queryCommandIndeterm(
+        [in] BSTR cmdID,
+        [retval, out] VARIANT_BOOL *pfRet);
+
+    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT)]
+    HRESULT queryCommandText(
+        [in] BSTR cmdID,
+        [retval, out] BSTR *pcmdText);
+
+    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE)]
+    HRESULT queryCommandValue(
+        [in] BSTR cmdID,
+        [retval, out] VARIANT *pcmdValue);
+
+    [id(DISPID_IHTMLDOCUMENT2_EXECCOMMAND)]
+    HRESULT execCommand(
+        [in] BSTR cmdID,
+        [defaultvalue(0), in] VARIANT_BOOL showUI,
+        [optional, in] VARIANT value,
+        [retval, out] VARIANT_BOOL *pfRet);
+
+    [id(DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP)]
+    HRESULT execCommandShowHelp(
+        [in] BSTR cmdID,
+        [retval, out] VARIANT_BOOL *pfRet);
+
+    [id(DISPID_IHTMLDOCUMENT2_CREATEELEMENT)]
+     HRESULT createElement(
+        [in] BSTR eTag,
+        [retval, out] IHTMLElement **newElem);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
+    HRESULT onhelp([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
+    HRESULT onhelp([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
+    HRESULT onclick([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
+    HRESULT onclick([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
+    HRESULT ondblclick([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
+    HRESULT ondblclick([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
+    HRESULT onkeyup([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
+    HRESULT onkeyup([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
+    HRESULT onkeydown([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
+    HRESULT onkeydown([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
+     HRESULT onkeypress([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
+    HRESULT onkeypress([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
+    HRESULT onmouseup([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
+    HRESULT onmouseup([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
+    HRESULT onmousedown([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
+    HRESULT onmousedown([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
+    HRESULT onmousemove([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
+    HRESULT onmousemove([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
+    HRESULT onmouseout([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
+    HRESULT onmouseout([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
+    HRESULT onmouseover([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
+    HRESULT onmouseover([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
+    HRESULT onreadystatechange([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
+    HRESULT onreadystatechange([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
+    HRESULT onafterupdate([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
+    HRESULT onafterupdate([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
+    HRESULT onrowexit([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
+    HRESULT onrowexit([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
+    HRESULT onrowenter([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
+    HRESULT onrowenter([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
+    HRESULT ondragstart([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
+    HRESULT ondragstart([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
+    HRESULT onselectstart([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
+    HRESULT onselectstart([retval, out] VARIANT *p);
+
+    [id(DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT)]
+    HRESULT elementFromPoint(
+        [in] long x,
+        [in] long y,
+        [retval, out] IHTMLElement **elementHit);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_PARENTWINDOW)]
+    HRESULT parentWindow([retval, out] IHTMLWindow2 **p);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_STYLESHEETS)]
+    HRESULT styleSheets([retval, out] IHTMLStyleSheetsCollection **p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
+    HRESULT onbeforeupdate([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
+    HRESULT onbeforeupdate([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
+    HRESULT onerrorupdate([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
+    HRESULT onerrorupdate([retval, out] VARIANT *p);
+
+    [id(DISPID_IHTMLDOCUMENT2_TOSTRING)]
+    HRESULT toString([retval, out] BSTR *String);
+
+    [id(DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET)]
+    HRESULT createStyleSheet(
+        [defaultvalue(""), in] BSTR bstrHref,
+        [defaultvalue(-1), in] long lIndex,
+        [retval, out] IHTMLStyleSheet **ppnewStyleSheet);
+}
+
+/*****************************************************************************
+ *    HTMLDocument coclass
+ */
+[
+    uuid(25336920-03F9-11cf-8FD0-00AA00686F13)
+]
+coclass HTMLDocument
+{
+    [default]         interface IHTMLDocument2;
+    [source, default] dispinterface HTMLDocumentEvents;
+};
diff --git a/include/olectl.h b/include/olectl.h
index 7a9927c..64ec761 100644
--- a/include/olectl.h
+++ b/include/olectl.h
@@ -19,6 +19,8 @@
 #ifndef __WINE_OLECTL_H
 #define __WINE_OLECTL_H
 
+#if !defined(__midl) && !defined(__WIDL__)
+
 #include <ocidl.h>
 
 #ifdef __cplusplus
@@ -170,89 +172,6 @@
 HRESULT WINAPI OleTranslateColor( OLE_COLOR clr, HPALETTE hpal,
 		COLORREF* lpcolorref);
 
-/* standard dispatch ID's */
-#define DISPID_AUTOSIZE                 (-500)
-#define DISPID_BACKCOLOR                (-501)
-#define DISPID_BACKSTYLE                (-502)
-#define DISPID_BORDERCOLOR              (-503)
-#define DISPID_BORDERSTYLE              (-504)
-#define DISPID_BORDERWIDTH              (-505)
-#define DISPID_DRAWMODE                 (-507)
-#define DISPID_DRAWSTYLE                (-508)
-#define DISPID_DRAWWIDTH                (-509)
-#define DISPID_FILLCOLOR                (-510)
-#define DISPID_FILLSTYLE                (-511)
-#define DISPID_FONT                     (-512)
-#define DISPID_FORECOLOR                (-513)
-#define DISPID_ENABLED                  (-514)
-#define DISPID_HWND                     (-515)
-#define DISPID_TABSTOP                  (-516)
-#define DISPID_TEXT                     (-517)
-#define DISPID_CAPTION                  (-518)
-#define DISPID_BORDERVISIBLE            (-519)
-#define DISPID_APPEARANCE               (-520)
-#define DISPID_MOUSEPOINTER             (-521)
-#define DISPID_MOUSEICON                (-522)
-#define DISPID_PICTURE                  (-523)
-#define DISPID_VALID                    (-524)
-#define DISPID_READYSTATE               (-525)
-
-#define DISPID_REFRESH                  (-550)
-#define DISPID_DOCLICK                  (-551)
-#define DISPID_ABOUTBOX                 (-552)
-
-#define DISPID_CLICK                    (-600)
-#define DISPID_DBLCLICK                 (-601)
-#define DISPID_KEYDOWN                  (-602)
-#define DISPID_KEYPRESS                 (-603)
-#define DISPID_KEYUP                    (-604)
-#define DISPID_MOUSEDOWN                (-605)
-#define DISPID_MOUSEMOVE                (-606)
-#define DISPID_MOUSEUP                  (-607)
-#define DISPID_ERROREVENT               (-608)
-#define DISPID_READYSTATECHANGE         (-609)
-
-#define DISPID_AMBIENT_BACKCOLOR        (-701)
-#define DISPID_AMBIENT_DISPLAYNAME      (-702)
-#define DISPID_AMBIENT_FONT             (-703)
-#define DISPID_AMBIENT_FORECOLOR        (-704)
-#define DISPID_AMBIENT_LOCALEID         (-705)
-#define DISPID_AMBIENT_MESSAGEREFLECT   (-706)
-#define DISPID_AMBIENT_SCALEUNITS       (-707)
-#define DISPID_AMBIENT_TEXTALIGN        (-708)
-#define DISPID_AMBIENT_USERMODE         (-709)
-#define DISPID_AMBIENT_UIDEAD           (-710)
-#define DISPID_AMBIENT_SHOWGRABHANDLES  (-711)
-#define DISPID_AMBIENT_SHOWHATCHING     (-712)
-#define DISPID_AMBIENT_DISPLAYASDEFAULT (-713)
-#define DISPID_AMBIENT_SUPPORTSMNEMONICS (-714)
-#define DISPID_AMBIENT_AUTOCLIP         (-715)
-#define DISPID_AMBIENT_APPEARANCE       (-716)
-#define DISPID_AMBIENT_PALETTE          (-726)
-#define DISPID_AMBIENT_TRANSFERPRIORITY (-728)
-
-#define DISPID_Name                     (-800)
-#define DISPID_Delete                   (-801)
-#define DISPID_Object                   (-802)
-#define DISPID_Parent                   (-803)
-
-#define DISPID_FONT_NAME 0
-#define DISPID_FONT_SIZE 2
-#define DISPID_FONT_BOLD 3
-#define DISPID_FONT_ITALIC 4
-#define DISPID_FONT_UNDER 5
-#define DISPID_FONT_STRIKE 6
-#define DISPID_FONT_WEIGHT 7
-#define DISPID_FONT_CHARSET 8
-
-/* IPicture */
-#define	DISPID_PICT_HANDLE	0
-#define	DISPID_PICT_HPAL	2
-#define	DISPID_PICT_TYPE	3
-#define	DISPID_PICT_WIDTH	4
-#define	DISPID_PICT_HEIGHT	5
-#define	DISPID_PICT_RENDER	6
-
 /* Reflected Window Message IDs */
 #define OCM__BASE           (WM_USER+0x1c00)
 #define OCM_COMMAND         (OCM__BASE + WM_COMMAND)
@@ -357,4 +276,89 @@
 }
 #endif
 
+#endif  /* !__midl && !__WIDL__ */
+
+/* standard dispatch ID's */
+#define DISPID_AUTOSIZE                 (-500)
+#define DISPID_BACKCOLOR                (-501)
+#define DISPID_BACKSTYLE                (-502)
+#define DISPID_BORDERCOLOR              (-503)
+#define DISPID_BORDERSTYLE              (-504)
+#define DISPID_BORDERWIDTH              (-505)
+#define DISPID_DRAWMODE                 (-507)
+#define DISPID_DRAWSTYLE                (-508)
+#define DISPID_DRAWWIDTH                (-509)
+#define DISPID_FILLCOLOR                (-510)
+#define DISPID_FILLSTYLE                (-511)
+#define DISPID_FONT                     (-512)
+#define DISPID_FORECOLOR                (-513)
+#define DISPID_ENABLED                  (-514)
+#define DISPID_HWND                     (-515)
+#define DISPID_TABSTOP                  (-516)
+#define DISPID_TEXT                     (-517)
+#define DISPID_CAPTION                  (-518)
+#define DISPID_BORDERVISIBLE            (-519)
+#define DISPID_APPEARANCE               (-520)
+#define DISPID_MOUSEPOINTER             (-521)
+#define DISPID_MOUSEICON                (-522)
+#define DISPID_PICTURE                  (-523)
+#define DISPID_VALID                    (-524)
+#define DISPID_READYSTATE               (-525)
+
+#define DISPID_REFRESH                  (-550)
+#define DISPID_DOCLICK                  (-551)
+#define DISPID_ABOUTBOX                 (-552)
+
+#define DISPID_CLICK                    (-600)
+#define DISPID_DBLCLICK                 (-601)
+#define DISPID_KEYDOWN                  (-602)
+#define DISPID_KEYPRESS                 (-603)
+#define DISPID_KEYUP                    (-604)
+#define DISPID_MOUSEDOWN                (-605)
+#define DISPID_MOUSEMOVE                (-606)
+#define DISPID_MOUSEUP                  (-607)
+#define DISPID_ERROREVENT               (-608)
+#define DISPID_READYSTATECHANGE         (-609)
+
+#define DISPID_AMBIENT_BACKCOLOR        (-701)
+#define DISPID_AMBIENT_DISPLAYNAME      (-702)
+#define DISPID_AMBIENT_FONT             (-703)
+#define DISPID_AMBIENT_FORECOLOR        (-704)
+#define DISPID_AMBIENT_LOCALEID         (-705)
+#define DISPID_AMBIENT_MESSAGEREFLECT   (-706)
+#define DISPID_AMBIENT_SCALEUNITS       (-707)
+#define DISPID_AMBIENT_TEXTALIGN        (-708)
+#define DISPID_AMBIENT_USERMODE         (-709)
+#define DISPID_AMBIENT_UIDEAD           (-710)
+#define DISPID_AMBIENT_SHOWGRABHANDLES  (-711)
+#define DISPID_AMBIENT_SHOWHATCHING     (-712)
+#define DISPID_AMBIENT_DISPLAYASDEFAULT (-713)
+#define DISPID_AMBIENT_SUPPORTSMNEMONICS (-714)
+#define DISPID_AMBIENT_AUTOCLIP         (-715)
+#define DISPID_AMBIENT_APPEARANCE       (-716)
+#define DISPID_AMBIENT_PALETTE          (-726)
+#define DISPID_AMBIENT_TRANSFERPRIORITY (-728)
+
+#define DISPID_Name                     (-800)
+#define DISPID_Delete                   (-801)
+#define DISPID_Object                   (-802)
+#define DISPID_Parent                   (-803)
+
+#define DISPID_FONT_NAME 0
+#define DISPID_FONT_SIZE 2
+#define DISPID_FONT_BOLD 3
+#define DISPID_FONT_ITALIC 4
+#define DISPID_FONT_UNDER 5
+#define DISPID_FONT_STRIKE 6
+#define DISPID_FONT_WEIGHT 7
+#define DISPID_FONT_CHARSET 8
+
+/* IPicture */
+#define DISPID_PICT_HANDLE	0
+#define DISPID_PICT_HPAL	2
+#define DISPID_PICT_TYPE	3
+#define DISPID_PICT_WIDTH	4
+#define DISPID_PICT_HEIGHT	5
+#define DISPID_PICT_RENDER	6
+
 #endif /*  __WINE_OLECTL_H */
diff --git a/include/uuids.h b/include/uuids.h
index bcd2a96..62349b5 100644
--- a/include/uuids.h
+++ b/include/uuids.h
@@ -270,6 +270,5 @@
 OUR_GUID_ENTRY(CLSID_CameraControlPropertyPage,      0x71f96465, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56)
 OUR_GUID_ENTRY(CLSID_AnalogVideoDecoderPropertyPage, 0x71f96466, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56)
 OUR_GUID_ENTRY(CLSID_VideoStreamConfigPropertyPage,  0x71f96467, 0x78f3, 0x11d0, 0xa1, 0x8c, 0x00, 0xa0, 0xc9, 0x11, 0x89, 0x56)
-OUR_GUID_ENTRY(CLSID_HTMLDocument,                   0x25336920, 0x03f9, 0x11cf, 0x8f, 0xd0, 0x00, 0xaa, 0x00, 0x68, 0x6f, 0x13)
 
 #undef OUR_GUID_ENTRY