/*++ Copyright (c) 1994-2001 Microsoft Corporation Module Name : cacheopt.h Abstract: ASP Cache Options page Author: Sergei Antonov (sergeia) Project: Internet Services Manager Revision History: --*/ #ifndef _CACHE_OPT_H #define _CACHE_OPT_H #include "resource.h" #include "ExchControls.h" #include "PropSheet.h" #define SCRIPT_ENG_MIN 0 #define SCRIPT_ENG_MAX 2000000000 #define CACHE_SIZE_MIN 0 #define CACHE_SIZE_MAX CACHE_UNLIM_MAX class CCacheOptPage : public WTL::CPropertyPageImpl, public WTL::CWinDataExchange { typedef WTL::CPropertyPageImpl baseClass; public: CCacheOptPage(CAppData * pData) { m_pData = pData; } ~CCacheOptPage() { } enum {IDD = IDD_CACHE_OPT}; BEGIN_MSG_MAP_EX(CCacheOptPage) MSG_WM_INITDIALOG(OnInitDialog) COMMAND_HANDLER_EX(IDC_NO_CACHE, BN_CLICKED, OnCacheSwitch) COMMAND_HANDLER_EX(IDC_UNLIMITED_CACHE, BN_CLICKED, OnCacheSwitch) COMMAND_HANDLER_EX(IDC_LIMITED_CACHE, BN_CLICKED, OnCacheSwitch) COMMAND_HANDLER_EX(IDC_CACHE_SIZE_EDIT, EN_CHANGE, OnChangeCacheSize) COMMAND_HANDLER_EX(IDC_INMEM_LIM_EDIT, EN_CHANGE, OnChangeInmemCacheSize) COMMAND_HANDLER_EX(IDC_CACHE_PATH, EN_CHANGE, OnChangePath) COMMAND_HANDLER_EX(IDC_ENGINES, EN_CHANGE, OnChangeData) COMMAND_HANDLER_EX(IDC_INMEM_UNLIM_EDIT, EN_CHANGE, OnChangeData) MSG_WM_HSCROLL(OnTrackBarScroll) CHAIN_MSG_MAP(baseClass) END_MSG_MAP() BEGIN_DDX_MAP(CCacheOptPage) DDX_CHECK(IDC_NO_CACHE, m_pData->m_NoCache) DDX_CHECK(IDC_UNLIMITED_CACHE, m_pData->m_UnlimCache) DDX_CHECK(IDC_LIMITED_CACHE, m_pData->m_LimCache) DDX_CONTROL(IDC_NO_CACHE, m_NoCacheBtn) DDX_CONTROL(IDC_UNLIMITED_CACHE, m_UnlimCacheBtn) DDX_CONTROL(IDC_LIMITED_CACHE, m_LimCacheBtn) DDX_CONTROL(IDC_CACHE_DIST, m_cache_dist) DDX_CONTROL(IDC_INMEM_UNLIM_SPIN, m_inmem_unlim) DDX_CONTROL(IDC_CACHE_SIZE_SPIN, m_cache_size) DDX_CONTROL(IDC_INMEM_LIM_SPIN, m_inmem_lim) DDX_CONTROL(IDC_ENG_CACHED_SPIN, m_eng_cache) if (m_pData->m_LimCache) { DDX_INT_RANGE(IDC_CACHE_SIZE_EDIT, m_pData->m_TotalCacheSize, CACHE_SIZE_MIN, CACHE_SIZE_MAX) DDX_INT_RANGE(IDC_INMEM_LIM_EDIT, m_pData->m_LimCacheInMemorySize, 0, m_pData->m_TotalCacheSize) } if (m_pData->m_UnlimCache) { DDX_INT_RANGE(IDC_INMEM_UNLIM_EDIT, m_pData->m_UnlimCacheInMemorySize, CACHE_SIZE_MIN, CACHE_SIZE_MAX) } DDX_INT_RANGE(IDC_ENGINES, m_pData->m_ScriptEngCacheMax, SCRIPT_ENG_MIN, SCRIPT_ENG_MAX) END_DDX_MAP() public: LRESULT OnInitDialog(HWND hDlg, LPARAM lParam); void OnCacheSwitch(UINT nCode, UINT nID, HWND hWnd); void OnTrackBarScroll(UINT nSBCode, UINT nPos, HWND hwnd); void OnChangeCacheSize(UINT nCode, UINT nID, HWND hWnd); void OnChangeInmemCacheSize(UINT nCode, UINT nID, HWND hWnd); void OnChangeData(UINT nCode, UINT nID, HWND hWnd) { SET_MODIFIED(TRUE); } void OnChangePath(UINT nCode, UINT nID, HWND hWnd); BOOL OnKillActive(); BOOL OnApply() { APPLY_DATA(); return TRUE; } void OnDataValidateError(UINT nCtrlID, BOOL bSave, _XData& data); void OnDataExchangeError(UINT nCtrlID, BOOL bSave); void OnHelp(); void AdjustTracker(); protected: CAppData * m_pData; CButtonExch m_NoCacheBtn, m_UnlimCacheBtn, m_LimCacheBtn; CTrackBarCtrlExch m_cache_dist; CUpDownCtrlExch m_inmem_unlim; CUpDownCtrlExch m_inmem_lim; CUpDownCtrlExch m_cache_size; CUpDownCtrlExch m_eng_cache; CFileChooser m_FileChooser; BOOL m_bInitDone; }; class CCacheOptPage_iis5 : public WTL::CPropertyPageImpl, public WTL::CWinDataExchange { typedef WTL::CPropertyPageImpl baseClass; public: CCacheOptPage_iis5(CAppData * pData) { m_pData = pData; } ~CCacheOptPage_iis5() { } enum {IDD = IDD_CACHE_OPT_IIS5}; BEGIN_MSG_MAP_EX(CCacheOptPage_iis5) MSG_WM_INITDIALOG(OnInitDialog) COMMAND_HANDLER_EX(IDC_NO_CACHE, BN_CLICKED, OnCacheSwitch) COMMAND_HANDLER_EX(IDC_UNLIMITED_CACHE, BN_CLICKED, OnCacheSwitch) COMMAND_HANDLER_EX(IDC_LIMITED_CACHE, BN_CLICKED, OnCacheSwitch) COMMAND_HANDLER_EX(IDC_ENGINES, EN_CHANGE, OnChangeData) COMMAND_HANDLER_EX(IDC_CACHE_SIZE_EDIT, EN_CHANGE, OnChangeData) CHAIN_MSG_MAP(baseClass) END_MSG_MAP() BEGIN_DDX_MAP(CCacheOptPage) DDX_CHECK(IDC_NO_CACHE, m_pData->m_NoCache) DDX_CHECK(IDC_UNLIMITED_CACHE, m_pData->m_UnlimCache) DDX_CHECK(IDC_LIMITED_CACHE, m_pData->m_LimCache) DDX_INT_RANGE(IDC_CACHE_SIZE_EDIT, m_pData->m_LimCacheInMemorySize, CACHE_SIZE_MIN, CACHE_SIZE_MAX) DDX_CONTROL(IDC_NO_CACHE, m_NoCacheBtn) DDX_CONTROL(IDC_UNLIMITED_CACHE, m_UnlimCacheBtn) DDX_CONTROL(IDC_LIMITED_CACHE, m_LimCacheBtn) DDX_CONTROL(IDC_CACHE_SIZE_SPIN, m_inmem_lim) DDX_CONTROL(IDC_ENG_CACHED_SPIN, m_eng_cache) DDX_INT_RANGE(IDC_ENGINES, m_pData->m_ScriptEngCacheMax, SCRIPT_ENG_MIN, SCRIPT_ENG_MAX) END_DDX_MAP() public: LRESULT OnInitDialog(HWND hDlg, LPARAM lParam); void OnCacheSwitch(UINT nCode, UINT nID, HWND hWnd); void OnChangeData(UINT nCode, UINT nID, HWND hWnd) { SET_MODIFIED(TRUE); } BOOL OnKillActive(); BOOL OnApply() { APPLY_DATA(); return TRUE; } void OnDataValidateError(UINT nCtrlID, BOOL bSave, _XData& data); void OnDataExchangeError(UINT nCtrlID, BOOL bSave); void OnHelp(); protected: CAppData * m_pData; CButtonExch m_NoCacheBtn, m_UnlimCacheBtn, m_LimCacheBtn; CUpDownCtrlExch m_inmem_lim; CUpDownCtrlExch m_eng_cache; BOOL m_bInitDone; }; #endif //_CACHE_OPT_H