mshtml.idl: Moved IHTMLElement dispinterface declaration to macro.
authorJacek Caban <jacek@codeweavers.com>
Fri, 2 Oct 2009 11:56:12 +0000 (13:56 +0200)
committerAlexandre Julliard <julliard@winehq.org>
Fri, 2 Oct 2009 13:06:59 +0000 (15:06 +0200)
include/mshtml.idl

index 3912c0f000d90a15b3e14625636ef6e29af25768..0ef2be059a5e9d69e1e30a898d63e8280258b20b 100644 (file)
@@ -4091,6 +4091,278 @@ interface IHTMLElement : IDispatch
     HRESULT all([retval, out] IDispatch **p);
 }
 
+#define WINE_IHTMLELEMENT_DISPINTERFACE_DECL                            \
+    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]                              \
+    void setAttribute(                                                  \
+        [in] BSTR strAttributeName,                                     \
+        [in] VARIANT AttValue,                                          \
+        [defaultvalue(1), in] LONG lFlags);                             \
+                                                                        \
+    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]                              \
+    VARIANT getAttribute(                                               \
+        [in] BSTR strAttributeName,                                     \
+        [defaultvalue(0), in] LONG lFlags);                             \
+                                                                        \
+    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]                           \
+    VARIANT_BOOL removeAttribute(                                       \
+        [in] BSTR strAttributeName,                                     \
+        [defaultvalue(1), in] LONG lFlags);                             \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]              \
+    void className(BSTR v);                                             \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]              \
+    BSTR className();                                                   \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ID), bindable]                     \
+    void id(BSTR v);                                                    \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ID), bindable]                     \
+    BSTR id();                                                          \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]                          \
+    BSTR tagName();                                                     \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]                    \
+    IHTMLElement *parentElement();                                      \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]              \
+    IHTMLStyle *style();                                                \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]    \
+    void onhelp(VARIANT v);                                             \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]    \
+    VARIANT onhelp();                                                   \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]   \
+    void onclick(VARIANT v);                                            \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]   \
+    VARIANT onclick();                                                  \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]\
+    void ondblclick(VARIANT v);                                         \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]\
+    VARIANT ondblclick();                                               \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] \
+    void onkeydown(VARIANT v);                                          \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] \
+    VARIANT onkeydown();                                                \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]   \
+    void onkeyup(VARIANT v);                                            \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]   \
+    VARIANT onkeyup();                                                  \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]\
+    void onkeypress(VARIANT v);                                         \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]\
+    VARIANT onkeypress();                                               \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]\
+    void onmouseout(VARIANT v);                                         \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]\
+    VARIANT onmouseout();                                               \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] \
+    void onmouseover(VARIANT v);                                        \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] \
+    VARIANT onmouseover();                                              \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] \
+    void onmousemove(VARIANT v);                                        \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] \
+    VARIANT onmousemove();                                              \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] \
+    void onmousedown(VARIANT v);                                        \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] \
+    VARIANT onmousedown();                                              \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] \
+    void onmouseup(VARIANT v);                                          \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] \
+    VARIANT onmouseup();                                                \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();  \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]     \
+    void title(BSTR v);                                                 \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]     \
+    BSTR title();                                                       \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]  \
+    void language(BSTR v);                                              \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]  \
+    BSTR language();                                                    \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] \
+    void onselectstart(VARIANT v);                                      \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] \
+    VARIANT onselectstart();                                            \
+                                                                        \
+    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]                            \
+    void scrollIntoView([optional, in] VARIANT varargStart);            \
+                                                                        \
+    [id(DISPID_IHTMLELEMENT_CONTAINS)]                                  \
+    VARIANT_BOOL contains([in] IHTMLElement* pChild);                   \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]            \
+    LONG sourceIndex();                                                 \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]                     \
+    VARIANT recordNumber();                                             \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_LANG)]                             \
+    void lang(BSTR v);                                                  \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_LANG)]                             \
+    BSTR lang();                                                        \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]                       \
+    LONG offsetLeft();                                                  \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]                        \
+    LONG offsetTop();                                                   \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]                      \
+    LONG offsetWidth();                                                 \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]                     \
+    LONG offsetHeight();                                                \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]                     \
+    IHTMLElement* offsetParent();                                       \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]                        \
+    void innerHTML(BSTR v);                                             \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]                        \
+    BSTR innerHTML();                                                   \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]                        \
+    void innerText(BSTR v);                                             \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]                        \
+    BSTR innerText();                                                   \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]                        \
+    void outerHTML(BSTR v);                                             \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]                        \
+    BSTR outerHTML();                                                   \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]                        \
+    void outerText(BSTR v);                                             \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]                        \
+    BSTR outerText();                                                   \
+                                                                        \
+    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]                        \
+    void insertAdjacentHTML(                                            \
+        [in] BSTR where,                                                \
+        [in] BSTR html);                                                \
+                                                                        \
+    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]                        \
+    void insertAdjacentText(                                            \
+        [in] BSTR where,                                                \
+        [in] BSTR text);                                                \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]                   \
+    IHTMLElement* parentTextEdit();                                     \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]                       \
+    VARIANT_BOOL isTextEdit();                                          \
+                                                                        \
+    [id(DISPID_IHTMLELEMENT_CLICK)]                                     \
+    void click();                                                       \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_FILTERS)]                          \
+    IHTMLFiltersCollection* filters();                                  \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] \
+    void ondragstart(VARIANT v);                                        \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] \
+    VARIANT ondragstart();                                              \
+                                                                        \
+    [id(DISPID_IHTMLELEMENT_TOSTRING)]                                  \
+    BSTR toString();                                                    \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] \
+    void onbeforeupdate(VARIANT v);                                     \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] \
+    VARIANT onbeforeupdate();                                           \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] \
+    void onafterupdate(VARIANT v);                                      \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] \
+    VARIANT onafterupdate();                                            \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] \
+    void onerrorupdate(VARIANT v);                                      \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] \
+    VARIANT onerrorupdate();                                            \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] \
+    void onrowexit(VARIANT v);                                          \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] \
+    VARIANT onrowexit();                                                \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] \
+    void onrowenter(VARIANT v);                                         \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] \
+    VARIANT onrowenter();                                               \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] \
+    void ondatasetchanged(VARIANT v);                                   \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] \
+    VARIANT ondatasetchanged();                                         \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] \
+    void ondataavailable(VARIANT v);                                    \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] \
+    VARIANT ondataavailable();                                          \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] \
+    void ondatasetcomplete(VARIANT v);                                  \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] \
+    VARIANT ondatasetcomplete();                                        \
+                                                                        \
+    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] \
+    void onfilterchange(VARIANT v);                                     \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] \
+    VARIANT onfilterchange();                                           \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]                         \
+    IDispatch* children();                                              \
+                                                                        \
+    [propget, id(DISPID_IHTMLELEMENT_ALL)]                              \
+    IDispatch* all()
+
 /*****************************************************************************
  *    IHTMLElement2 interface
  */
