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.

76 lines
2.4 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 CEffectsBasePage_CreateInstance(IN IUnknown * punkOuter, IN REFIID riid, OUT LPVOID * ppvObj);
  18. class CEffectsBasePage : public CObjectCLSID
  19. , public CObjectWithSite
  20. , public IPropertyBag
  21. , public IBasePropPage
  22. {
  23. public:
  24. //////////////////////////////////////////////////////
  25. // Public Interfaces
  26. //////////////////////////////////////////////////////
  27. // *** IUnknown ***
  28. virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj);
  29. virtual STDMETHODIMP_(ULONG) AddRef(void);
  30. virtual STDMETHODIMP_(ULONG) Release(void);
  31. // *** IShellPropSheetExt ***
  32. virtual STDMETHODIMP AddPages(IN LPFNSVADDPROPSHEETPAGE pfnAddPage, IN LPARAM lParam);
  33. virtual STDMETHODIMP ReplacePage(IN EXPPS uPageID, IN LPFNSVADDPROPSHEETPAGE pfnReplaceWith, IN LPARAM lParam) {return E_NOTIMPL;}
  34. // *** IPropertyBag ***
  35. virtual STDMETHODIMP Read(IN LPCOLESTR pszPropName, IN VARIANT * pVar, IN IErrorLog *pErrorLog);
  36. virtual STDMETHODIMP Write(IN LPCOLESTR pszPropName, IN VARIANT *pVar);
  37. // *** IBasePropPage ***
  38. virtual STDMETHODIMP GetAdvancedDialog(OUT IAdvancedDialog ** ppAdvDialog);
  39. virtual STDMETHODIMP OnApply(IN PROPPAGEONAPPLY oaAction);
  40. CEffectsBasePage();
  41. virtual ~CEffectsBasePage(void);
  42. protected:
  43. private:
  44. // Private Member Variables
  45. long m_cRef;
  46. BOOL m_fDirty;
  47. CEffectState * m_pEffectsState;
  48. // Private Member Functions
  49. HRESULT _InitState(void);
  50. HRESULT _SaveState(CEffectState * pEffectsState);
  51. };
  52. #endif // _EFFECTSBASEPG_H