/*****************************************************************************\ FILE: BaseAppearPg.h DESCRIPTION: This code will display a "Appearances" tab in the "Display Properties" dialog (the base dialog, not the advanced dlg). ??????? ?/??/1993 Created BryanSt 3/23/2000 Updated and Converted to C++ Copyright (C) Microsoft Corp 1993-2000. All rights reserved. \*****************************************************************************/ #ifndef _BASEAPPEAR_H #define _BASEAPPEAR_H #include #include "PreviewTh.h" class CBaseAppearancePage : public CObjectWithSite , public CObjectWindow , public CObjectCLSID , public IPropertyBag , public IPreviewSystemMetrics , public IBasePropPage { public: ////////////////////////////////////////////////////// // Public Interfaces ////////////////////////////////////////////////////// // *** IUnknown *** virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj); virtual STDMETHODIMP_(ULONG) AddRef(void); virtual STDMETHODIMP_(ULONG) Release(void); // *** IBasePropPage *** virtual STDMETHODIMP GetAdvancedDialog(OUT IAdvancedDialog ** ppAdvDialog); virtual STDMETHODIMP OnApply(IN PROPPAGEONAPPLY oaAction); // *** IShellPropSheetExt *** virtual STDMETHODIMP AddPages(IN LPFNSVADDPROPSHEETPAGE pfnAddPage, IN LPARAM lParam); virtual STDMETHODIMP ReplacePage(IN EXPPS uPageID, IN LPFNSVADDPROPSHEETPAGE pfnReplaceWith, IN LPARAM lParam) {return E_NOTIMPL;} // *** IPropertyBag *** virtual STDMETHODIMP Read(IN LPCOLESTR pszPropName, IN VARIANT * pVar, IN IErrorLog *pErrorLog); virtual STDMETHODIMP Write(IN LPCOLESTR pszPropName, IN VARIANT *pVar); // *** IObjectWithSite *** virtual STDMETHODIMP SetSite(IUnknown *punkSite); // *** IPreviewSystemMetrics *** virtual STDMETHODIMP RefreshColors(void); virtual STDMETHODIMP UpdateDPIchange(void) {return E_NOTIMPL;} virtual STDMETHODIMP UpdateCharsetChanges(void); virtual STDMETHODIMP DeskSetCurrentScheme(IN LPCWSTR pwzSchemeName); CBaseAppearancePage(); protected: private: virtual ~CBaseAppearancePage(void); // Private Member Variables long m_cRef; BOOL m_fIsDirty; // We need to keep track of this in case another tab dirties out bit. BOOL m_fInitialized; // Have we been initialized yet? BOOL m_fLockVisualStylePolicyEnabled; // Do we lock visual styles because of a policy? int m_nSelectedScheme; int m_nSelectedStyle; int m_nSelectedSize; HWND m_hwndSchemeDropDown; HWND m_hwndStyleDropDown; HWND m_hwndSizeDropDown; IThemeManager * m_pThemeManager; IThemeScheme * m_pSelectedThemeScheme; IThemeStyle * m_pSelectedStyle; IThemeSize * m_pSelectedSize; IThemePreview * m_pThemePreview; LPWSTR m_pszLoadMSTheme; // When we open up, load this theme. SYSTEMMETRICSALL m_advDlgState; // This is the state we modify in the Advanced Appearance page. BOOL m_fLoadedAdvState; // Has the state been loaded? int m_nNewDPI; // This is the dirty DPI. It equals m_nAppliedDPI if it isn't dirty. int m_nAppliedDPI; // This is the currently active DPI (last applied). // Private Member Functions INT_PTR _BaseAppearanceDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); HRESULT _OnInitAppearanceDlg(HWND hDlg); HRESULT _OnInitData(void); HRESULT _OnDestroy(HWND hDlg); INT_PTR _OnCommand(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); HRESULT _OnSetActive(HWND hDlg); HRESULT _OnApply(HWND hDlg, LPARAM lParam); HRESULT _UpdatePreview(IN BOOL fUpdateThemePage); HRESULT _EnableAdvancedButton(void); // See if we want the Advanced button enabled. HRESULT _LoadState(void); HRESULT _SaveState(CDimmedWindow* pDimmedWindow); HRESULT _LoadLiveSettings(IN LPCWSTR pszSaveGroup); HRESULT _SaveLiveSettings(IN LPCWSTR pszSaveGroup); HRESULT _OnSchemeChange(HWND hDlg, BOOL fDisplayErrors); HRESULT _OnStyleChange(HWND hDlg); HRESULT _OnSizeChange(HWND hDlg); HRESULT _OnAdvancedOptions(HWND hDlg); HRESULT _OnEffectsOptions(HWND hDlg); HRESULT _PopulateSchemeDropdown(void); HRESULT _PopulateStyleDropdown(void); HRESULT _PopulateSizeDropdown(void); HRESULT _FreeSchemeDropdown(void); HRESULT _FreeStyleDropdown(void); HRESULT _FreeSizeDropdown(void); BOOL _IsDirty(void); HRESULT _SetScheme(IN BOOL fLoadSystemMetrics, IN BOOL fLoadLiveSettings, IN BOOL fPreviousSelectionIsVS); HRESULT _OutsideSetScheme(BSTR bstrScheme); HRESULT _SetStyle(IN BOOL fUpdateThemePage); HRESULT _OutsideSetStyle(BSTR bstrStyle); HRESULT _SetSize(IN BOOL fLoadSystemMetrics, IN BOOL fUpdateThemePage); HRESULT _OutsideSetSize(BSTR bstrSize); HRESULT _LoadVisaulStyleFile(IN LPCWSTR pszPath); HRESULT _ApplyScheme(IThemeScheme * pThemeScheme, IThemeStyle * pColorStyle, IThemeSize * pThemeSize); HRESULT _GetPageByCLSID(const GUID * pClsid, IPropertyBag ** ppPropertyBag); HRESULT _ScaleSizesSinceDPIChanged(void); static INT_PTR CALLBACK BaseAppearanceDlgProc(HWND hDlg, UINT message , WPARAM wParam, LPARAM lParam); }; #endif // _BASEAPPEAR_H