Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.5 KiB

  1. /*****************************************************************************\
  2. FILE: EffectsBasePg.h
  3. DESCRIPTION:
  4. This code will be the base object that won't add any pages to the base
  5. "Display Properties" dialog. However, it will request a "Effects" page be
  6. added to the Advanced.
  7. BryanSt 4/13/2000 Updated and Converted to C++
  8. Copyright (C) Microsoft Corp 2000-2000. All rights reserved.
  9. \*****************************************************************************/
  10. #ifndef _EFFECTSBASEPG_H
  11. #define _EFFECTSBASEPG_H
  12. #include "store.h"
  13. #include <cowsite.h>
  14. #include <objclsid.h>
  15. #include <shpriv.h>
  16. #define SZ_PBPROP_EFFECTSSTATE TEXT("EffectsState") // VT_BYREF (void *) to CEffectState class
  17. HRESULT CEffectsPage_CreateInstance(OUT IAdvancedDialog ** ppAdvDialog);
  18. class CEffectsBasePage : public CPropSheetExt
  19. , public CObjectCLSID
  20. , public CObjectWithSite
  21. , public IPropertyBag
  22. , public IBasePropPage
  23. {
  24. public:
  25. //////////////////////////////////////////////////////
  26. // Public Interfaces
  27. //////////////////////////////////////////////////////
  28. // *** IUnknown ***
  29. virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj);
  30. virtual STDMETHODIMP_(ULONG) AddRef(void) {return CPropSheetExt::AddRef();}
  31. virtual STDMETHODIMP_(ULONG) Release(void) {return CPropSheetExt::Release();}
  32. // *** IShellPropSheetExt ***
  33. virtual STDMETHODIMP AddPages(IN LPFNSVADDPROPSHEETPAGE pfnAddPage, IN LPARAM lParam);
  34. virtual STDMETHODIMP ReplacePage(IN EXPPS uPageID, IN LPFNSVADDPROPSHEETPAGE pfnReplaceWith, IN LPARAM lParam) {return E_NOTIMPL;}
  35. // *** IPropertyBag ***
  36. virtual STDMETHODIMP Read(IN LPCOLESTR pszPropName, IN VARIANT * pVar, IN IErrorLog *pErrorLog);
  37. virtual STDMETHODIMP Write(IN LPCOLESTR pszPropName, IN VARIANT *pVar);
  38. // *** IBasePropPage ***
  39. virtual STDMETHODIMP GetAdvancedDialog(OUT IAdvancedDialog ** ppAdvDialog);
  40. virtual STDMETHODIMP OnApply(IN PROPPAGEONAPPLY oaAction);
  41. CEffectsBasePage(IUnknown * punkOuter, LPFNDESTROYED pfnDestroy);
  42. virtual ~CEffectsBasePage(void);
  43. protected:
  44. private:
  45. // Private Member Variables
  46. int m_cRef;
  47. BOOL m_fDirty;
  48. CEffectState * m_pEffectsState;
  49. // Private Member Functions
  50. HRESULT _InitState(void);
  51. HRESULT _SaveState(CEffectState * pEffectsState);
  52. };
  53. #endif // _EFFECTSBASEPG_H