diff --git a/dlls/mshtml/htmlinput.c b/dlls/mshtml/htmlinput.c
index 607e24fdc4d..196a47f06da 100644
--- a/dlls/mshtml/htmlinput.c
+++ b/dlls/mshtml/htmlinput.c
@@ -1559,13 +1559,13 @@ HRESULT HTMLLabelElement_Create(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem
return S_OK;
}
-typedef struct {
+struct HTMLButtonElement {
HTMLElement element;
IHTMLButtonElement IHTMLButtonElement_iface;
nsIDOMHTMLButtonElement *nsbutton;
-} HTMLButtonElement;
+};
static inline HTMLButtonElement *impl_from_IHTMLButtonElement(IHTMLButtonElement *iface)
{
diff --git a/include/mshtml.idl b/include/mshtml.idl
index b6922c78073..3834bd1bb16 100644
--- a/include/mshtml.idl
+++ b/include/mshtml.idl
@@ -11459,6 +11459,25 @@ methods:
IHTMLTxtRange *createTextRange();
}
+/*****************************************************************************
+ * HTMLButtonElement coclass
+ */
+[
+ noncreatable,
+ uuid(3050f2c6-98b5-11cf-bb82-00aa00bdce0b)
+]
+coclass HTMLButtonElement
+{
+ [default] dispinterface DispHTMLButtonElement;
+ /* [source, default] dispinterface HTMLButtonElementEvents; */
+ /* [source] dispinterface HTMLButtonElementEvents2; */
+ WINE_HTMLDATAELEMENT_INTERFACES;
+ interface IHTMLControlElement;
+ interface IHTMLTextContainer;
+ interface IHTMLButtonElement;
+ /* interface IHTMLButtonElement2; */
+}
+
/*****************************************************************************
* IHTMLHtmlElement interface
*/