mshtml: Add missing interfaces.
diff --git a/dlls/mshtml/htmloption.c b/dlls/mshtml/htmloption.c
index ae36a99..49d8deb 100644
--- a/dlls/mshtml/htmloption.c
+++ b/dlls/mshtml/htmloption.c
@@ -31,13 +31,13 @@
WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
-typedef struct {
+struct HTMLOptionElement {
HTMLElement element;
const IHTMLOptionElementVtbl *lpHTMLOptionElementVtbl;
nsIDOMHTMLOptionElement *nsoption;
-} HTMLOptionElement;
+};
#define HTMLOPTION(x) (&(x)->lpHTMLOptionElementVtbl)
diff --git a/dlls/mshtml/htmlstylesheet.c b/dlls/mshtml/htmlstylesheet.c
index dca4214..e39bfb7 100644
--- a/dlls/mshtml/htmlstylesheet.c
+++ b/dlls/mshtml/htmlstylesheet.c
@@ -48,13 +48,13 @@
nsIDOMStyleSheetList *nslist;
};
-typedef struct {
+struct HTMLStyleSheetRulesCollection {
const IHTMLStyleSheetRulesCollectionVtbl *lpHTMLStyleSheetRulesCollectionVtbl;
LONG ref;
nsIDOMCSSRuleList *nslist;
-} HTMLStyleSheetRulesCollection;
+};
#define HTMLSTYLESHEET(x) ((IHTMLStyleSheet*) &(x)->lpHTMLStyleSheetVtbl)
#define HTMLSTYLESHEETSCOL(x) ((IHTMLStyleSheetsCollection*) &(x)->lpHTMLStyleSheetsCollectionVtbl)
diff --git a/include/mshtml.idl b/include/mshtml.idl
index e219005..740c6c5 100644
--- a/include/mshtml.idl
+++ b/include/mshtml.idl
@@ -92,6 +92,26 @@
SELECTION_TYPE_Max = 2147483647
} SELECTION_TYPE;
+[
+ odl,
+ oleautomation,
+ dual,
+ uuid(3051049b-98b5-11cf-bb82-00aa00bdce0b)
+]
+interface IHTMLDOMConstructor : IDispatch
+{
+ [propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden]
+ HRESULT constructor([retval, out] IDispatch* * p);
+
+ HRESULT LookupGetter([in] BSTR propname, [retval, out] VARIANT* ppDispHandler);
+
+ HRESULT LookupSetter([in] BSTR propname, [retval, out] VARIANT* ppDispHandler);
+
+ HRESULT DefineGetter([in] BSTR propname, [in] VARIANT* pdispHandler);
+
+ HRESULT DefineSetter([in] BSTR propname, [in] VARIANT* pdispHandler);
+}
+
interface IHTMLDocument2;
interface IHTMLStyleSheetsCollection;
interface IHTMLFrameBase;
@@ -5377,6 +5397,41 @@
HRESULT readOnly([retval, out] VARIANT_BOOL *p);
}
+[
+ hidden,
+ uuid(3050f50e-98b5-11cf-bb82-00aa00bdce0b)
+]
+dispinterface DispHTMLStyleSheetRule
+{
+properties:
+methods:
+ [propput, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
+ void selectorText(BSTR v);
+
+ [propget, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
+ BSTR selectorText();
+
+ [propget, id(DISPID_IHTMLSTYLESHEETRULE_STYLE), nonbrowsable]
+ IHTMLRuleStyle* style();
+
+ [propget, id(DISPID_IHTMLSTYLESHEETRULE_READONLY)]
+ VARIANT_BOOL readOnly();
+
+ [propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden]
+ IDispatch* constructor();
+}
+
+[
+ noncreatable,
+ uuid(3050f3ce-98b5-11cf-bb82-00aa00bdce0b)
+]
+coclass HTMLStyleSheetRule
+{
+ [default] dispinterface DispHTMLStyleSheetRule;
+ interface IHTMLStyleSheetRule;
+ interface IHTMLDOMConstructor;
+}
+
/*****************************************************************************
* IHTMLStyleSheetRulesCollection interface
*/
@@ -5398,6 +5453,35 @@
}
[
+ hidden,
+ uuid(3050f52f-98b5-11cf-bb82-00aa00bdce0b)
+]
+dispinterface DispHTMLStyleSheetRulesCollection
+{
+properties:
+methods:
+ [propget, id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_LENGTH)]
+ long length();
+
+ [id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_ITEM)]
+ IHTMLStyleSheetRule* item([in] long index);
+
+ [propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden]
+ IDispatch* constructor();
+}
+
+[
+ noncreatable,
+ uuid(3050f3cd-98b5-11cf-bb82-00aa00bdce0b)
+]
+coclass HTMLStyleSheetRulesCollection
+{
+ [default] dispinterface DispHTMLStyleSheetRulesCollection;
+ interface IHTMLStyleSheetRulesCollection;
+ interface IHTMLDOMConstructor;
+}
+
+[
odl,
oleautomation,
dual,
@@ -5413,6 +5497,34 @@
}
[
+ hidden,
+ uuid(3050f540-98b5-11cf-bb82-00aa00bdce0b)
+]
+dispinterface DispHTMLStyleSheetPage
+{
+properties:
+methods:
+ [propget, id(DISPID_IHTMLSTYLESHEETPAGE_SELECTOR)]
+ BSTR selector();
+
+ [propget, id(DISPID_IHTMLSTYLESHEETPAGE_PSEUDOCLASS)]
+ BSTR pseudoClass();
+
+ [propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden]
+ IDispatch* constructor();
+}
+[
+ noncreatable,
+ uuid(3050f7ef-98b5-11cf-bb82-00aa00bdce0b)
+]
+coclass HTMLStyleSheetPage
+{
+ [default] dispinterface DispHTMLStyleSheetPage;
+ interface IHTMLStyleSheetPage;
+ interface IHTMLDOMConstructor;
+};
+
+[
odl,
oleautomation,
dual,
@@ -5429,6 +5541,35 @@
[retval, out] IHTMLStyleSheetPage **ppHTMLStyleSheetPage);
}
+[
+ hidden,
+ uuid(3050f543-98b5-11cf-bb82-00aa00bdce0b)
+]
+dispinterface DispHTMLStyleSheetPagesCollection
+{
+properties:
+methods:
+ [propget, id(DISPID_IHTMLSTYLESHEETPAGESCOLLECTION_LENGTH)]
+ long length();
+
+ [id(DISPID_IHTMLSTYLESHEETPAGESCOLLECTION_ITEM)]
+ IHTMLStyleSheetPage* item([in] long index);
+
+ [propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden]
+ IDispatch* constructor();
+}
+
+[
+ noncreatable,
+ uuid(3050f7f1-98b5-11cf-bb82-00aa00bdce0b)
+]
+coclass HTMLStyleSheetPagesCollection
+{
+ [default] dispinterface DispHTMLStyleSheetPagesCollection;
+ interface IHTMLStyleSheetPagesCollection;
+ interface IHTMLDOMConstructor;
+}
+
/*****************************************************************************
* IHTMLStyleSheet interface
*/
@@ -9616,6 +9757,21 @@
HRESULT form([retval, out] IHTMLFormElement **p);
}
+[
+ odl,
+ oleautomation,
+ dual,
+ uuid(3050f820-98b5-11cf-bb82-00aa00bdce0b)
+]
+interface IHTMLOptionElement3 : IDispatch
+{
+ [propput, id(DISPID_IHTMLOPTIONELEMENT3_LABEL), displaybind, bindable]
+ HRESULT label([in] BSTR v);
+
+ [propget, id(DISPID_IHTMLOPTIONELEMENT3_LABEL), displaybind, bindable]
+ HRESULT label([retval, out] BSTR * p);
+}
+
/*****************************************************************************
* IHTMLOptionElementFactory interface
*/
@@ -10527,6 +10683,27 @@
BSTR label();
}
+[
+ noncreatable,
+ uuid(3050f24d-98b5-11cf-bb82-00aa00bdce0b)
+]
+coclass HTMLOptionElement
+{
+ [default] dispinterface DispHTMLOptionElement;
+ [source, default] dispinterface HTMLElementEvents;
+ [source] dispinterface HTMLElementEvents2;
+ interface IHTMLElement;
+ interface IHTMLElement2;
+ interface IHTMLElement3;
+ interface IHTMLElement4;
+ interface IHTMLUniqueName;
+ interface IHTMLDOMNode;
+ interface IHTMLDOMNode2;
+ interface IHTMLDatabinding;
+ interface IHTMLOptionElement;
+ interface IHTMLOptionElement3;
+}
+
/*****************************************************************************
* IHTMLInputElement interface
*/