@@ -4658,277 +4930,7 @@ dispinterface DispHTMLGenericElement
 {
 properties:
 methods:
-    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
-    void setAttribute(
-            [in] BSTR strAttributeName,
-            [in] VARIANT AttributeValue,
-            [in, defaultvalue(1)] LONG lFlags);
-
-    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
-    VARIANT getAttribute(
-             [in] BSTR strAttributeName,
-             [in, defaultvalue(0)] LONG lFlags);
-
-    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
-    VARIANT_BOOL removeAttribute(
-            [in] BSTR strAttributeName,
-            [in, defaultvalue(1)] LONG lFlags);
-
-    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    void className(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    BSTR className();
-
-    [propput, id(DISPID_IHTMLELEMENT_ID), bindable]
-    void id(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ID), bindable]
-    BSTR id();
-
-    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
-    BSTR tagName();
-
-    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
-    IHTMLElement *parentElement();
-
-    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]
-    IHTMLStyle *style();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    void onhelp(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    VARIANT onhelp();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    void onclick(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    VARIANT onclick();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    void ondblclick(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    VARIANT ondblclick();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    void onkeydown(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    VARIANT onkeydown();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    void onkeyup(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    VARIANT onkeyup();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    void onkeypress(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    VARIANT onkeypress();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    void onmouseout(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    VARIANT onmouseout();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    void onmouseover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    VARIANT onmouseover();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    void onmousemove(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    VARIANT onmousemove();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    void onmousedown(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    VARIANT onmousedown();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    void onmouseup(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    VARIANT onmouseup();
-
-    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
-    IDispatch *document();
-
-    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    void title(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    BSTR title();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    void language(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    BSTR language();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    void onselectstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    VARIANT onselectstart();
-
-    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
-    void scrollIntoView([in, optional] VARIANT varargStart);
-
-    [id(DISPID_IHTMLELEMENT_CONTAINS)]
-    VARIANT_BOOL contains([in] IHTMLElement *pChild);
-
-    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]
-    LONG sourceIndex();
-
-    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
-    VARIANT recordNumber();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANG)]
-    void lang(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANG)]
-    BSTR lang();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
-    LONG offsetLeft();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
-    LONG offsetTop();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
-    LONG offsetWidth();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
-    LONG offsetHeight();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
-    IHTMLElement *offsetParent();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    void innerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    BSTR innerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    void innerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    BSTR innerText();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    void outerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    BSTR outerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    void outerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    BSTR outerText();
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
-    void insertAdjacentHTML(
-            [in] BSTR where,
-            [in] BSTR html);
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
-    void insertAdjacentText(
-            [in] BSTR where,
-            [in] BSTR text);
-
-    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
-    IHTMLElement *parentTextEdit();
-
-    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
-    VARIANT_BOOL isTextEdit();
-
-    [id(DISPID_IHTMLELEMENT_CLICK)]
-    void click();
-
-    [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
-    IHTMLFiltersCollection *filters();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    void ondragstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    VARIANT ondragstart();
-
-    [id(DISPID_IHTMLELEMENT_TOSTRING)]
-    BSTR toString();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    void onbeforeupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    VARIANT onbeforeupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    void onafterupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    VARIANT onafterupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    void onerrorupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    VARIANT onerrorupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    void onrowexit(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    VARIANT onrowexit();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    void onrowenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    VARIANT onrowenter();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    void ondatasetchanged(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    VARIANT ondatasetchanged();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    void ondataavailable(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    VARIANT ondataavailable();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    void ondatasetcomplete(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    VARIANT ondatasetcomplete();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    void onfilterchange(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    VARIANT onfilterchange();
-
-    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
-    IDispatch *children();
-
-    [propget, id(DISPID_IHTMLELEMENT_ALL)]
-    IDispatch *all();
+    WINE_IHTMLELEMENT_DISPINTERFACE_DECL;
 
     [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
     BSTR scopeName();
@@ -6380,351 +6382,81 @@ dispinterface DispHTMLImg
 {
 properties:
 methods:
-    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
-    void setAttribute(
-            [in] BSTR strAttributeName,
-            [in] VARIANT AttributeValue,
-            [in, defaultvalue(1)] LONG lFlags);
+    WINE_IHTMLELEMENT_DISPINTERFACE_DECL;
 
-    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
-    VARIANT getAttribute(
-             [in] BSTR strAttributeName,
-             [in, defaultvalue(0)] LONG lFlags);
+    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
+    BSTR scopeName();
 
-    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
-    VARIANT_BOOL removeAttribute(
-            [in] BSTR strAttributeName,
-            [in, defaultvalue(1)] LONG lFlags);
+    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
+    void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
 
-    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    void className(BSTR v);
+    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
+    void releaseCapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    BSTR className();
+    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    void onlosecapture(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ID), bindable]
-    void id(BSTR v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    VARIANT onlosecapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_ID), bindable]
-    BSTR id();
+    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
+    BSTR componentFromPoint(
+            [in] LONG x,
+            [in] LONG y);
 
-    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
-    BSTR tagName();
+    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
+    void doScroll([in, optional] VARIANT component);
 
-    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
-    IHTMLElement *parentElement();
+    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    void onscroll(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]
-    IHTMLStyle *style();
+    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    VARIANT onscroll();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    void onhelp(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    void ondrag(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    VARIANT onhelp();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    VARIANT ondrag();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    void onclick(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    void ondragend(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    VARIANT onclick();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    VARIANT ondragend();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    void ondblclick(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    void ondragenter(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    VARIANT ondblclick();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    VARIANT ondragenter();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    void onkeydown(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    void ondragover(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    VARIANT onkeydown();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    VARIANT ondragover();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    void onkeyup(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    void ondragleave(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    VARIANT onkeyup();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    VARIANT ondragleave();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    void onkeypress(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
+    void ondrop(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    VARIANT onkeypress();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
+    VARIANT ondrop();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    void onmouseout(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
+    void onbeforecut(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    VARIANT onmouseout();
+    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
+    VARIANT onbeforecut();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    void onmouseover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    VARIANT onmouseover();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    void onmousemove(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    VARIANT onmousemove();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    void onmousedown(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    VARIANT onmousedown();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    void onmouseup(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    VARIANT onmouseup();
-
-    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
-    IDispatch *document();
-
-    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    void title(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    BSTR title();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    void language(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    BSTR language();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    void onselectstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    VARIANT onselectstart();
-
-    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
-    void scrollIntoView([in, optional] VARIANT varargStart);
-
-    [id(DISPID_IHTMLELEMENT_CONTAINS)]
-    VARIANT_BOOL contains([in] IHTMLElement *pChild);
-
-    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]
-    LONG sourceIndex();
-
-    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
-    VARIANT recordNumber();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANG)]
-    void lang(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANG)]
-    BSTR lang();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
-    LONG offsetLeft();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
-    LONG offsetTop();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
-    LONG offsetWidth();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
-    LONG offsetHeight();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
-    IHTMLElement *offsetParent();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    void innerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    BSTR innerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    void innerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    BSTR innerText();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    void outerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    BSTR outerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    void outerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    BSTR outerText();
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
-    void insertAdjacentHTML(
-            [in] BSTR where,
-            [in] BSTR html);
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
-    void insertAdjacentText(
-            [in] BSTR where,
-            [in] BSTR text);
-
-    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
-    IHTMLElement *parentTextEdit();
-
-    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
-    VARIANT_BOOL isTextEdit();
-
-    [id(DISPID_IHTMLELEMENT_CLICK)]
-    void click();
-
-    [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
-    IHTMLFiltersCollection *filters();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    void ondragstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    VARIANT ondragstart();
-
-    [id(DISPID_IHTMLELEMENT_TOSTRING)]
-    BSTR toString();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    void onbeforeupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    VARIANT onbeforeupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    void onafterupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    VARIANT onafterupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    void onerrorupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    VARIANT onerrorupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    void onrowexit(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    VARIANT onrowexit();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    void onrowenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    VARIANT onrowenter();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    void ondatasetchanged(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    VARIANT ondatasetchanged();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    void ondataavailable(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    VARIANT ondataavailable();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    void ondatasetcomplete(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    VARIANT ondatasetcomplete();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    void onfilterchange(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    VARIANT onfilterchange();
-
-    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
-    IDispatch *children();
-
-    [propget, id(DISPID_IHTMLELEMENT_ALL)]
-    IDispatch *all();
-
-    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
-    BSTR scopeName();
-
-    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
-    void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
-
-    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
-    void releaseCapture();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    void onlosecapture(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    VARIANT onlosecapture();
-
-    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
-    BSTR componentFromPoint(
-            [in] LONG x,
-            [in] LONG y);
-
-    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
-    void doScroll([in, optional] VARIANT component);
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    void onscroll(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    VARIANT onscroll();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    void ondrag(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    VARIANT ondrag();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    void ondragend(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    VARIANT ondragend();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    void ondragenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    VARIANT ondragenter();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    void ondragover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    VARIANT ondragover();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    void ondragleave(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    VARIANT ondragleave();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
-    void ondrop(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
-    VARIANT ondrop();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
-    void onbeforecut(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
-    VARIANT onbeforecut();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable]
-    void oncut(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable]
+    void oncut(VARIANT v);
 
     [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable]
     VARIANT oncut();
@@ -7628,329 +7360,61 @@ dispinterface DispHTMLBody
 {
 properties:
 methods:
-    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
-    void setAttribute(
-        [in] BSTR strAttributeName,
-        [in] VARIANT AttValue,
-        [defaultvalue(1), in] LONG lFlags);
-
-    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
-    VARIANT getAttribute(
-        [in] BSTR strAttributeName,
-        [defaultvalue(0), in] LONG lFlags);
+    WINE_IHTMLELEMENT_DISPINTERFACE_DECL;
 
-    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
-    VARIANT_BOOL removeAttribute(
-        [in] BSTR strAttributeName,
-        [defaultvalue(1), in] LONG lFlags);
+    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
+    BSTR scopeName();
 
-    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    void className(BSTR v);
+    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
+    void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
 
-    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    BSTR className();
+    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
+    void releaseCapture();
 
-    [propput, id(DISPID_IHTMLELEMENT_ID), bindable]
-    void id(BSTR v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    void onlosecapture(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ID), bindable]
-    BSTR id();
+    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    VARIANT onlosecapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
-    BSTR tagName();
+    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
+    BSTR componentFromPoint([in] LONG x,[in] LONG y);
 
-    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
-    IHTMLElement* parentElement();
+    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
+    void doScroll([optional, in] VARIANT component);
 
-    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]
-    IHTMLStyle* style();
+    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    void onscroll(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    void onhelp(VARIANT v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    VARIANT onscroll();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    VARIANT onhelp();
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    void ondrag(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    void onclick(VARIANT v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    VARIANT ondrag();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    VARIANT onclick();
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    void ondragend(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    void ondblclick(VARIANT v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    VARIANT ondragend();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    VARIANT ondblclick();
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    void ondragenter(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    void onkeydown(VARIANT v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    VARIANT ondragenter();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    VARIANT onkeydown();
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    void ondragover(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    void onkeyup(VARIANT v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    VARIANT ondragover();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    VARIANT onkeyup();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    void onkeypress(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    VARIANT onkeypress();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    void onmouseout(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    VARIANT onmouseout();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    void onmouseover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    VARIANT onmouseover();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    void onmousemove(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    VARIANT onmousemove();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    void onmousedown(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    VARIANT onmousedown();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    void onmouseup(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    VARIANT onmouseup();
-
-    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
-
-    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    void title(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    BSTR title();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    void language(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    BSTR language();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    void onselectstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    VARIANT onselectstart();
-
-    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
-    void scrollIntoView([optional, in] VARIANT varargStart);
-
-    [id(DISPID_IHTMLELEMENT_CONTAINS)]
-    VARIANT_BOOL contains([in] IHTMLElement* pChild);
-
-    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]
-    LONG sourceIndex();
-
-    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
-    VARIANT recordNumber();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANG)]
-    void lang(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANG)]
-    BSTR lang();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
-    LONG offsetLeft();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
-    LONG offsetTop();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
-    LONG offsetWidth();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
-    LONG offsetHeight();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
-    IHTMLElement* offsetParent();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    void innerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    BSTR innerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    void innerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    BSTR innerText();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    void outerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    BSTR outerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    void outerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    BSTR outerText();
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
-    void insertAdjacentHTML(
-        [in] BSTR where,
-        [in] BSTR html);
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
-    void insertAdjacentText(
-        [in] BSTR where,
-        [in] BSTR text);
-
-    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
-    IHTMLElement* parentTextEdit();
-
-    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
-    VARIANT_BOOL isTextEdit();
-
-    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
-
-    [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
-    IHTMLFiltersCollection* filters();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    void ondragstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    VARIANT ondragstart();
-
-    [id(DISPID_IHTMLELEMENT_TOSTRING)]
-    BSTR toString();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    void onbeforeupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    VARIANT onbeforeupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    void onafterupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    VARIANT onafterupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    void onerrorupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    VARIANT onerrorupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    void onrowexit(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    VARIANT onrowexit();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    void onrowenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    VARIANT onrowenter();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    void ondatasetchanged(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    VARIANT ondatasetchanged();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    void ondataavailable(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    VARIANT ondataavailable();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    void ondatasetcomplete(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    VARIANT ondatasetcomplete();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    void onfilterchange(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    VARIANT onfilterchange();
-
-    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
-    IDispatch* children();
-
-    [propget, id(DISPID_IHTMLELEMENT_ALL)]
-    IDispatch* all();
-
-    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
-    BSTR scopeName();
-
-    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
-    void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
-
-    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
-    void releaseCapture();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    void onlosecapture(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    VARIANT onlosecapture();
-
-    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
-    BSTR componentFromPoint([in] LONG x,[in] LONG y);
-
-    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
-    void doScroll([optional, in] VARIANT component);
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    void onscroll(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    VARIANT onscroll();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    void ondrag(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    VARIANT ondrag();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    void ondragend(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    VARIANT ondragend();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    void ondragenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    VARIANT ondragenter();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    void ondragover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    VARIANT ondragover();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    void ondragleave(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    void ondragleave(VARIANT v);
 
     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
     VARIANT ondragleave();
@@ -8722,341 +8186,73 @@ dispinterface DispHTMLAnchorElement
 {
 properties:
 methods:
-    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
-    void setAttribute(
-        [in] BSTR strAttributeName,
-        [in] VARIANT AttValue,
-        [defaultvalue(1), in] LONG lFlags);
+    WINE_IHTMLELEMENT_DISPINTERFACE_DECL;
 
-    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
-    VARIANT getAttribute(
-        [in] BSTR strAttributeName,
-        [defaultvalue(0), in] LONG lFlags);
+    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
+    BSTR scopeName();
 
-    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
-    VARIANT_BOOL removeAttribute(
-        [in] BSTR strAttributeName,
-        [defaultvalue(1), in] LONG lFlags);
+    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
+    void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
 
-    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    void className(BSTR v);
+    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
+    void releaseCapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    BSTR className();
+    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    void onlosecapture(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ID), bindable]
-    void id(BSTR v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    VARIANT onlosecapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_ID), bindable]
-    BSTR id();
+    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
+    BSTR componentFromPoint([in] LONG x,[in] LONG y);
 
-    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
-    BSTR tagName();
+    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
+    void doScroll([optional, in] VARIANT component);
 
-    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
-    IHTMLElement* parentElement();
+    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    void onscroll(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]
-    IHTMLStyle* style();
+    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    VARIANT onscroll();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    void onhelp(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    void ondrag(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    VARIANT onhelp();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    VARIANT ondrag();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    void onclick(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    void ondragend(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    VARIANT onclick();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    VARIANT ondragend();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    void ondblclick(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    void ondragenter(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    VARIANT ondblclick();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    VARIANT ondragenter();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    void onkeydown(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    void ondragover(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    VARIANT onkeydown();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    VARIANT ondragover();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    void onkeyup(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    void ondragleave(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    VARIANT onkeyup();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    VARIANT ondragleave();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    void onkeypress(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
+     void ondrop(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    VARIANT onkeypress();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
+    VARIANT ondrop();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    void onmouseout(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    VARIANT onmouseout();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    void onmouseover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    VARIANT onmouseover();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    void onmousemove(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    VARIANT onmousemove();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    void onmousedown(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    VARIANT onmousedown();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    void onmouseup(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    VARIANT onmouseup();
-
-    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
-
-    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    void title(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    BSTR title();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    void language(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    BSTR language();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    void onselectstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    VARIANT onselectstart();
-
-    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
-    void scrollIntoView([optional, in] VARIANT varargStart);
-
-    [id(DISPID_IHTMLELEMENT_CONTAINS)]
-    VARIANT_BOOL contains([in] IHTMLElement* pChild);
-
-    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]
-    LONG sourceIndex();
-
-    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
-    VARIANT recordNumber();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANG)]
-    void lang(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANG)]
-    BSTR lang();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
-    LONG offsetLeft();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
-    LONG offsetTop();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
-    LONG offsetWidth();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
-    LONG offsetHeight();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
-    IHTMLElement* offsetParent();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    void innerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    BSTR innerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    void innerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    BSTR innerText();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    void outerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    BSTR outerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    void outerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    BSTR outerText();
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
-    void insertAdjacentHTML(
-        [in] BSTR where,
-        [in] BSTR html);
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
-    void insertAdjacentText(
-        [in] BSTR where,
-        [in] BSTR text);
-
-    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
-    IHTMLElement* parentTextEdit();
-
-    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
-    VARIANT_BOOL isTextEdit();
-
-    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
-
-    [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
-    IHTMLFiltersCollection* filters();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    void ondragstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    VARIANT ondragstart();
-
-    [id(DISPID_IHTMLELEMENT_TOSTRING)]
-    BSTR toString();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    void onbeforeupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    VARIANT onbeforeupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    void onafterupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    VARIANT onafterupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    void onerrorupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    VARIANT onerrorupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    void onrowexit(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    VARIANT onrowexit();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    void onrowenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    VARIANT onrowenter();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    void ondatasetchanged(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    VARIANT ondatasetchanged();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    void ondataavailable(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    VARIANT ondataavailable();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    void ondatasetcomplete(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    VARIANT ondatasetcomplete();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    void onfilterchange(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    VARIANT onfilterchange();
-
-    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
-    IDispatch* children();
-
-    [propget, id(DISPID_IHTMLELEMENT_ALL)]
-    IDispatch* all();
-
-    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
-    BSTR scopeName();
-
-    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
-    void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
-
-    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
-    void releaseCapture();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    void onlosecapture(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    VARIANT onlosecapture();
-
-    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
-    BSTR componentFromPoint([in] LONG x,[in] LONG y);
-
-    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
-    void doScroll([optional, in] VARIANT component);
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    void onscroll(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    VARIANT onscroll();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    void ondrag(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    VARIANT ondrag();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    void ondragend(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    VARIANT ondragend();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    void ondragenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    VARIANT ondragenter();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    void ondragover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    VARIANT ondragover();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    void ondragleave(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    VARIANT ondragleave();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
-     void ondrop(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
-    VARIANT ondrop();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
-    void onbeforecut(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
+    void onbeforecut(VARIANT v);
 
     [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
     VARIANT onbeforecut();
@@ -10071,339 +9267,69 @@ dispinterface DispHTMLSelectElement
 {
 properties:
 methods:
-    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
-    void setAttribute(
-            [in] BSTR strAttributeName,
-            [in] VARIANT AttributeValue,
-            [in, defaultvalue(1)] LONG lFlags);
+    WINE_IHTMLELEMENT_DISPINTERFACE_DECL;
 
-    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
-    VARIANT getAttribute(
-             [in] BSTR strAttributeName,
-             [in, defaultvalue(0)] LONG lFlags);
+    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
+    BSTR scopeName();
 
-    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
-    VARIANT_BOOL removeAttribute(
-            [in] BSTR strAttributeName,
-            [in, defaultvalue(1)] LONG lFlags);
+    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
+    void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
 
-    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    void className(BSTR v);
+    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
+    void releaseCapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    BSTR className();
+    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    void onlosecapture(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ID), bindable]
-    void id(BSTR v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    VARIANT onlosecapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_ID), bindable]
-    BSTR id();
+    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
+    BSTR componentFromPoint(
+            [in] LONG x,
+            [in] LONG y);
 
-    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
-    BSTR tagName();
+    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
+    void doScroll([in, optional] VARIANT component);
 
-    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
-    IHTMLElement *parentElement();
+    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    void onscroll(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]
-    IHTMLStyle *style();
+    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    VARIANT onscroll();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    void onhelp(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    void ondrag(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    VARIANT onhelp();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    VARIANT ondrag();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    void onclick(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    void ondragend(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    VARIANT onclick();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    VARIANT ondragend();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    void ondblclick(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    void ondragenter(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    VARIANT ondblclick();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    VARIANT ondragenter();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    void onkeydown(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    void ondragover(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    VARIANT onkeydown();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    VARIANT ondragover();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    void onkeyup(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    void ondragleave(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    VARIANT onkeyup();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    VARIANT ondragleave();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    void onkeypress(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    VARIANT onkeypress();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    void onmouseout(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    VARIANT onmouseout();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    void onmouseover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    VARIANT onmouseover();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    void onmousemove(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    VARIANT onmousemove();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    void onmousedown(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    VARIANT onmousedown();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    void onmouseup(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    VARIANT onmouseup();
-
-    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
-    IDispatch *document();
-
-    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    void title(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    BSTR title();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    void language(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    BSTR language();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    void onselectstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    VARIANT onselectstart();
-
-    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
-    void scrollIntoView([in, optional] VARIANT varargStart);
-
-    [id(DISPID_IHTMLELEMENT_CONTAINS)]
-    VARIANT_BOOL contains([in] IHTMLElement *pChild);
-
-    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]
-    LONG sourceIndex();
-
-    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
-    VARIANT recordNumber();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANG)]
-    void lang(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANG)]
-    BSTR lang();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
-    LONG offsetLeft();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
-    LONG offsetTop();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
-    LONG offsetWidth();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
-    LONG offsetHeight();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
-    IHTMLElement *offsetParent();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    void innerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    BSTR innerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    void innerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    BSTR innerText();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    void outerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    BSTR outerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    void outerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    BSTR outerText();
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
-    void insertAdjacentHTML(
-            [in] BSTR where,
-            [in] BSTR html);
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
-    void insertAdjacentText(
-            [in] BSTR where,
-            [in] BSTR text);
-
-    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
-    IHTMLElement *parentTextEdit();
-
-    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
-    VARIANT_BOOL isTextEdit();
-
-    [id(DISPID_IHTMLELEMENT_CLICK)]
-    void click();
-
-    [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
-    IHTMLFiltersCollection *filters();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    void ondragstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    VARIANT ondragstart();
-
-    [id(DISPID_IHTMLELEMENT_TOSTRING)]
-    BSTR toString();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    void onbeforeupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    VARIANT onbeforeupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    void onafterupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    VARIANT onafterupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    void onerrorupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    VARIANT onerrorupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    void onrowexit(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    VARIANT onrowexit();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    void onrowenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    VARIANT onrowenter();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    void ondatasetchanged(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    VARIANT ondatasetchanged();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    void ondataavailable(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    VARIANT ondataavailable();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    void ondatasetcomplete(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    VARIANT ondatasetcomplete();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    void onfilterchange(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    VARIANT onfilterchange();
-
-    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
-    IDispatch *children();
-
-    [propget, id(DISPID_IHTMLELEMENT_ALL)]
-    IDispatch *all();
-
-    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
-    BSTR scopeName();
-
-    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
-    void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
-
-    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
-    void releaseCapture();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    void onlosecapture(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    VARIANT onlosecapture();
-
-    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
-    BSTR componentFromPoint(
-            [in] LONG x,
-            [in] LONG y);
-
-    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
-    void doScroll([in, optional] VARIANT component);
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    void onscroll(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    VARIANT onscroll();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    void ondrag(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    VARIANT ondrag();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    void ondragend(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    VARIANT ondragend();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    void ondragenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    VARIANT ondragenter();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    void ondragover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    VARIANT ondragover();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    void ondragleave(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    VARIANT ondragleave();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
-    void ondrop(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
+    void ondrop(VARIANT v);
 
     [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
     VARIANT ondrop();
@@ -11103,336 +10029,66 @@ dispinterface DispHTMLOptionElement
 {
 properties:
 methods:
-    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
-    void setAttribute(
-            [in] BSTR strAttributeName,
-            [in] VARIANT AttributeValue,
-            [in, defaultvalue(1)] LONG lFlags);
+    WINE_IHTMLELEMENT_DISPINTERFACE_DECL;
 
-    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
-    VARIANT getAttribute(
-             [in] BSTR strAttributeName,
-             [in, defaultvalue(0)] LONG lFlags);
+    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
+    BSTR scopeName();
 
-    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
-    VARIANT_BOOL removeAttribute(
-            [in] BSTR strAttributeName,
-            [in, defaultvalue(1)] LONG lFlags);
+    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
+    void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
 
-    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    void className(BSTR v);
+    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
+    void releaseCapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    BSTR className();
+    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    void onlosecapture(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ID), bindable]
-    void id(BSTR v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    VARIANT onlosecapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_ID), bindable]
-    BSTR id();
+    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
+    BSTR componentFromPoint(
+            [in] LONG x,
+            [in] LONG y);
 
-    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
-    BSTR tagName();
+    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
+    void doScroll([in, optional] VARIANT component);
 
-    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
-    IHTMLElement *parentElement();
+    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    void onscroll(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]
-    IHTMLStyle *style();
+    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    VARIANT onscroll();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    void onhelp(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    void ondrag(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    VARIANT onhelp();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    VARIANT ondrag();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    void onclick(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    void ondragend(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    VARIANT onclick();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    VARIANT ondragend();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    void ondblclick(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    void ondragenter(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    VARIANT ondblclick();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    VARIANT ondragenter();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    void onkeydown(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    void ondragover(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    VARIANT onkeydown();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    VARIANT ondragover();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    void onkeyup(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    void ondragleave(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    VARIANT onkeyup();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    void onkeypress(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    VARIANT onkeypress();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    void onmouseout(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    VARIANT onmouseout();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    void onmouseover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    VARIANT onmouseover();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    void onmousemove(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    VARIANT onmousemove();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    void onmousedown(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    VARIANT onmousedown();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    void onmouseup(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    VARIANT onmouseup();
-
-    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
-    IDispatch *document();
-
-    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    void title(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    BSTR title();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    void language(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    BSTR language();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    void onselectstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    VARIANT onselectstart();
-
-    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
-    void scrollIntoView([in, optional] VARIANT varargStart);
-
-    [id(DISPID_IHTMLELEMENT_CONTAINS)]
-    VARIANT_BOOL contains([in] IHTMLElement *pChild);
-
-    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]
-    LONG sourceIndex();
-
-    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
-    VARIANT recordNumber();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANG)]
-    void lang(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANG)]
-    BSTR lang();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
-    LONG offsetLeft();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
-    LONG offsetTop();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
-    LONG offsetWidth();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
-    LONG offsetHeight();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
-    IHTMLElement *offsetParent();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    void innerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    BSTR innerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    void innerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    BSTR innerText();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    void outerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    BSTR outerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    void outerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    BSTR outerText();
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
-    void insertAdjacentHTML(
-            [in] BSTR where,
-            [in] BSTR html);
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
-    void insertAdjacentText(
-            [in] BSTR where,
-            [in] BSTR text);
-
-    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
-    IHTMLElement *parentTextEdit();
-
-    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
-    VARIANT_BOOL isTextEdit();
-
-    [id(DISPID_IHTMLELEMENT_CLICK)]
-    void click();
-
-    [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
-    IHTMLFiltersCollection *filters();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    void ondragstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    VARIANT ondragstart();
-
-    [id(DISPID_IHTMLELEMENT_TOSTRING)]
-    BSTR toString();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    void onbeforeupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    VARIANT onbeforeupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    void onafterupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    VARIANT onafterupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    void onerrorupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    VARIANT onerrorupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    void onrowexit(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    VARIANT onrowexit();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    void onrowenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    VARIANT onrowenter();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    void ondatasetchanged(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    VARIANT ondatasetchanged();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    void ondataavailable(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    VARIANT ondataavailable();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    void ondatasetcomplete(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    VARIANT ondatasetcomplete();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    void onfilterchange(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    VARIANT onfilterchange();
-
-    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
-    IDispatch *children();
-
-    [propget, id(DISPID_IHTMLELEMENT_ALL)]
-    IDispatch *all();
-
-    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
-    BSTR scopeName();
-
-    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
-    void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
-
-    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
-    void releaseCapture();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    void onlosecapture(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    VARIANT onlosecapture();
-
-    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
-    BSTR componentFromPoint(
-            [in] LONG x,
-            [in] LONG y);
-
-    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
-    void doScroll([in, optional] VARIANT component);
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    void onscroll(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    VARIANT onscroll();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    void ondrag(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    VARIANT ondrag();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    void ondragend(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    VARIANT ondragend();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    void ondragenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    VARIANT ondragenter();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    void ondragover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    VARIANT ondragover();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    void ondragleave(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    VARIANT ondragleave();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    VARIANT ondragleave();
 
     [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
     void ondrop(VARIANT v);
@@ -12303,336 +10959,66 @@ dispinterface DispHTMLInputElement
 {
 properties:
 methods:
-    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
-    void setAttribute(
-            [in] BSTR strAttributeName,
-            [in] VARIANT AttributeValue,
-            [in, defaultvalue(1)] LONG lFlags);
+    WINE_IHTMLELEMENT_DISPINTERFACE_DECL;
 
-    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
-    VARIANT getAttribute(
-             [in] BSTR strAttributeName,
-             [in, defaultvalue(0)] LONG lFlags);
+    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
+    BSTR scopeName();
 
-    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
-    VARIANT_BOOL removeAttribute(
-            [in] BSTR strAttributeName,
-            [in, defaultvalue(1)] LONG lFlags);
+    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
+    void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
 
-    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    void className(BSTR v);
+    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
+    void releaseCapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    BSTR className();
+    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    void onlosecapture(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ID), bindable]
-    void id(BSTR v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    VARIANT onlosecapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_ID), bindable]
-    BSTR id();
+    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
+    BSTR componentFromPoint(
+            [in] LONG x,
+            [in] LONG y);
 
-    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
-    BSTR tagName();
+    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
+    void doScroll([in, optional] VARIANT component);
 
-    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
-    IHTMLElement *parentElement();
+    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    void onscroll(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]
-    IHTMLStyle *style();
+    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    VARIANT onscroll();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    void onhelp(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    void ondrag(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    VARIANT onhelp();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    VARIANT ondrag();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    void onclick(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    void ondragend(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    VARIANT onclick();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    VARIANT ondragend();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    void ondblclick(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    void ondragenter(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    VARIANT ondblclick();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    VARIANT ondragenter();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    void onkeydown(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    void ondragover(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    VARIANT onkeydown();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    VARIANT ondragover();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    void onkeyup(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    void ondragleave(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    VARIANT onkeyup();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    void onkeypress(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    VARIANT onkeypress();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    void onmouseout(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    VARIANT onmouseout();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    void onmouseover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    VARIANT onmouseover();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    void onmousemove(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    VARIANT onmousemove();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    void onmousedown(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    VARIANT onmousedown();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    void onmouseup(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    VARIANT onmouseup();
-
-    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
-    IDispatch *document();
-
-    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    void title(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    BSTR title();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    void language(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    BSTR language();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    void onselectstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    VARIANT onselectstart();
-
-    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
-    void scrollIntoView([in, optional] VARIANT varargStart);
-
-    [id(DISPID_IHTMLELEMENT_CONTAINS)]
-    VARIANT_BOOL contains([in] IHTMLElement *pChild);
-
-    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]
-    LONG sourceIndex();
-
-    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
-    VARIANT recordNumber();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANG)]
-    void lang(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANG)]
-    BSTR lang();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
-    LONG offsetLeft();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
-    LONG offsetTop();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
-    LONG offsetWidth();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
-    LONG offsetHeight();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
-    IHTMLElement *offsetParent();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    void innerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    BSTR innerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    void innerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    BSTR innerText();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    void outerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    BSTR outerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    void outerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    BSTR outerText();
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
-    void insertAdjacentHTML(
-            [in] BSTR where,
-            [in] BSTR html);
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
-    void insertAdjacentText(
-            [in] BSTR where,
-            [in] BSTR text);
-
-    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
-    IHTMLElement *parentTextEdit();
-
-    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
-    VARIANT_BOOL isTextEdit();
-
-    [id(DISPID_IHTMLELEMENT_CLICK)]
-    void click();
-
-    [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
-    IHTMLFiltersCollection *filters();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    void ondragstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    VARIANT ondragstart();
-
-    [id(DISPID_IHTMLELEMENT_TOSTRING)]
-    BSTR toString();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    void onbeforeupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    VARIANT onbeforeupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    void onafterupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    VARIANT onafterupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    void onerrorupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    VARIANT onerrorupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    void onrowexit(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    VARIANT onrowexit();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    void onrowenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    VARIANT onrowenter();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    void ondatasetchanged(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    VARIANT ondatasetchanged();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    void ondataavailable(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    VARIANT ondataavailable();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    void ondatasetcomplete(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    VARIANT ondatasetcomplete();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    void onfilterchange(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    VARIANT onfilterchange();
-
-    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
-    IDispatch *children();
-
-    [propget, id(DISPID_IHTMLELEMENT_ALL)]
-    IDispatch *all();
-
-    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
-    BSTR scopeName();
-
-    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
-    void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
-
-    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
-    void releaseCapture();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    void onlosecapture(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    VARIANT onlosecapture();
-
-    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
-    BSTR componentFromPoint(
-            [in] LONG x,
-            [in] LONG y);
-
-    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
-    void doScroll([in, optional] VARIANT component);
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    void onscroll(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    VARIANT onscroll();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    void ondrag(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    VARIANT ondrag();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    void ondragend(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    VARIANT ondragend();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    void ondragenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    VARIANT ondragenter();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    void ondragover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    VARIANT ondragover();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    void ondragleave(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    VARIANT ondragleave();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    VARIANT ondragleave();
 
     [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
     void ondrop(VARIANT v);
@@ -13443,336 +11829,66 @@ dispinterface DispHTMLUnknownElement
 {
 properties:
 methods:
-    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
-    void setAttribute(
-            [in] BSTR strAttributeName,
-            [in] VARIANT AttributeValue,
-            [in, defaultvalue(1)] LONG lFlags);
-
-    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
-    VARIANT getAttribute(
-             [in] BSTR strAttributeName,
-             [in, defaultvalue(0)] LONG lFlags);
+    WINE_IHTMLELEMENT_DISPINTERFACE_DECL;
 
-    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
-    VARIANT_BOOL removeAttribute(
-            [in] BSTR strAttributeName,
-            [in, defaultvalue(1)] LONG lFlags);
+    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
+    BSTR scopeName();
 
-    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    void className(BSTR v);
+    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
+    void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
 
-    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    BSTR className();
+    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
+    void releaseCapture();
 
-    [propput, id(DISPID_IHTMLELEMENT_ID), bindable]
-    void id(BSTR v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    void onlosecapture(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ID), bindable]
-    BSTR id();
+    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    VARIANT onlosecapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
-    BSTR tagName();
+    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
+    BSTR componentFromPoint(
+            [in] LONG x,
+            [in] LONG y);
 
-    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
-    IHTMLElement *parentElement();
+    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
+    void doScroll([in, optional] VARIANT component);
 
-    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]
-    IHTMLStyle *style();
+    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    void onscroll(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    void onhelp(VARIANT v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    VARIANT onscroll();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    VARIANT onhelp();
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    void ondrag(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    void onclick(VARIANT v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    VARIANT ondrag();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    VARIANT onclick();
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    void ondragend(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    void ondblclick(VARIANT v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    VARIANT ondragend();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    VARIANT ondblclick();
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    void ondragenter(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    void onkeydown(VARIANT v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    VARIANT ondragenter();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    VARIANT onkeydown();
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    void ondragover(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    void onkeyup(VARIANT v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    VARIANT ondragover();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    VARIANT onkeyup();
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    void ondragleave(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    void onkeypress(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    VARIANT onkeypress();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    void onmouseout(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    VARIANT onmouseout();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    void onmouseover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    VARIANT onmouseover();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    void onmousemove(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    VARIANT onmousemove();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    void onmousedown(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    VARIANT onmousedown();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    void onmouseup(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    VARIANT onmouseup();
-
-    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
-    IDispatch *document();
-
-    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    void title(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    BSTR title();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    void language(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    BSTR language();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    void onselectstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    VARIANT onselectstart();
-
-    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
-    void scrollIntoView([in, optional] VARIANT varargStart);
-
-    [id(DISPID_IHTMLELEMENT_CONTAINS)]
-    VARIANT_BOOL contains([in] IHTMLElement *pChild);
-
-    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]
-    LONG sourceIndex();
-
-    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
-    VARIANT recordNumber();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANG)]
-    void lang(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANG)]
-    BSTR lang();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
-    LONG offsetLeft();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
-    LONG offsetTop();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
-    LONG offsetWidth();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
-    LONG offsetHeight();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
-    IHTMLElement *offsetParent();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    void innerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    BSTR innerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    void innerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    BSTR innerText();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    void outerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    BSTR outerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    void outerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    BSTR outerText();
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
-    void insertAdjacentHTML(
-            [in] BSTR where,
-            [in] BSTR html);
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
-    void insertAdjacentText(
-            [in] BSTR where,
-            [in] BSTR text);
-
-    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
-    IHTMLElement *parentTextEdit();
-
-    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
-    VARIANT_BOOL isTextEdit();
-
-    [id(DISPID_IHTMLELEMENT_CLICK)]
-    void click();
-
-    [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
-    IHTMLFiltersCollection *filters();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    void ondragstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    VARIANT ondragstart();
-
-    [id(DISPID_IHTMLELEMENT_TOSTRING)]
-    BSTR toString();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    void onbeforeupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    VARIANT onbeforeupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    void onafterupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    VARIANT onafterupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    void onerrorupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    VARIANT onerrorupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    void onrowexit(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    VARIANT onrowexit();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    void onrowenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    VARIANT onrowenter();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    void ondatasetchanged(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    VARIANT ondatasetchanged();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    void ondataavailable(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    VARIANT ondataavailable();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    void ondatasetcomplete(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    VARIANT ondatasetcomplete();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    void onfilterchange(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    VARIANT onfilterchange();
-
-    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
-    IDispatch *children();
-
-    [propget, id(DISPID_IHTMLELEMENT_ALL)]
-    IDispatch *all();
-
-    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
-    BSTR scopeName();
-
-    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
-    void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
-
-    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
-    void releaseCapture();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    void onlosecapture(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    VARIANT onlosecapture();
-
-    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
-    BSTR componentFromPoint(
-            [in] LONG x,
-            [in] LONG y);
-
-    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
-    void doScroll([in, optional] VARIANT component);
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    void onscroll(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    VARIANT onscroll();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    void ondrag(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    VARIANT ondrag();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    void ondragend(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    VARIANT ondragend();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    void ondragenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    VARIANT ondragenter();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    void ondragover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    VARIANT ondragover();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    void ondragleave(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    VARIANT ondragleave();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    VARIANT ondragleave();
 
     [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
     void ondrop(VARIANT v);
@@ -18311,339 +16427,69 @@ dispinterface DispHTMLCommentElement
 {
 properties:
 methods:
-    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
-    void setAttribute(
-            [in] BSTR strAttributeName,
-            [in] VARIANT AttributeValue,
-            [in, defaultvalue(1)] LONG lFlags);
+    WINE_IHTMLELEMENT_DISPINTERFACE_DECL;
 
-    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
-    VARIANT getAttribute(
-             [in] BSTR strAttributeName,
-             [in, defaultvalue(0)] LONG lFlags);
+    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
+    BSTR scopeName();
 
-    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
-    VARIANT_BOOL removeAttribute(
-            [in] BSTR strAttributeName,
-            [in, defaultvalue(1)] LONG lFlags);
+    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
+    void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
 
-    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    void className(BSTR v);
+    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
+    void releaseCapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    BSTR className();
+    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    void onlosecapture(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ID), bindable]
-    void id(BSTR v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    VARIANT onlosecapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_ID), bindable]
-    BSTR id();
+    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
+    BSTR componentFromPoint(
+            [in] LONG x,
+            [in] LONG y);
 
-    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
-    BSTR tagName();
+    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
+    void doScroll([in, optional] VARIANT component);
 
-    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
-    IHTMLElement *parentElement();
+    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    void onscroll(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]
-    IHTMLStyle *style();
+    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    VARIANT onscroll();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    void onhelp(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    void ondrag(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    VARIANT onhelp();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    VARIANT ondrag();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    void onclick(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    void ondragend(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    VARIANT onclick();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    VARIANT ondragend();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    void ondblclick(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    void ondragenter(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    VARIANT ondblclick();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    VARIANT ondragenter();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    void onkeydown(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    void ondragover(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    VARIANT onkeydown();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    VARIANT ondragover();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    void onkeyup(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    void ondragleave(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    VARIANT onkeyup();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    VARIANT ondragleave();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    void onkeypress(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    VARIANT onkeypress();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    void onmouseout(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    VARIANT onmouseout();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    void onmouseover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    VARIANT onmouseover();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    void onmousemove(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    VARIANT onmousemove();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    void onmousedown(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    VARIANT onmousedown();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    void onmouseup(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    VARIANT onmouseup();
-
-    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
-    IDispatch *document();
-
-    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    void title(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    BSTR title();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    void language(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    BSTR language();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    void onselectstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    VARIANT onselectstart();
-
-    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
-    void scrollIntoView([in, optional] VARIANT varargStart);
-
-    [id(DISPID_IHTMLELEMENT_CONTAINS)]
-    VARIANT_BOOL contains([in] IHTMLElement *pChild);
-
-    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]
-    LONG sourceIndex();
-
-    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
-    VARIANT recordNumber();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANG)]
-    void lang(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANG)]
-    BSTR lang();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
-    LONG offsetLeft();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
-    LONG offsetTop();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
-    LONG offsetWidth();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
-    LONG offsetHeight();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
-    IHTMLElement *offsetParent();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    void innerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    BSTR innerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    void innerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    BSTR innerText();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    void outerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    BSTR outerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    void outerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    BSTR outerText();
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
-    void insertAdjacentHTML(
-            [in] BSTR where,
-            [in] BSTR html);
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
-    void insertAdjacentText(
-            [in] BSTR where,
-            [in] BSTR text);
-
-    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
-    IHTMLElement *parentTextEdit();
-
-    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
-    VARIANT_BOOL isTextEdit();
-
-    [id(DISPID_IHTMLELEMENT_CLICK)]
-    void click();
-
-    [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
-    IHTMLFiltersCollection *filters();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    void ondragstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    VARIANT ondragstart();
-
-    [id(DISPID_IHTMLELEMENT_TOSTRING)]
-    BSTR toString();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    void onbeforeupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    VARIANT onbeforeupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    void onafterupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    VARIANT onafterupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    void onerrorupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    VARIANT onerrorupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    void onrowexit(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    VARIANT onrowexit();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    void onrowenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    VARIANT onrowenter();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    void ondatasetchanged(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    VARIANT ondatasetchanged();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    void ondataavailable(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    VARIANT ondataavailable();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    void ondatasetcomplete(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    VARIANT ondatasetcomplete();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    void onfilterchange(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    VARIANT onfilterchange();
-
-    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
-    IDispatch *children();
-
-    [propget, id(DISPID_IHTMLELEMENT_ALL)]
-    IDispatch *all();
-
-    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
-    BSTR scopeName();
-
-    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
-    void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
-
-    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
-    void releaseCapture();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    void onlosecapture(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    VARIANT onlosecapture();
-
-    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
-    BSTR componentFromPoint(
-            [in] LONG x,
-            [in] LONG y);
-
-    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
-    void doScroll([in, optional] VARIANT component);
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    void onscroll(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    VARIANT onscroll();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    void ondrag(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    VARIANT ondrag();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    void ondragend(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    VARIANT ondragend();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    void ondragenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    VARIANT ondragenter();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    void ondragover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    VARIANT ondragover();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    void ondragleave(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    VARIANT ondragleave();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
-    void ondrop(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
+    void ondrop(VARIANT v);
 
     [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
     VARIANT ondrop();
@@ -20350,336 +18196,66 @@ dispinterface DispHTMLTable
 {
 properties:
 methods:
-    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
-    void setAttribute(
-            [in] BSTR strAttributeName,
-            [in] VARIANT AttributeValue,
-            [in, defaultvalue(1)] LONG lFlags);
+    WINE_IHTMLELEMENT_DISPINTERFACE_DECL;
 
-    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
-    VARIANT getAttribute(
-             [in] BSTR strAttributeName,
-             [in, defaultvalue(0)] LONG lFlags);
+    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
+    BSTR scopeName();
 
-    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
-    VARIANT_BOOL removeAttribute(
-            [in] BSTR strAttributeName,
-            [in, defaultvalue(1)] LONG lFlags);
+    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
+    void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
 
-    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    void className(BSTR v);
+    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
+    void releaseCapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    BSTR className();
+    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    void onlosecapture(VARIANT v);
 
-    [propput, id(DISPID_IHTMLELEMENT_ID), bindable]
-    void id(BSTR v);
+    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
+    VARIANT onlosecapture();
 
-    [propget, id(DISPID_IHTMLELEMENT_ID), bindable]
-    BSTR id();
+    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
+    BSTR componentFromPoint(
+            [in] LONG x,
+            [in] LONG y);
 
-    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
-    BSTR tagName();
+    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
+    void doScroll([in, optional] VARIANT component);
 
-    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
-    IHTMLElement *parentElement();
+    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    void onscroll(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]
-    IHTMLStyle *style();
+    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
+    VARIANT onscroll();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    void onhelp(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    void ondrag(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    VARIANT onhelp();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
+    VARIANT ondrag();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    void onclick(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    void ondragend(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    VARIANT onclick();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
+    VARIANT ondragend();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    void ondblclick(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    void ondragenter(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    VARIANT ondblclick();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
+    VARIANT ondragenter();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    void onkeydown(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    void ondragover(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    VARIANT onkeydown();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
+    VARIANT ondragover();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    void onkeyup(VARIANT v);
+    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    void ondragleave(VARIANT v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    VARIANT onkeyup();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    void onkeypress(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    VARIANT onkeypress();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    void onmouseout(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    VARIANT onmouseout();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    void onmouseover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    VARIANT onmouseover();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    void onmousemove(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    VARIANT onmousemove();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    void onmousedown(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    VARIANT onmousedown();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    void onmouseup(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    VARIANT onmouseup();
-
-    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
-    IDispatch *document();
-
-    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    void title(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    BSTR title();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    void language(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    BSTR language();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    void onselectstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    VARIANT onselectstart();
-
-    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
-    void scrollIntoView([in, optional] VARIANT varargStart);
-
-    [id(DISPID_IHTMLELEMENT_CONTAINS)]
-    VARIANT_BOOL contains([in] IHTMLElement *pChild);
-
-    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]
-    LONG sourceIndex();
-
-    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
-    VARIANT recordNumber();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANG)]
-    void lang(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANG)]
-    BSTR lang();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
-    LONG offsetLeft();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
-    LONG offsetTop();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
-    LONG offsetWidth();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
-    LONG offsetHeight();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
-    IHTMLElement *offsetParent();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    void innerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    BSTR innerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    void innerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    BSTR innerText();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    void outerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    BSTR outerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    void outerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    BSTR outerText();
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
-    void insertAdjacentHTML(
-            [in] BSTR where,
-            [in] BSTR html);
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
-    void insertAdjacentText(
-            [in] BSTR where,
-            [in] BSTR text);
-
-    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
-    IHTMLElement *parentTextEdit();
-
-    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
-    VARIANT_BOOL isTextEdit();
-
-    [id(DISPID_IHTMLELEMENT_CLICK)]
-    void click();
-
-    [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
-    IHTMLFiltersCollection *filters();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    void ondragstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    VARIANT ondragstart();
-
-    [id(DISPID_IHTMLELEMENT_TOSTRING)]
-    BSTR toString();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    void onbeforeupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    VARIANT onbeforeupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    void onafterupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    VARIANT onafterupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    void onerrorupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    VARIANT onerrorupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    void onrowexit(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    VARIANT onrowexit();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    void onrowenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    VARIANT onrowenter();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    void ondatasetchanged(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    VARIANT ondatasetchanged();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    void ondataavailable(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    VARIANT ondataavailable();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    void ondatasetcomplete(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    VARIANT ondatasetcomplete();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    void onfilterchange(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    VARIANT onfilterchange();
-
-    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
-    IDispatch *children();
-
-    [propget, id(DISPID_IHTMLELEMENT_ALL)]
-    IDispatch *all();
-
-    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
-    BSTR scopeName();
-
-    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
-    void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
-
-    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
-    void releaseCapture();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    void onlosecapture(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
-    VARIANT onlosecapture();
-
-    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
-    BSTR componentFromPoint(
-            [in] LONG x,
-            [in] LONG y);
-
-    [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
-    void doScroll([in, optional] VARIANT component);
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    void onscroll(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
-    VARIANT onscroll();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    void ondrag(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
-    VARIANT ondrag();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    void ondragend(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
-    VARIANT ondragend();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    void ondragenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
-    VARIANT ondragenter();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    void ondragover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
-    VARIANT ondragover();
-
-    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    void ondragleave(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
-    VARIANT ondragleave();
+    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
+    VARIANT ondragleave();
 
     [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
     void ondrop(VARIANT v);
@@ -21281,356 +18857,86 @@ methods:
     VARIANT height();
 
     [propput, id(DISPID_IHTMLTABLE_DATAPAGESIZE)]
-    void dataPageSize(LONG v);
-
-    [propget, id(DISPID_IHTMLTABLE_DATAPAGESIZE)]
-    LONG dataPageSize();
-
-    [id(DISPID_IHTMLTABLE_NEXTPAGE)]
-    void nextPage();
-
-    [id(DISPID_IHTMLTABLE_PREVIOUSPAGE)]
-    void previousPage();
-
-    [propget, id(DISPID_IHTMLTABLE_THEAD)]
-    IHTMLTableSection *tHead();
-
-    [propget, id(DISPID_IHTMLTABLE_TFOOT)]
-    IHTMLTableSection *tFoot();
-
-    [propget, id(DISPID_IHTMLTABLE_TBODIES)]
-    IHTMLElementCollection *tBodies();
-
-    [propget, id(DISPID_IHTMLTABLE_CAPTION)]
-    IHTMLTableCaption *caption();
-
-    [id(DISPID_IHTMLTABLE_CREATETHEAD)]
-    IDispatch *createTHead();
-
-    [id(DISPID_IHTMLTABLE_DELETETHEAD)]
-    void deleteTHead();
-
-    [id(DISPID_IHTMLTABLE_CREATETFOOT)]
-    IDispatch *createTFoot();
-
-    [id(DISPID_IHTMLTABLE_DELETETFOOT)]
-    void deleteTFoot();
-
-    [id(DISPID_IHTMLTABLE_CREATECAPTION)]
-    IHTMLTableCaption *createCaption();
-
-    [id(DISPID_IHTMLTABLE_DELETECAPTION)]
-    void deleteCaption();
-
-    [id(DISPID_IHTMLTABLE_INSERTROW)]
-    IDispatch *insertRow([in, defaultvalue(-1)] LONG index);
-
-    [id(DISPID_IHTMLTABLE_DELETEROW)]
-    void deleteRow([in, defaultvalue(-1)] LONG index);
-
-    [id(DISPID_IHTMLTABLE2_FIRSTPAGE)]
-    void firstPage();
-
-    [id(DISPID_IHTMLTABLE2_LASTPAGE)]
-    void lastPage();
-
-    [propget, id(DISPID_IHTMLTABLE2_CELLS)]
-    IHTMLElementCollection *cells();
-
-    [id(DISPID_IHTMLTABLE2_MOVEROW)]
-    IDispatch *moveRow(
-            [in, defaultvalue(-1)] LONG indexFrom,
-            [in, defaultvalue(-1)] LONG indexTo);
-
-    [propput, id(DISPID_IHTMLTABLE3_SUMMARY), displaybind, bindable]
-    void summary(BSTR v);
-
-    [propget, id(DISPID_IHTMLTABLE3_SUMMARY), displaybind, bindable]
-    BSTR summary();
-}
-
-/*****************************************************************************
- *    DispHTMLTableRow dispinterface
- */
-[
-    hidden,
-    uuid(3050f535-98b5-11cf-bb82-00aa00bdce0b)
-]
-dispinterface DispHTMLTableRow
-{
-properties:
-methods:
-    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
-    void setAttribute(
-            [in] BSTR strAttributeName,
-            [in] VARIANT AttributeValue,
-            [in, defaultvalue(1)] LONG lFlags);
-
-    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
-    VARIANT getAttribute(
-             [in] BSTR strAttributeName,
-             [in, defaultvalue(0)] LONG lFlags);
-
-    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
-    VARIANT_BOOL removeAttribute(
-            [in] BSTR strAttributeName,
-            [in, defaultvalue(1)] LONG lFlags);
-
-    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    void className(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    BSTR className();
-
-    [propput, id(DISPID_IHTMLELEMENT_ID), bindable]
-    void id(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ID), bindable]
-    BSTR id();
-
-    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
-    BSTR tagName();
-
-    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
-    IHTMLElement *parentElement();
-
-    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]
-    IHTMLStyle *style();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    void onhelp(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    VARIANT onhelp();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    void onclick(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    VARIANT onclick();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    void ondblclick(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    VARIANT ondblclick();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    void onkeydown(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    VARIANT onkeydown();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    void onkeyup(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    VARIANT onkeyup();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    void onkeypress(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    VARIANT onkeypress();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    void onmouseout(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    VARIANT onmouseout();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    void onmouseover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    VARIANT onmouseover();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    void onmousemove(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    VARIANT onmousemove();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    void onmousedown(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    VARIANT onmousedown();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    void onmouseup(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    VARIANT onmouseup();
-
-    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
-    IDispatch *document();
-
-    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    void title(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    BSTR title();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    void language(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    BSTR language();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    void onselectstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    VARIANT onselectstart();
-
-    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
-    void scrollIntoView([in, optional] VARIANT varargStart);
-
-    [id(DISPID_IHTMLELEMENT_CONTAINS)]
-    VARIANT_BOOL contains([in] IHTMLElement *pChild);
-
-    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]
-    LONG sourceIndex();
-
-    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
-    VARIANT recordNumber();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANG)]
-    void lang(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANG)]
-    BSTR lang();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
-    LONG offsetLeft();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
-    LONG offsetTop();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
-    LONG offsetWidth();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
-    LONG offsetHeight();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
-    IHTMLElement *offsetParent();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    void innerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    BSTR innerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    void innerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    BSTR innerText();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    void outerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    BSTR outerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    void outerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    BSTR outerText();
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
-    void insertAdjacentHTML(
-            [in] BSTR where,
-            [in] BSTR html);
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
-    void insertAdjacentText(
-            [in] BSTR where,
-            [in] BSTR text);
-
-    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
-    IHTMLElement *parentTextEdit();
-
-    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
-    VARIANT_BOOL isTextEdit();
-
-    [id(DISPID_IHTMLELEMENT_CLICK)]
-    void click();
-
-    [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
-    IHTMLFiltersCollection *filters();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    void ondragstart(VARIANT v);
+    void dataPageSize(LONG v);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    VARIANT ondragstart();
+    [propget, id(DISPID_IHTMLTABLE_DATAPAGESIZE)]
+    LONG dataPageSize();
 
-    [id(DISPID_IHTMLELEMENT_TOSTRING)]
-    BSTR toString();
+    [id(DISPID_IHTMLTABLE_NEXTPAGE)]
+    void nextPage();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    void onbeforeupdate(VARIANT v);
+    [id(DISPID_IHTMLTABLE_PREVIOUSPAGE)]
+    void previousPage();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    VARIANT onbeforeupdate();
+    [propget, id(DISPID_IHTMLTABLE_THEAD)]
+    IHTMLTableSection *tHead();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    void onafterupdate(VARIANT v);
+    [propget, id(DISPID_IHTMLTABLE_TFOOT)]
+    IHTMLTableSection *tFoot();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    VARIANT onafterupdate();
+    [propget, id(DISPID_IHTMLTABLE_TBODIES)]
+    IHTMLElementCollection *tBodies();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    void onerrorupdate(VARIANT v);
+    [propget, id(DISPID_IHTMLTABLE_CAPTION)]
+    IHTMLTableCaption *caption();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    VARIANT onerrorupdate();
+    [id(DISPID_IHTMLTABLE_CREATETHEAD)]
+    IDispatch *createTHead();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    void onrowexit(VARIANT v);
+    [id(DISPID_IHTMLTABLE_DELETETHEAD)]
+    void deleteTHead();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    VARIANT onrowexit();
+    [id(DISPID_IHTMLTABLE_CREATETFOOT)]
+    IDispatch *createTFoot();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    void onrowenter(VARIANT v);
+    [id(DISPID_IHTMLTABLE_DELETETFOOT)]
+    void deleteTFoot();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    VARIANT onrowenter();
+    [id(DISPID_IHTMLTABLE_CREATECAPTION)]
+    IHTMLTableCaption *createCaption();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    void ondatasetchanged(VARIANT v);
+    [id(DISPID_IHTMLTABLE_DELETECAPTION)]
+    void deleteCaption();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    VARIANT ondatasetchanged();
+    [id(DISPID_IHTMLTABLE_INSERTROW)]
+    IDispatch *insertRow([in, defaultvalue(-1)] LONG index);
 
-    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    void ondataavailable(VARIANT v);
+    [id(DISPID_IHTMLTABLE_DELETEROW)]
+    void deleteRow([in, defaultvalue(-1)] LONG index);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    VARIANT ondataavailable();
+    [id(DISPID_IHTMLTABLE2_FIRSTPAGE)]
+    void firstPage();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    void ondatasetcomplete(VARIANT v);
+    [id(DISPID_IHTMLTABLE2_LASTPAGE)]
+    void lastPage();
 
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    VARIANT ondatasetcomplete();
+    [propget, id(DISPID_IHTMLTABLE2_CELLS)]
+    IHTMLElementCollection *cells();
 
-    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    void onfilterchange(VARIANT v);
+    [id(DISPID_IHTMLTABLE2_MOVEROW)]
+    IDispatch *moveRow(
+            [in, defaultvalue(-1)] LONG indexFrom,
+            [in, defaultvalue(-1)] LONG indexTo);
 
-    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    VARIANT onfilterchange();
+    [propput, id(DISPID_IHTMLTABLE3_SUMMARY), displaybind, bindable]
+    void summary(BSTR v);
 
-    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
-    IDispatch *children();
+    [propget, id(DISPID_IHTMLTABLE3_SUMMARY), displaybind, bindable]
+    BSTR summary();
+}
 
-    [propget, id(DISPID_IHTMLELEMENT_ALL)]
-    IDispatch *all();
+/*****************************************************************************
+ *    DispHTMLTableRow dispinterface
+ */
+[
+    hidden,
+    uuid(3050f535-98b5-11cf-bb82-00aa00bdce0b)
+]
+dispinterface DispHTMLTableRow
+{
+properties:
+methods:
+    WINE_IHTMLELEMENT_DISPINTERFACE_DECL;
 
     [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
     BSTR scopeName();
@@ -22440,280 +19746,7 @@ dispinterface DispHTMLIFrame
 {
 properties:
 methods:
-    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
-    void setAttribute(
-            [in] BSTR strAttributeName,
-            [in] VARIANT AttributeValue,
-            [in, defaultvalue(1)] LONG lFlags);
-
-    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
-    VARIANT getAttribute(
-             [in] BSTR strAttributeName,
-             [in, defaultvalue(0)] LONG lFlags);
-
-    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
-    VARIANT_BOOL removeAttribute(
-            [in] BSTR strAttributeName,
-            [in, defaultvalue(1)] LONG lFlags);
-
-    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    void className(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
-    BSTR className();
-
-    [propput, id(DISPID_IHTMLELEMENT_ID), bindable]
-    void id(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ID), bindable]
-    BSTR id();
-
-    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
-    BSTR tagName();
-
-    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
-    IHTMLElement *parentElement();
-
-    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]
-    IHTMLStyle *style();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    void onhelp(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
-    VARIANT onhelp();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    void onclick(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
-    VARIANT onclick();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    void ondblclick(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
-    VARIANT ondblclick();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    void onkeydown(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
-    VARIANT onkeydown();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    void onkeyup(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
-    VARIANT onkeyup();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    void onkeypress(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
-    VARIANT onkeypress();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    void onmouseout(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
-    VARIANT onmouseout();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    void onmouseover(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
-    VARIANT onmouseover();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    void onmousemove(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
-    VARIANT onmousemove();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    void onmousedown(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
-    VARIANT onmousedown();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    void onmouseup(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
-    VARIANT onmouseup();
-
-    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
-    IDispatch *document();
-
-    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    void title(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
-    BSTR title();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    void language(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
-    BSTR language();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    void onselectstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
-    VARIANT onselectstart();
-
-    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
-    void scrollIntoView([in, optional] VARIANT varargStart);
-
-    [id(DISPID_IHTMLELEMENT_CONTAINS)]
-    VARIANT_BOOL contains([in] IHTMLElement *pChild);
-
-    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]
-    LONG sourceIndex();
-
-    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
-    VARIANT recordNumber();
-
-    [propput, id(DISPID_IHTMLELEMENT_LANG)]
-    void lang(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_LANG)]
-    BSTR lang();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
-    LONG offsetLeft();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
-    LONG offsetTop();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
-    LONG offsetWidth();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
-    LONG offsetHeight();
-
-    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
-    IHTMLElement *offsetParent();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    void innerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
-    BSTR innerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    void innerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
-    BSTR innerText();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    void outerHTML(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
-    BSTR outerHTML();
-
-    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    void outerText(BSTR v);
-
-    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
-    BSTR outerText();
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
-    void insertAdjacentHTML(
-            [in] BSTR where,
-            [in] BSTR html);
-
-    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
-    void insertAdjacentText(
-            [in] BSTR where,
-            [in] BSTR text);
-
-    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
-    IHTMLElement *parentTextEdit();
-
-    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
-    VARIANT_BOOL isTextEdit();
-
-    [id(DISPID_IHTMLELEMENT_CLICK)]
-    void click();
-
-    [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
-    IHTMLFiltersCollection *filters();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    void ondragstart(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
-    VARIANT ondragstart();
-
-    [id(DISPID_IHTMLELEMENT_TOSTRING)]
-    BSTR toString();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    void onbeforeupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
-    VARIANT onbeforeupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    void onafterupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
-    VARIANT onafterupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    void onerrorupdate(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
-    VARIANT onerrorupdate();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    void onrowexit(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
-    VARIANT onrowexit();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    void onrowenter(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
-    VARIANT onrowenter();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    void ondatasetchanged(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
-    VARIANT ondatasetchanged();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    void ondataavailable(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
-    VARIANT ondataavailable();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    void ondatasetcomplete(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
-    VARIANT ondatasetcomplete();
-
-    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    void onfilterchange(VARIANT v);
-
-    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
-    VARIANT onfilterchange();
-
-    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
-    IDispatch *children();
-
-    [propget, id(DISPID_IHTMLELEMENT_ALL)]
-    IDispatch *all();
-
-    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
-    BSTR scopeName();
+    WINE_IHTMLELEMENT_DISPINTERFACE_DECL;
 
     [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
     void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);