diff --git a/dlls/mshtml/htmlstylesheet.c b/dlls/mshtml/htmlstylesheet.c index adbe740db45..5be78b850f7 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 c8c8b274fa2..75a72906bf1 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 1e178578b72..dd7187927ae 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 */ @@ -5475,6 +5507,125 @@ interface IHTMLStyleSheet : IDispatch HRESULT rules([retval, out] IHTMLStyleSheetRulesCollection **p); } +/***************************************************************************** + * 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 */