[PATCH] Add missing StyleSheet interfaces
Alistair Leslie-Hughes
leslie_alistair at hotmail.com
Mon Feb 2 04:18:46 CST 2009
---
dlls/mshtml/htmlstylesheet.c | 8 +-
include/mshtmdid.h | 14 ++++
include/mshtml.idl | 160 ++++++++++++++++++++++++++++++++++++++++++
3 files changed, 178 insertions(+), 4 deletions(-)
diff --git a/dlls/mshtml/htmlstylesheet.c b/dlls/mshtml/htmlstylesheet.c
index adbe740..5be78b8 100644
--- a/dlls/mshtml/htmlstylesheet.c
+++ b/dlls/mshtml/htmlstylesheet.c
@@ -32,21 +32,21 @@
WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
-typedef struct {
+struct HTMLStyleSheet {
const IHTMLStyleSheetVtbl *lpHTMLStyleSheetVtbl;
LONG ref;
nsIDOMCSSStyleSheet *nsstylesheet;
-} HTMLStyleSheet;
+};
-typedef struct {
+struct HTMLStyleSheetsCollection {
const IHTMLStyleSheetsCollectionVtbl *lpHTMLStyleSheetsCollectionVtbl;
LONG ref;
nsIDOMStyleSheetList *nslist;
-} HTMLStyleSheetsCollection;
+};
typedef struct {
const IHTMLStyleSheetRulesCollectionVtbl *lpHTMLStyleSheetRulesCollectionVtbl;
diff --git a/include/mshtmdid.h b/include/mshtmdid.h
index c8c8b27..75a7290 100644
--- a/include/mshtmdid.h
+++ b/include/mshtmdid.h
@@ -74,8 +74,10 @@
#define DISPID_SCRIPT DISPID_NORMAL_FIRST
#define DISPID_STYLESHEET DISPID_NORMAL_FIRST
#define DISPID_STYLERULE DISPID_NORMAL_FIRST
+#define DISPID_STYLEPAGE DISPID_NORMAL_FIRST
#define DISPID_STYLESHEETS_COL DISPID_NORMAL_FIRST
#define DISPID_STYLERULES_COL DISPID_NORMAL_FIRST
+#define DISPID_STYLEPAGES_COL DISPID_NORMAL_FIRST
#define DISPID_MIMETYPES_COL DISPID_NORMAL_FIRST
#define DISPID_PLUGINS_COL DISPID_NORMAL_FIRST
#define DISPID_2D DISPID_NORMAL_FIRST
@@ -1798,10 +1800,22 @@
#define DISPID_IHTMLSTYLESHEET_RULES (DISPID_STYLESHEET+15)
#define DISPID_IHTMLSTYLESHEET_DISABLED STDPROPID_XOBJ_DISABLED
+/* IHTMLStyleSheet2 */
+#define DISPID_IHTMLSTYLESHEET2_PAGES (DISPID_STYLESHEET+16)
+#define DISPID_IHTMLSTYLESHEET2_ADDPAGERULE (DISPID_STYLESHEET+17)
+
/* IHTMLStyleSheetRulesCollection */
#define DISPID_IHTMLSTYLESHEETRULESCOLLECTION_LENGTH (DISPID_STYLERULES_COL+1)
#define DISPID_IHTMLSTYLESHEETRULESCOLLECTION_ITEM DISPID_VALUE
+/* IHTMLStyleSheetPage */
+#define DISPID_IHTMLSTYLESHEETPAGE_SELECTOR (DISPID_STYLEPAGE+1)
+#define DISPID_IHTMLSTYLESHEETPAGE_PSEUDOCLASS (DISPID_STYLEPAGE+2)
+
+/* IHTMLStyleSheetPagesCollection */
+#define DISPID_IHTMLSTYLESHEETPAGESCOLLECTION_LENGTH (DISPID_STYLEPAGES_COL+1)
+#define DISPID_IHTMLSTYLESHEETPAGESCOLLECTION_ITEM DISPID_VALUE
+
/* IHTMLStyleSheetRule */
#define DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT (DISPID_STYLERULE+1)
#define DISPID_IHTMLSTYLESHEETRULE_READONLY (DISPID_STYLERULE+2)
diff --git a/include/mshtml.idl b/include/mshtml.idl
index 1e17857..dd71879 100644
--- a/include/mshtml.idl
+++ b/include/mshtml.idl
@@ -5393,6 +5393,38 @@ interface IHTMLStyleSheetRulesCollection : IDispatch
[retval, out] IHTMLStyleSheetRule **ppHTMLStyleSheetRule);
}
+[
+ odl,
+ oleautomation,
+ dual,
+ uuid(3050f7ee-98b5-11cf-bb82-00aa00bdce0b)
+]
+interface IHTMLStyleSheetPage : IDispatch
+{
+ [propget, id(DISPID_IHTMLSTYLESHEETPAGE_SELECTOR)]
+ HRESULT selector([retval, out] BSTR *p);
+
+ [propget, id(DISPID_IHTMLSTYLESHEETPAGE_PSEUDOCLASS)]
+ HRESULT pseudoClass([retval, out] BSTR *p);
+}
+
+[
+ odl,
+ oleautomation,
+ dual,
+ uuid(3050f7f0-98b5-11cf-bb82-00aa00bdce0b)
+]
+interface IHTMLStyleSheetPagesCollection : IDispatch
+{
+ [propget, id(DISPID_IHTMLSTYLESHEETPAGESCOLLECTION_LENGTH)]
+ HRESULT length([retval, out] long *p);
+
+ [id(DISPID_IHTMLSTYLESHEETPAGESCOLLECTION_ITEM)]
+ HRESULT item(
+ [in] long index,
+ [retval, out] IHTMLStyleSheetPage **ppHTMLStyleSheetPage);
+}
+
/*****************************************************************************
* IHTMLStyleSheet interface
*/
@@ -5476,6 +5508,125 @@ interface IHTMLStyleSheet : IDispatch
}
/*****************************************************************************
+ * IHTMLStyleSheet2 interface
+ */
+[
+ odl,
+ oleautomation,
+ dual,
+ uuid(3050f3d1-98b5-11cf-bb82-00aa00bdce0b)
+]
+interface IHTMLStyleSheet2 : IDispatch
+{
+ [propget, id(DISPID_IHTMLSTYLESHEET2_PAGES)]
+ HRESULT pages([retval, out] IHTMLStyleSheetPagesCollection **p);
+
+ [id(DISPID_IHTMLSTYLESHEET2_ADDPAGERULE)]
+ HRESULT addPageRule(
+ [in] BSTR bstrSelector,
+ [in] BSTR bstrStyle,
+ [defaultvalue(-1), in] long lIndex,
+ [retval, out] long *plNewIndex);
+}
+
+[
+ hidden,
+ uuid(3050f58d-98b5-11cf-bb82-00aa00bdce0b)
+]
+dispinterface DispHTMLStyleSheet
+{
+properties:
+methods:
+ [propput, id(DISPID_IHTMLSTYLESHEET_TITLE)]
+ void title(BSTR v);
+
+ [propget, id(DISPID_IHTMLSTYLESHEET_TITLE)]
+ BSTR title();
+
+ [propget, id(DISPID_IHTMLSTYLESHEET_PARENTSTYLESHEET)]
+ IHTMLStyleSheet* parentStyleSheet();
+
+ [propget, id(DISPID_IHTMLSTYLESHEET_OWNINGELEMENT)]
+ IHTMLElement* owningElement();
+
+ [propput, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
+ void disabled(VARIANT_BOOL v);
+
+ [propget, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
+ VARIANT_BOOL disabled();
+
+ [propget, id(DISPID_IHTMLSTYLESHEET_READONLY)]
+ VARIANT_BOOL readOnly();
+
+ [propget, id(DISPID_IHTMLSTYLESHEET_IMPORTS)]
+ IHTMLStyleSheetsCollection* imports();
+
+ [propput, id(DISPID_IHTMLSTYLESHEET_HREF)]
+ void href(BSTR v);
+
+ [propget, id(DISPID_IHTMLSTYLESHEET_HREF)]
+ BSTR href();
+
+ [propget, id(DISPID_IHTMLSTYLESHEET_TYPE)]
+ BSTR type();
+
+ [propget, id(DISPID_IHTMLSTYLESHEET_ID)]
+ BSTR id();
+
+ [id(DISPID_IHTMLSTYLESHEET_ADDIMPORT)]
+ long addImport(
+ [in] BSTR bstrURL,
+ [defaultvalue(-1), in] long lIndex);
+
+ [id(DISPID_IHTMLSTYLESHEET_ADDRULE)]
+ long addRule(
+ [in] BSTR bstrSelector,
+ [in] BSTR bstrStyle,
+ [defaultvalue(-1), in] long lIndex);
+
+ [id(DISPID_IHTMLSTYLESHEET_REMOVEIMPORT)]
+ void removeImport([in] long lIndex);
+
+ [id(DISPID_IHTMLSTYLESHEET_REMOVERULE)]
+ void removeRule([in] long lIndex);
+
+ [propput, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
+ void media(BSTR v);
+
+ [propget, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
+ BSTR media();
+
+ [propput, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
+ void cssText(BSTR v);
+
+ [propget, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
+ BSTR cssText();
+
+ [propget, id(DISPID_IHTMLSTYLESHEET_RULES)]
+ IHTMLStyleSheetRulesCollection* rules();
+
+ [propget, id(DISPID_IHTMLSTYLESHEET2_PAGES)]
+ IHTMLStyleSheetPagesCollection* pages();
+
+ [id(DISPID_IHTMLSTYLESHEET2_ADDPAGERULE)]
+ long addPageRule(
+ [in] BSTR bstrSelector,
+ [in] BSTR bstrStyle,
+ [defaultvalue(-1), in] long lIndex);
+}
+
+[
+ noncreatable,
+ uuid(3050f2e4-98b5-11cf-bb82-00aa00bdce0b)
+]
+coclass HTMLStyleSheet
+{
+ [default] dispinterface DispHTMLStyleSheet;
+ interface IHTMLStyleSheet;
+ interface IHTMLStyleSheet2;
+}
+
+/*****************************************************************************
* IHTMLStyleSheetsCollection interface
*/
[
@@ -5646,6 +5797,15 @@ interface IHTMLTxtRange : IDispatch
[retval, out] VARIANT_BOOL *pfRet);
}
+[
+ noncreatable,
+ uuid(3050f37f-98b5-11cf-bb82-00aa00bdce0b)
+]
+coclass HTMLStyleSheetsCollection
+{
+ [default] interface IHTMLStyleSheetsCollection;
+}
+
/*****************************************************************************
* IHTMLFormElement interface
*/
--
1.5.4.3
--------------030900030906000201030307--
More information about the wine-patches
mailing list