windows-nt/Source/XPSP1/NT/shell/cpls/plus/effectsbasepg.h
2020-09-26 16:20:57 +08:00

78 lines
2.5 KiB
C++

/*****************************************************************************\
FILE: EffectsBasePg.h
DESCRIPTION:
This code will be the base object that won't add any pages to the base
"Display Properties" dialog. However, it will request a "Effects" page be
added to the Advanced.
BryanSt 4/13/2000 Updated and Converted to C++
Copyright (C) Microsoft Corp 2000-2000. All rights reserved.
\*****************************************************************************/
#ifndef _EFFECTSBASEPG_H
#define _EFFECTSBASEPG_H
#include "store.h"
#include <cowsite.h>
#include <objclsid.h>
#include <shpriv.h>
#define SZ_PBPROP_EFFECTSSTATE TEXT("EffectsState") // VT_BYREF (void *) to CEffectState class
HRESULT CEffectsPage_CreateInstance(OUT IAdvancedDialog ** ppAdvDialog);
class CEffectsBasePage : public CPropSheetExt
, public CObjectCLSID
, public CObjectWithSite
, public IPropertyBag
, public IBasePropPage
{
public:
//////////////////////////////////////////////////////
// Public Interfaces
//////////////////////////////////////////////////////
// *** IUnknown ***
virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj);
virtual STDMETHODIMP_(ULONG) AddRef(void) {return CPropSheetExt::AddRef();}
virtual STDMETHODIMP_(ULONG) Release(void) {return CPropSheetExt::Release();}
// *** 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);
// *** IBasePropPage ***
virtual STDMETHODIMP GetAdvancedDialog(OUT IAdvancedDialog ** ppAdvDialog);
virtual STDMETHODIMP OnApply(IN PROPPAGEONAPPLY oaAction);
CEffectsBasePage(IUnknown * punkOuter, LPFNDESTROYED pfnDestroy);
virtual ~CEffectsBasePage(void);
protected:
private:
// Private Member Variables
int m_cRef;
BOOL m_fDirty;
CEffectState * m_pEffectsState;
// Private Member Functions
HRESULT _InitState(void);
HRESULT _SaveState(CEffectState * pEffectsState);
};
#endif // _EFFECTSBASEPG_H