/*++ Copyright (c) 1994-2000 Microsoft Corporation Module Name : deffs.cpp Abstract: Default Ftp Site Dialog Author: Sergei Antonov (sergeia) Project: Internet Services Manager Revision History: --*/ // // Include Files // #include "stdafx.h" #include "resource.h" #include "common.h" #include "inetmgrapp.h" #include "inetprop.h" #include "shts.h" #include "ftpsht.h" #include "deffs.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif /* static */ void CDefFtpSitePage::ParseMaxNetworkUse( DWORD& dwMaxBandwidth, DWORD& dwMaxBandwidthDisplay, BOOL& fLimitBandwidth ) { // // Special case: If dwMaxBandwidth is 0(an invalid value), the // value likely could not be inherited from the root (the user // is an operator and can't see the properties there). Adjust // the value to a possibly misleading value. // if (dwMaxBandwidth == 0L) { TRACEEOLID("Adjusting invalid bandwidth throttling value -- " "are you an operator?"); dwMaxBandwidth = INFINITE_BANDWIDTH; } fLimitBandwidth = (dwMaxBandwidth != INFINITE_BANDWIDTH); dwMaxBandwidthDisplay = fLimitBandwidth ? (dwMaxBandwidth / KILOBYTE) : (DEF_BANDWIDTH / KILOBYTE); } IMPLEMENT_DYNCREATE(CDefFtpSitePage, CInetPropertyPage) CDefFtpSitePage::CDefFtpSitePage( IN CInetPropertySheet * pSheet ) : CInetPropertyPage(CDefFtpSitePage::IDD, pSheet) { } CDefFtpSitePage::~CDefFtpSitePage() { } void CDefFtpSitePage::DoDataExchange( IN CDataExchange * pDX ) { CInetPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDefWebSitePage) DDX_Check(pDX, IDC_CHECK_LIMIT_NETWORK_USE, m_fLimitBandwidth); DDX_Control(pDX, IDC_CHECK_LIMIT_NETWORK_USE, m_LimitBandwidth); DDX_Control(pDX, IDC_MAX_BANDWIDTH, m_MaxBandwidth); DDX_TextBalloon(pDX, IDC_MAX_BANDWIDTH, m_dwMaxBandwidthDisplay); DDX_Control(pDX, IDC_MAX_BANDWIDTH_SPIN, m_MaxBandwidthSpin); //}}AFX_DATA_MAP if (!pDX->m_bSaveAndValidate || m_fLimitBandwidth) { // This Needs to come before DDX_Text which will try to put text big number into small number DDV_MinMaxBalloon(pDX, IDC_MAX_BANDWIDTH, BANDWIDTH_MIN, BANDWIDTH_MAX); DDX_TextBalloon(pDX, IDC_MAX_BANDWIDTH, m_dwMaxBandwidthDisplay); } } /* virtual */ HRESULT CDefFtpSitePage::FetchLoadedValues() /*++ Routine Description: Move configuration data from sheet to dialog controls Arguments: None Return Value: HRESULT --*/ { CError err; BEGIN_META_INST_READ(CFtpSheet) FETCH_INST_DATA_FROM_SHEET(m_dwMaxBandwidth); ParseMaxNetworkUse( m_dwMaxBandwidth, m_dwMaxBandwidthDisplay, m_fLimitBandwidth ); END_META_INST_READ(err) return err; } /* virtual */ HRESULT CDefFtpSitePage::SaveInfo() /*++ Routine Description: Save the information on this property page Arguments: None Return Value: Error return code --*/ { ASSERT(IsDirty()); TRACEEOLID("Saving Ftp default site page now..."); CError err; BuildMaxNetworkUse( m_dwMaxBandwidth, m_dwMaxBandwidthDisplay, m_fLimitBandwidth ); BeginWaitCursor(); BEGIN_META_INST_WRITE(CFtpSheet) STORE_INST_DATA_ON_SHEET(m_dwMaxBandwidth); END_META_INST_WRITE(err) EndWaitCursor(); return err; } BOOL CDefFtpSitePage::SetControlStates() { if (::IsWindow(m_LimitBandwidth.m_hWnd)) { BOOL fLimitOn = m_LimitBandwidth.GetCheck() > 0 // && HasBwThrottling() // && HasAdminAccess() ; m_MaxBandwidth.EnableWindow(fLimitOn); m_MaxBandwidthSpin.EnableWindow(fLimitOn); return fLimitOn; } return FALSE; } // // Message Map // BEGIN_MESSAGE_MAP(CDefFtpSitePage, CInetPropertyPage) //{{AFX_MSG_MAP(CW3PerfPage) ON_BN_CLICKED(IDC_CHECK_LIMIT_NETWORK_USE, OnCheckLimitNetworkUse) //}}AFX_MSG_MAP ON_EN_CHANGE(IDC_MAX_BANDWIDTH, OnItemChanged) END_MESSAGE_MAP() BOOL CDefFtpSitePage::OnInitDialog() { UDACCEL toAcc[3] = {{1, 1}, {3, 5}, {6, 10}}; CInetPropertyPage::OnInitDialog(); // // Disable some settings based on what's possible // #if 0 m_LimitBandwidth.EnableWindow( !IsMasterInstance() && HasBwThrottling() && HasAdminAccess() ); #endif SETUP_EDIT_SPIN(m_fLimitBandwidth, m_MaxBandwidth, m_MaxBandwidthSpin, BANDWIDTH_MIN, BANDWIDTH_MAX, m_dwMaxBandwidthDisplay); SetControlStates(); return TRUE; } void CDefFtpSitePage::OnItemChanged() { SetControlStates(); SetModified(TRUE); } void CDefFtpSitePage::OnCheckLimitNetworkUse() { if (SetControlStates()) { m_MaxBandwidth.SetSel(0, -1); m_MaxBandwidth.SetFocus(); } OnItemChanged(); }