/**************************************************************************\ FILE: Theme.idl DATE: BryanSt (3/31/2000) DESCRIPTION: Theme API (Object Model). Copyright (c) Microsoft Corporation. All rights reserved. \**************************************************************************/ cpp_quote("#ifndef _THEMEIDL_IDL_H_") cpp_quote("#define _THEMEIDL_IDL_H_") midl_pragma warning( disable: 2400 ) //-------------------------------------------------------------------------- // //-------------------------------------------------------------------------- import "oaidl.idl"; import "ocidl.idl"; import "objidl.idl"; import "dimm.idl"; // They go thru all the pain of definiting LOGFONTW in an IDL acceptable way. (wingdi.h won't work here) #include //-------------------------------------------------------------------------- // Includes //-------------------------------------------------------------------------- #include "ThemeID.h" //-------------------------------------------------------------------------- // Dependencies //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // Interfaces //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // Script Interfaces //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // Themes Type Library //-------------------------------------------------------------------------- [ uuid(40643250-8D23-47fb-895C-EAF48E2C8892), // LIBID_Theme helpstring("Microsoft Theme API Type Library"), lcid(0x0000), version(1.0) ] library Theme { //---------------------------------------------------------------------- // Standard Type Library Stuff //---------------------------------------------------------------------- importlib("stdole2.tlb"); interface ITheme; interface IThemeScheme; interface IThemeStyle; interface IThemeSize; cpp_quote("#ifndef __LPTHEMEMANAGER_DEFINED") cpp_quote("#define __LPTHEMEMANAGER_DEFINED") cpp_quote("//===================================================================") cpp_quote("//DESCRIPTION:") cpp_quote("// This object will allow users to view what 'Visual Style' or") cpp_quote("//'Color Scheme' or 'Appearance Scheme' is set. This will appear") cpp_quote("//in the Display Control Panel under the Theme or Appearance tab.") cpp_quote("//") cpp_quote("//DEFINITIONS:") cpp_quote("// Theme: This is a .theme plus! pack file. The display control") cpp_quote("// panel can change these on the Themes tab.") cpp_quote("// Scheme: This is a visual style (.mstheme file) or it can indicate") cpp_quote("// that no visual style is selected.") cpp_quote("// Style: If Scheme is a .mstheme file, then this is the color section in that file.") cpp_quote("// Otherwise, this is the 'Appearance Scheme' which was available") cpp_quote("// in previous versions of Windows.") cpp_quote("// Size: This is the size of the Style, normally 'Normal', 'Large', or 'Extra Large'.") cpp_quote("//") cpp_quote("//METHODS:") cpp_quote("// get_SelectedTheme: This method will return the currently selected .theme file.") cpp_quote("// put_SelectedTheme: This method will set the currently selected .theme file.") cpp_quote("// The change will not take effect until ApplyNow() is called.") cpp_quote("// get_SelectedScheme: This method will return the currently selected .mstheme file.") cpp_quote("// put_SelectedScheme: This method will set the currently selected .mstheme file.") cpp_quote("// The change will not take effect until ApplyNow() is called.") cpp_quote("// get_length: Returns the number of installed .theme files.") cpp_quote("// get_item: Returns an installed Theme object. The lookup can happen by index") cpp_quote("// or filename.") cpp_quote("// get_schemeLength: Returns the number of installed .mstheme files.") cpp_quote("// get_schemeItem: Returns an installed .mstheme object. The lookup can happen by index") cpp_quote("// or filename. The zero (0) index or empty VT_BSTR value points to the") cpp_quote("// 'No .mstheme' object which matches the 'Windows Classic' look with no .mstheme.") cpp_quote("// ApplyNow: Apply the changes made to put_SelectedTheme() or put_SelectedScheme().") cpp_quote("// This includes persisting the change and broadcasting the change to running applications.") cpp_quote("//===================================================================") [ object, oleautomation, dual, nonextensible, helpstring("Theme Manager Interface"), uuid(04D5D56C-EEAF-4419-B786-300284D6BB5F), // IID_IThemeManager ] interface IThemeManager : IDispatch { //------------------------------------------------------------------ // Pointer to an interface of this type //------------------------------------------------------------------ typedef [unique] IThemeManager *LPTHEMEMANAGER; // For C callers cpp_quote("// These are the names of the Special Themes for GetSpecialTheme()/SetSpecialTheme()") cpp_quote("#define SZ_STDEFAULTTHEME L\"DefaultTheme\" // This is what the installer determines is most appropriate for the user.") cpp_quote("// These are the names of the Special Scheme for GetSpecialScheme()/SetSpecialScheme()") cpp_quote("#define SZ_SSDEFAULVISUALSTYLEON L\"DefaultVisualStyleOn\" // This is what the installer determines is most appropriate for the user with visual styles on.") cpp_quote("#define SZ_SSDEFAULVISUALSTYLEOFF L\"DefaultVisualStyleOff\" // This is what the installer determines is most appropriate for the user with visual styles off.") cpp_quote("// These are the names of the properties for GetSelectedSchemeProperty()") cpp_quote("#define SZ_CSP_PATH L\"Path\" // This is the directory containing the currently selected .mstheme file.") cpp_quote("#define SZ_CSP_FILE L\"File\" // This is the path including the filename to the currently selected .mstheme file.") cpp_quote("#define SZ_CSP_DISPLAYNAME L\"DisplayName\" // This is the display name of the currently selected scheme.") cpp_quote("#define SZ_CSP_CANONICALNAME L\"Name\" // This is the canonical name of the currently selected scheme.") cpp_quote("#define SZ_CSP_COLOR L\"Color\" // This is the color name of the currently selected scheme.") cpp_quote("#define SZ_CSP_SIZE L\"Size\" // This is the canonical size name of the currently selected scheme.") //------------------------------------------------------------------ // Properties //------------------------------------------------------------------ [id(DISPIDTHTM_LENGTH), propget, SZ_HELPTHTM_GETLENGTH, displaybind, bindable] HRESULT length([retval, out] long * pnLength); [id(DISPIDTHTM_ITEM), propget, SZ_HELPTHTM_GETITEM, displaybind, bindable] HRESULT item([in] VARIANT varIndex, [retval, out] ITheme ** ppTheme); [id(DISPIDTHTM_SCHEMELENGTH), propget, SZ_HELPTHTM_GETSCHEMELENGTH, displaybind, bindable] HRESULT schemeLength([retval, out] long * pnLength); [id(DISPIDTHTM_SCHEMEITEM), propget, SZ_HELPTHTM_GETSCHEMEITEM, displaybind, bindable] HRESULT schemeItem([in] VARIANT varIndex, [retval, out] IThemeScheme ** ppThemeScheme); [id(DISPIDTHTM_WEBVIEWCSS), propget, SZ_HELPTHTM_WEBVIEWCSS, displaybind, bindable] HRESULT WebviewCSS([retval, out] BSTR * pbstrPath); [id(DISPIDTHTM_CURRENTTHEME), propget, SZ_HELPTHTM_GETCURRENTTHEME, displaybind, bindable] HRESULT SelectedTheme([retval, out] ITheme ** ppTheme); [id(DISPIDTHTM_CURRENTTHEME), propput, SZ_HELPTHTM_PUTCURRENTTHEME, displaybind, bindable] HRESULT SelectedTheme([in] ITheme * pTheme); [id(DISPIDTHTM_SELECTEDSCHEME), propget, SZ_HELPTHTM_GETSELECTEDSCHEME, displaybind, bindable] HRESULT SelectedScheme([retval, out] IThemeScheme ** ppThemeScheme); [id(DISPIDTHTM_SELECTEDSCHEME), propput, SZ_HELPTHTM_PUTSELECTEDSCHEME, displaybind, bindable] HRESULT SelectedScheme([in] IThemeScheme * pThemeScheme); //------------------------------------------------------------------ // Methods //------------------------------------------------------------------ [id(DISPIDTHTM_GETSPECIALTHEME), SZ_HELPTHTM_GETSPECIALTHEME, displaybind] HRESULT GetSpecialTheme([in] BSTR bstrName, [retval, out] ITheme ** ppTheme); [id(DISPIDTHTM_SETSPECIALTHEME), SZ_HELPTHTM_SETSPECIALTHEME, displaybind] HRESULT SetSpecialTheme([in] BSTR bstrName, [in] ITheme * pTheme); [id(DISPIDTHTM_GETSPECIALSCHEME), SZ_HELPTHTM_GETSPECIALSCHEME, displaybind] HRESULT GetSpecialScheme([in] BSTR bstrName, [out] IThemeScheme ** ppThemeScheme, [out] IThemeStyle ** ppThemeStyle, [retval, out] IThemeSize ** ppThemeSize); [id(DISPIDTHTM_SETSPECIALSCHEME), SZ_HELPTHTM_SETSPECIALSCHEME, displaybind] HRESULT SetSpecialScheme([in] BSTR bstrName, [in] IThemeScheme * pThemeScheme, [in] IThemeStyle * pThemeStyle, [in] IThemeSize * pThemeSize); [id(DISPIDTHTM_GETSELSCHPROPERTY), SZ_HELPTHTM_GETSELSCHPROPERTY, displaybind] HRESULT GetSelectedSchemeProperty([in] BSTR bstrName, [retval, out] BSTR * pbstrValue); [id(DISPIDTHTM_APPLYNOW), SZ_HELPTHTM_APPLYNOW, displaybind] HRESULT ApplyNow(void); } cpp_quote("#endif // __LPTHEMEMANAGER_DEFINED") //---------------------------------------------------------------------- // AutoDiscover Accounts Class //---------------------------------------------------------------------- [ uuid(2E17C0EF-2851-459b-A3C8-27A41D4BC9F7), // CLSID_ThemeManager helpstring("Theme Manager Class"), ] coclass ThemeManager { [default] interface IThemeManager; }; cpp_quote("#ifndef __LPTHEME_DEFINED") cpp_quote("#define __LPTHEME_DEFINED") cpp_quote("//===================================================================") cpp_quote("//DESCRIPTION:") cpp_quote("//GetIcon: The first parameter will specify the icon to fetch. The format") cpp_quote("// will be: : An example for the recycle bin is:") cpp_quote("// CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon::empty") cpp_quote("// The value returned with be the path to the icon file, a comma, and") cpp_quote("// the icon resource index. For example: C:\windows\file.dll,12") cpp_quote("//") cpp_quote("//METHODS:") cpp_quote("//DisplayName: The display name maybe point to a resource in order to be MUI") cpp_quote("// compatible. For example, '@themeui.dll,-172'.") cpp_quote("//Background: This is the path to the background wallpaper.") cpp_quote("//BackgroundTile: This will indicate if the wallpaper should be tiled, stretched, or centered.") cpp_quote("//ScreenSaver: The path to the screen saver.") cpp_quote("//VisualStyle: The path to the .mstheme visual style file.") cpp_quote("//VisualStyleColor: The color to choose in the .mstheme file.") cpp_quote("//VisualStyleSize: The size to choose in the .mstheme file.") cpp_quote("//get_GetPath: The path to the theme (.theme file).") cpp_quote("//SetIcon: The path and resource index of the icon. The") cpp_quote("// following example will be for the Recycle Bin in the empty state:") cpp_quote("// bstrIconName = CLSID\\{645FF040-5081-101B-9F08-00AA002F954E}\\DefaultIcon:empty") cpp_quote("// bstrIconPath = C:\winnt\SYSTEM32\shell32.dll,31") cpp_quote("//") cpp_quote("//===================================================================") [ object, oleautomation, dual, nonextensible, helpstring("Theme Interface"), uuid(A41C22EB-0F93-40ae-B7CE-37A4C4C81B01), // IID_ITheme ] interface ITheme : IDispatch { //------------------------------------------------------------------ // Pointer to an interface of this type //------------------------------------------------------------------ typedef [unique] ITheme *LPTHEME; // For C callers cpp_quote("// ITheme::get_BackgroundTile() Tiles") typedef enum { BKDGT_CENTER = 0, // Center the image on the screen BKDGT_TILE, // Tile the image on the screen BKDGT_STRECH // Stretch the image to fit on the screen } enumBkgdTile; //------------------------------------------------------------------ // Properties //------------------------------------------------------------------ // General Properties [id(DISPIDTHTH_DISPLAYNAME), propget, SZ_HELPTHTH_GETDISPLAYNAME, displaybind, bindable] HRESULT DisplayName([retval, out] BSTR * pbstrDisplayName); // Appears in "Look & Feel" [id(DISPIDTHTH_DISPLAYNAME), propput, SZ_HELPTHTH_PUTDISPLAYNAME, displaybind, bindable] HRESULT DisplayName([in] BSTR bstrDisplayName); // Plus! Uber Theme Properties [id(DISPIDTHTH_BKGD), propget, SZ_HELPTHTH_GETBKGD, displaybind, bindable] HRESULT Background([retval, out] BSTR * pbstrPath); [id(DISPIDTHTH_BKGD), propput, SZ_HELPTHTH_PUTBKGD, displaybind, bindable] HRESULT Background([in] BSTR bstrPath); [id(DISPIDTHTH_BKGDTILE), propget, SZ_HELPTHTH_GETBKGDTILE, displaybind, bindable] HRESULT BackgroundTile([retval, out] enumBkgdTile * pnTile); [id(DISPIDTHTH_BKGDTILE), propput, SZ_HELPTHTH_PUTBKGDTILE, displaybind, bindable] HRESULT BackgroundTile([in] enumBkgdTile nTile); [id(DISPIDTHTH_SCRNSAVER), propget, SZ_HELPTHTH_GETSCRNSAVER, displaybind, bindable] HRESULT ScreenSaver([retval, out] BSTR * pbstrPath); [id(DISPIDTHTH_SCRNSAVER), propput, SZ_HELPTHTH_PUTSCRNSAVER, displaybind, bindable] HRESULT ScreenSaver([in] BSTR bstrPath); [id(DISPIDTHTH_VS), propget, SZ_HELPTHTH_GETVS, displaybind, bindable] HRESULT VisualStyle([retval, out] BSTR * pbstrPath); [id(DISPIDTHTH_VS), propput, SZ_HELPTHTH_PUTVS, displaybind, bindable] HRESULT VisualStyle([in] BSTR bstrPath); [id(DISPIDTHTH_VSCOLOR), propget, SZ_HELPTHTH_GETVSCOLOR, displaybind, bindable] HRESULT VisualStyleColor([retval, out] BSTR * pbstrPath); [id(DISPIDTHTH_VSCOLOR), propput, SZ_HELPTHTH_PUTVSCOLOR, displaybind, bindable] HRESULT VisualStyleColor([in] BSTR bstrPath); [id(DISPIDTHTH_VSSIZE), propget, SZ_HELPTHTH_GETVSSIZE, displaybind, bindable] HRESULT VisualStyleSize([retval, out] BSTR * pbstrPath); [id(DISPIDTHTH_VSSIZE), propput, SZ_HELPTHTH_PUTVSSIZE, displaybind, bindable] HRESULT VisualStyleSize([in] BSTR bstrPath); //------------------------------------------------------------------ // Methods //------------------------------------------------------------------ [id(DISPIDTHTH_GETPATH), SZ_HELPTHTH_GETPATH, displaybind] HRESULT GetPath([in] VARIANT_BOOL fExpand, [retval, out] BSTR * pbstrPath); [id(DISPIDTHTH_SETPATH), SZ_HELPTHTH_PUTPATH, displaybind] HRESULT SetPath([in] BSTR bstrPath); [id(DISPIDTHTH_GETCURSOR), SZ_HELPTHTH_GETCURSOR, displaybind] HRESULT GetCursor([in] BSTR bstrCursor, [retval, out] BSTR * pbstrPath); [id(DISPIDTHTH_SETCURSOR), SZ_HELPTHTH_PUTCURSOR, displaybind] HRESULT SetCursor([in] BSTR bstrCursor, [in] BSTR bstrPath); [id(DISPIDTHTH_GETSOUND), SZ_HELPTHTH_GETSOUND, displaybind] HRESULT GetSound([in] BSTR bstrSoundName, [retval, out] BSTR * pbstrPath); [id(DISPIDTHTH_SETSOUND), SZ_HELPTHTH_PUTSOUND, displaybind] HRESULT SetSound([in] BSTR bstrSoundName, [in] BSTR bstrPath); [id(DISPIDTHTH_GETICON), SZ_HELPTHTH_GETICON, displaybind] HRESULT GetIcon([in] BSTR bstrIconName, [retval, out] BSTR * pbstrIconPath); [id(DISPIDTHTH_SETICON), SZ_HELPTHTH_PUTICON, displaybind] HRESULT SetIcon([in] BSTR bstrIconName, [in] BSTR bstrIconPath); } cpp_quote("#endif // __LPTHEME_DEFINED") //---------------------------------------------------------------------- // Theme Class //---------------------------------------------------------------------- [ uuid(F60691B4-3BD8-4f42-B2FD-20853C433A74), // CLSID_Theme helpstring("Theme Class"), ] coclass Theme { [default] interface ITheme; }; cpp_quote("#ifndef __LPTHEMESCHEME_DEFINED") cpp_quote("#define __LPTHEMESCHEME_DEFINED") cpp_quote("//===================================================================") cpp_quote("//DESCRIPTION:") cpp_quote("//===================================================================") [ object, oleautomation, dual, nonextensible, helpstring("Theme Scheme Interface"), uuid(AA49D906-65B2-42d6-A26A-2EE03C83F839), // IID_IThemeScheme ] interface IThemeScheme : IDispatch { //------------------------------------------------------------------ // Pointer to an interface of this type //------------------------------------------------------------------ typedef [unique] IThemeScheme *LPTHEMESCHEME; // For C callers //------------------------------------------------------------------ // Properties //------------------------------------------------------------------ // General Properties [id(DISPIDTHTS_SCHDISPNAME), propget, SZ_HELPTHTS_GETSCHDISPNAME, displaybind, bindable] HRESULT DisplayName([retval, out] BSTR * pbstrDisplayName); [id(DISPIDTHTS_SCHDISPNAME), propput, SZ_HELPTHTS_PUTSCHDISPNAME, displaybind, bindable] HRESULT DisplayName([in] BSTR bstrDisplayName); [id(DISPIDTHTS_SCHEMEPATH), propget, SZ_HELPTHTS_GETSCHEMEPATH, displaybind, bindable] HRESULT Path([retval, out] BSTR * pbstrPath); [id(DISPIDTHTS_SCHEMEPATH), propput, SZ_HELPTHTS_PUTSCHEMEPATH, displaybind, bindable] HRESULT Path([in] BSTR bstrPath); // Style Collection [id(DISPIDTHTS_LENGTH), propget, SZ_HELPTHTS_GETLENGTH, displaybind, bindable] HRESULT length([retval, out] long * pnLength); [id(DISPIDTHTS_ITEM), propget, SZ_HELPTHTS_GETITEM, displaybind, bindable] HRESULT item([in] VARIANT varIndex, [retval, out] IThemeStyle ** ppThemeStyle); [id(DISPIDTHTS_SELECTEDSTYLE), propget, SZ_HELPTHTS_GETSELECTEDSTYLE, displaybind, bindable] HRESULT SelectedStyle([retval, out] IThemeStyle ** ppThemeStyle); [id(DISPIDTHTS_SELECTEDSTYLE), propput, SZ_HELPTHTS_PUTSELECTEDSTYLE, displaybind, bindable] HRESULT SelectedStyle([in] IThemeStyle * pThemeStyle); //------------------------------------------------------------------ // Methods //------------------------------------------------------------------ [id(DISPIDTHTS_ADDSTYLE), SZ_HELPTHTS_ADDSTYLE, displaybind] HRESULT AddStyle([retval, out] IThemeStyle ** ppThemeStyle); } cpp_quote("#endif // __LPTHEMESCHEME_DEFINED") //---------------------------------------------------------------------- // ThemeScheme Accounts Class //---------------------------------------------------------------------- [ uuid(1C995F92-244F-48ac-9784-4AF9586EBBBA), // CLSID_ThemeScheme helpstring("ThemeScheme Class"), ] coclass ThemeScheme { [default] interface IThemeScheme; }; cpp_quote("#ifndef __LPTHEMESTYLE_DEFINED") cpp_quote("#define __LPTHEMESTYLE_DEFINED") cpp_quote("//===================================================================") cpp_quote("//DESCRIPTION:") cpp_quote("//===================================================================") [ object, oleautomation, dual, nonextensible, helpstring("Theme Style Interface"), uuid(3672E804-D69D-43d8-AF58-F320B8D9AF32), // IID_IThemeStyle ] interface IThemeStyle : IDispatch { //------------------------------------------------------------------ // Pointer to an interface of this type //------------------------------------------------------------------ typedef [unique] IThemeStyle *LPTHEMESTYLE; // For C callers //------------------------------------------------------------------ // Properties //------------------------------------------------------------------ // General Properties [id(DISPIDTHSY_DISPNAME), propget, SZ_HELPTHSY_GETDISPNAME, displaybind, bindable] HRESULT DisplayName([retval, out] BSTR * pbstrDisplayName); [id(DISPIDTHSY_DISPNAME), propput, SZ_HELPTHSY_PUTDISPNAME, displaybind, bindable] HRESULT DisplayName([in] BSTR bstrDisplayName); [id(DISPIDTHSY_NAME), propget, SZ_HELPTHSY_GETNAME, displaybind, bindable] HRESULT Name([retval, out] BSTR * pbstrName); [id(DISPIDTHSY_NAME), propput, SZ_HELPTHSY_PUTNAME, displaybind, bindable] HRESULT Name([in] BSTR bstrName); [id(DISPIDTHSY_LENGTH), propget, SZ_HELPTHSY_GETLENGTH, displaybind, bindable] HRESULT length([retval, out] long * pnLength); [id(DISPIDTHSY_ITEM), propget, SZ_HELPTHSY_GETITEM, displaybind, bindable] HRESULT item([in] VARIANT varIndex, [retval, out] IThemeSize ** ppThemeSize); [id(DISPIDTHSY_SELECTEDSIZE), propget, SZ_HELPTHSY_GETSELECTEDSIZE, displaybind, bindable] HRESULT SelectedSize([retval, out] IThemeSize ** ppThemeSize); [id(DISPIDTHSY_SELECTEDSIZE), propput, SZ_HELPTHSY_PUTSELECTEDSIZE, displaybind, bindable] HRESULT SelectedSize([in] IThemeSize * pThemeSize); //------------------------------------------------------------------ // Methods //------------------------------------------------------------------ [id(DISPIDTHSY_ADDSIZE), SZ_HELPTHSY_ADDSIZE, displaybind] HRESULT AddSize([retval, out] IThemeSize ** ppThemeSize); } cpp_quote("#endif // __LPTHEMESTYLE_DEFINED") //---------------------------------------------------------------------- // ThemeStyle Accounts Class //---------------------------------------------------------------------- [ uuid(AFCEFAC8-8097-4ee5-82DF-121202D95342), // CLSID_ThemeStyle helpstring("ThemeStyle Class"), ] coclass ThemeStyle { [default] interface IThemeStyle; }; cpp_quote("#ifndef __LPTHEMESIZES_DEFINED") cpp_quote("#define __LPTHEMESIZES_DEFINED") cpp_quote("//===================================================================") cpp_quote("//DESCRIPTION:") cpp_quote("//===================================================================") [ object, oleautomation, dual, nonextensible, helpstring("Theme Size Interface"), uuid(72DD2E7F-21E5-46dc-8847-CDDCF58B6725), // IID_IThemeSize ] interface IThemeSize : IDispatch { //------------------------------------------------------------------ // Pointer to an interface of this type //------------------------------------------------------------------ typedef [unique] IThemeSize *LPTHEMESIZES; // For C callers cpp_quote("// IThemeSize::SystemMetricFont() Fonts") typedef enum { SMF_CAPTIONFONT = 0, // NONCLIENTMETRICSW.lfCaptionFont SMF_SMCAPTIONFONT, // NONCLIENTMETRICSW.lfSmCaptionFont SMF_MENUFONT, // NONCLIENTMETRICSW.lfMenuFont SMF_ICONTITLEFONT, // For SPI_GETICONTITLELOGFONT SMF_STATUSFONT, // NONCLIENTMETRICSW.lfStatusFont SMF_MESSAGEFONT, // NONCLIENTMETRICSW.lfMessageFont } enumSystemMetricFont; cpp_quote("// IThemeSize::SystemMetricSize() Sizes") typedef enum { SMS_BORDERWIDTH = 0, // NONCLIENTMETRICSW.iBorderWidth SMS_SCROLLWIDTH, // NONCLIENTMETRICSW.iScrollWidth SMS_SCROLLHEIGHT, // NONCLIENTMETRICSW.iScrollHeight SMS_CAPTIONWIDTH, // NONCLIENTMETRICSW.iCaptionWidth SMS_CAPTIONHEIGHT, // NONCLIENTMETRICSW.iCaptionHeight SMS_SMCAPTIONWIDTH, // NONCLIENTMETRICSW.iSmCaptionWidth SMS_SMCAPTIONHEIGHT, // NONCLIENTMETRICSW.iSmCaptionHeight SMS_MENUWIDTH, // NONCLIENTMETRICSW.iMenuWidth SMS_MENUHEIGHT // NONCLIENTMETRICSW.iMenuHeight } enumSystemMetricSize; cpp_quote("// IThemeSize::get_/put_ContrastLevel() Contrast Levels") typedef enum { // Media types CONTRAST_NORMAL = 0x00000000, // Normal Contrast. CONTRAST_HIGHBLACK = 0x00000001, // High Contrast. Use black or dark colors for backgrounds. CONTRAST_HIGHWHITE = 0x00000002, // High Contrast. Use white or light colors for backgrounds. } enumThemeContrastLevels; //------------------------------------------------------------------ // Properties //------------------------------------------------------------------ // General Properties [id(DISPIDTHSZ_DISPNAME), propget, SZ_HELPTHSZ_GETDISPNAME, displaybind, bindable] HRESULT DisplayName([retval, out] BSTR * pbstrDisplayName); [id(DISPIDTHSZ_DISPNAME), propput, SZ_HELPTHSZ_PUTDISPNAME, displaybind, bindable] HRESULT DisplayName([in] BSTR bstrDisplayName); [id(DISPIDTHSZ_NAME), propget, SZ_HELPTHSZ_GETNAME, displaybind, bindable] HRESULT Name([retval, out] BSTR * pbstrName); [id(DISPIDTHSZ_NAME), propput, SZ_HELPTHSZ_PUTNAME, displaybind, bindable] HRESULT Name([in] BSTR bstrName); [id(DISPIDTHSZ_SYSMETCOLOR), propget, SZ_HELPTHSZ_GETSYSMETCOLOR, displaybind, bindable] HRESULT SystemMetricColor([in] int nSysColorIndex, [retval, out] COLORREF * pColorRef); [id(DISPIDTHSZ_SYSMETCOLOR), propput, SZ_HELPTHSZ_PUTSYSMETCOLOR, displaybind, bindable] HRESULT SystemMetricColor([in] int nSysColorIndex, [in] COLORREF ColorRef); [id(DISPIDTHSZ_SYSMETSIZE), propget, SZ_HELPTHSZ_GETSYSMETSIZE, displaybind, bindable] HRESULT SystemMetricSize([in] enumSystemMetricSize nSystemMetricIndex, [retval, out] int * pnSize); [id(DISPIDTHSZ_SYSMETSIZE), propput, SZ_HELPTHSZ_PUTSYSMETSIZE, displaybind, bindable] HRESULT SystemMetricSize([in] enumSystemMetricSize nSystemMetricIndex, [in] int nSize); [id(DISPIDTHSZ_WEBVIEWCSS), propget, SZ_HELPTHSZ_WEBVIEWCSS, displaybind, bindable] HRESULT WebviewCSS([retval, out] BSTR * pbstrPath); [id(DISPIDTHSZ_CONTRASTLVL), propget, SZ_HELPTHSZ_GETCONTRASTLVL, displaybind, bindable] HRESULT ContrastLevel([retval, out] enumThemeContrastLevels * pContrastLevel); [id(DISPIDTHSZ_CONTRASTLVL), propput, SZ_HELPTHSZ_PUTCONTRASTLVL, displaybind, bindable] HRESULT ContrastLevel([in] enumThemeContrastLevels ContrastLevel); //------------------------------------------------------------------ // Methods //------------------------------------------------------------------ [id(DISPIDTHSZ_GETSYSMETFONT), SZ_HELPTHSZ_GETSYSMETFONT, displaybind] HRESULT GetSystemMetricFont([in] enumSystemMetricFont nFontIndex, [in] LOGFONTW * pLogFontW); [id(DISPIDTHSZ_PUTSYSMETFONT), SZ_HELPTHSZ_PUTSYSMETFONT, displaybind] HRESULT PutSystemMetricFont([in] enumSystemMetricFont nFontIndex, [in] LOGFONTW * pLogFontW); } cpp_quote("#endif // __LPTHEMESIZES_DEFINED") //---------------------------------------------------------------------- // ThemeSize Accounts Class //---------------------------------------------------------------------- [ uuid(05AF76AC-4245-468f-AE35-6D233436937A), // CLSID_ThemeSize helpstring("ThemeSize Class"), ] coclass ThemeSize { [default] interface IThemeSize; }; cpp_quote("#ifndef __LPTHEMEPREVIEW_DEFINED") cpp_quote("#define __LPTHEMEPREVIEW_DEFINED") cpp_quote("//===================================================================") cpp_quote("//DESCRIPTION:") cpp_quote("//===================================================================") [ object, oleautomation, dual, nonextensible, helpstring("Theme Preview Interface"), uuid(b63705f2-b2a2-401e-a20d-643e6b554a1d), // IID_IThemePreview ] interface IThemePreview : IUnknown { //------------------------------------------------------------------ // Pointer to an interface of this type //------------------------------------------------------------------ typedef [unique] IThemePreview *LPTHEMEPREVIEW; // For C callers cpp_quote("// IThemePreview::CreatePreview() dwFlags") typedef enum { // Media types TMPREV_NONE = 0x00000000, TMPREV_SHOWMONITOR = 0x00000001, TMPREV_SHOWBKGND = 0x00000002, TMPREV_SHOWVS = 0x00000004, TMPREV_SHOWICONS = 0x00000008 } enumThemePreviewFlags; //------------------------------------------------------------------ // Properties //------------------------------------------------------------------ // General Properties //------------------------------------------------------------------ // Methods //------------------------------------------------------------------ [id(DISPIDTHPV_UPDATE), SZ_HELPTHPV_UPDATE, displaybind] HRESULT UpdatePreview([in] IPropertyBag * pPropertyBag); [id(DISPIDTHPV_CREATEPREVIEW), SZ_HELPTHPV_CREATEPREVIEW, displaybind] HRESULT CreatePreview([in] HWND hwndParent, [in] DWORD dwFlags, [in] DWORD dwStyle, [in] DWORD dwExStyle, [in] int x, [in] int y, [in] int nWidth, [in] int nHeight, [in] IPropertyBag * pPropertyBag, [in] DWORD dwCtrlID); } cpp_quote("#endif // __LPTHEMEPREVIEW_DEFINED") //---------------------------------------------------------------------- // ThemePreview Accounts Class //---------------------------------------------------------------------- [ uuid(B7BBD408-F09C-4aa8-B65E-A00B8FE0F0B9), // CLSID_ThemePreview helpstring("ThemePreview Class"), ] coclass ThemePreview { [default] interface IThemePreview; }; } // Themes Type Library cpp_quote("#endif // _THEMEIDL_IDL_H_")