// advcom1.cpp : implementation file // #include "stdafx.h" #include "afxcmn.h" #include "ISAdmin.h" #include "advcom1.h" #ifdef _DEBUG #undef THIS_FILE static char BASED_CODE THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CADVCOM1 dialog IMPLEMENT_DYNCREATE(CADVCOM1, CGenPage) CADVCOM1::CADVCOM1(): CGenPage(CADVCOM1::IDD) { //{{AFX_DATA_INIT(CADVCOM1) //}}AFX_DATA_INIT } CADVCOM1::~CADVCOM1() { } void CADVCOM1::DoDataExchange(CDataExchange* pDX) { CGenPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CADVCOM1) DDX_Control(pDX, IDC_LOGFILEFLUSHINTERVALSPIN1, m_spinLogFileFlushInterval); DDX_Control(pDX, IDC_LOGFILEFLUSHINTERVALDATA1, m_editLogFileFlushInterval); DDX_Control(pDX, IDC_USELOGFILEFLUSHINTERNVALDATA1, m_cboxUseLogFileFlushInterval); DDX_Control(pDX, IDC_USERTOKENTTLSPIN1, m_spinUserTokenTTL); DDX_Control(pDX, IDC_USEOBJECTCACHETTLDATA1, m_cboxUseObjCacheTTL); DDX_Control(pDX, IDC_OBJCACHEDATA1, m_editObjCacheTTL); DDX_Control(pDX, IDC_ACCEPTEXTODATA1, m_editAcceptExTO); DDX_Control(pDX, IDC_ACCEPTEXOUTDATA1, m_editAcceptExOut); DDX_Control(pDX, IDC_COMDBGFLAGSDATA1, m_editComDbgFlags); DDX_Control(pDX, IDC_USEACCEPTEXDATA1, m_cboxUseAcceptEx); DDX_Control(pDX, IDC_THREADTOSPIN1, m_spinThreadTO); DDX_Control(pDX, IDC_OBJCACHESPIN1, m_spinObjCache); DDX_Control(pDX, IDC_MAXPOOLSPIN1, m_spinMaxPool); DDX_Control(pDX, IDC_MAXCONCURSPIN1, m_spinMaxConcur); DDX_Control(pDX, IDC_ACCEPTEXTOSPIN1, m_spinAcceptExTO); DDX_Control(pDX, IDC_ACCEPTEXOUTSPIN1, m_spinAcceptExOut); DDX_TexttoHex(pDX, IDC_COMDBGFLAGSDATA1, m_ulComDbgFlags); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CADVCOM1, CGenPage) //{{AFX_MSG_MAP(CADVCOM1) ON_EN_CHANGE(IDC_ACCEPTEXOUTDATA1, OnChangeAcceptexoutdata1) ON_EN_CHANGE(IDC_ACCEPTEXTODATA1, OnChangeAcceptextodata1) ON_EN_CHANGE(IDC_MAXCONCURDATA1, OnChangeMaxconcurdata1) ON_EN_CHANGE(IDC_MAXPOOLDATA1, OnChangeMaxpooldata1) ON_EN_CHANGE(IDC_OBJCACHEDATA1, OnChangeObjcachedata1) ON_EN_CHANGE(IDC_THREADTODATA1, OnChangeThreadtodata1) ON_BN_CLICKED(IDC_USEACCEPTEXDATA1, OnUseacceptexdata1) ON_EN_CHANGE(IDC_COMDBGFLAGSDATA1, OnChangeComdbgflagsdata1) ON_BN_CLICKED(IDC_USEOBJECTCACHETTLDATA1, OnUseobjectcachettldata1) ON_EN_CHANGE(IDC_USERTOKENTTLDATA1, OnChangeUsertokenttldata1) ON_BN_CLICKED(IDC_USELOGFILEFLUSHINTERNVALDATA1, OnUselogfileflushinternvaldata1) ON_EN_CHANGE(IDC_LOGFILEFLUSHINTERVALDATA1, OnChangeLogfileflushintervaldata1) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CADVCOM1 message handlers BOOL CADVCOM1::OnInitDialog() { int i; CGenPage::OnInitDialog(); for (i = 0; i < AdvComPage_TotalNumRegEntries; i++) { m_binNumericRegistryEntries[i].bIsChanged = FALSE; m_binNumericRegistryEntries[i].ulMultipleFactor = 1; } m_binNumericRegistryEntries[AdvComPage_MaxPoolThreads].strFieldName = _T(MAXPOOLTHREADSNAME); m_binNumericRegistryEntries[AdvComPage_MaxPoolThreads].ulDefaultValue = DEFAULTMAXPOOLTHREADS; m_binNumericRegistryEntries[AdvComPage_MaxConcurrency].strFieldName = _T(MAXCONCURRENCYNAME); m_binNumericRegistryEntries[AdvComPage_MaxConcurrency].ulDefaultValue = DEFAULTMAXCONCURRENCY; m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].strFieldName = _T(THREADTIMEOUTNAME); m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].ulDefaultValue = DEFAULTTHREADTIMEOUT; m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].ulMultipleFactor = 60; m_binNumericRegistryEntries[AdvComPage_UseAcceptEx].strFieldName = _T(USEACCEPTEXNAME); m_binNumericRegistryEntries[AdvComPage_UseAcceptEx].ulDefaultValue = DEFAULTUSEACCEPTEX; m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].strFieldName = _T(OBJECTCACHETTLNAME); m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulDefaultValue = DEFAULTOBJECTCACHETTL; m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulMultipleFactor = 60; m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].strFieldName = _T(USERTOKENTTLNAME); m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].ulDefaultValue = DEFAULTUSERTOKENTTL; m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].ulMultipleFactor = 60; m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].strFieldName = _T(ACCEPTEXOUTSTANDINGNAME); m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].ulDefaultValue = DEFAULTACCEPTEXOUTSTANDING; m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].strFieldName = _T(ACCEPTEXTIMEOUTNAME); m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].ulDefaultValue = DEFAULTACCEPTEXTIMEOUT; m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].strFieldName = _T(LOGFILEFLUSHINTERVALNAME); m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulDefaultValue = DEFAULTLOGFILEFLUSHINTERVAL; m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulMultipleFactor = 60; m_binNumericRegistryEntries[AdvComPage_DebugFlags].strFieldName = _T(DEBUGFLAGSNAME); m_binNumericRegistryEntries[AdvComPage_DebugFlags].ulDefaultValue = DEFAULTDEBUGFLAGS; for (i = 0; i < AdvComPage_TotalNumRegEntries; i++) { if (m_rkMainKey->QueryValue(m_binNumericRegistryEntries[i].strFieldName, m_binNumericRegistryEntries[i].ulFieldValue) != ERROR_SUCCESS) { m_binNumericRegistryEntries[i].ulFieldValue = m_binNumericRegistryEntries[i].ulDefaultValue; } } m_spinThreadTO.SetRange(MINTHREADTIMEOUT, MAXTHREADTIMEOUT); m_spinThreadTO.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].ulFieldValue / m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].ulMultipleFactor),MAXTHREADTIMEOUT)); m_spinObjCache.SetRange(MINOBJECTCACHETTL, MAXOBJECTCACHETTL); if (m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulFieldValue != 0xffffffff) { m_spinObjCache.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulFieldValue / m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulMultipleFactor),MAXOBJECTCACHETTL)); SetObjCacheTTLEnabledState(TRUE); } else { m_spinObjCache.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulDefaultValue / m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulMultipleFactor),MAXOBJECTCACHETTL)); SetObjCacheTTLEnabledState(FALSE); } m_spinUserTokenTTL.SetRange(MINUSERTOKENTTL, MAXUSERTOKENTTL); m_spinUserTokenTTL.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].ulFieldValue / m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].ulMultipleFactor),MAXUSERTOKENTTL)); m_spinMaxPool.SetRange(MINMAXPOOLTHREADS,MAXMAXPOOLTHREADS); m_spinMaxPool.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_MaxPoolThreads].ulFieldValue / m_binNumericRegistryEntries[AdvComPage_MaxPoolThreads].ulMultipleFactor),MAXMAXPOOLTHREADS)); m_spinMaxConcur.SetRange(MINMAXCONCURRENCY, MAXMAXCONCURRENCY); m_spinMaxConcur.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_MaxConcurrency].ulFieldValue / m_binNumericRegistryEntries[AdvComPage_MaxConcurrency].ulMultipleFactor), MAXMAXCONCURRENCY)); m_spinAcceptExTO.SetRange(MINACCEPTEXTIMEOUT,MAXACCEPTEXTIMEOUT); m_spinAcceptExTO.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].ulFieldValue / m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].ulMultipleFactor),MAXACCEPTEXTIMEOUT)); m_spinAcceptExOut.SetRange(MINACCEPTEXOUTSTANDING,MAXACCEPTEXOUTSTANDING); m_spinAcceptExOut.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].ulFieldValue / m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].ulMultipleFactor),MAXACCEPTEXOUTSTANDING)); m_cboxUseAcceptEx.SetCheck(GETCHECKBOXVALUEFROMREG(m_binNumericRegistryEntries[AdvComPage_UseAcceptEx].ulFieldValue)); SetAcceptExEnabledState(); m_spinLogFileFlushInterval.SetRange(MINLOGFILEFLUSHINTERVAL, MAXLOGFILEFLUSHINTERVAL); if (m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulFieldValue != 0xffffffff) { m_spinLogFileFlushInterval.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulFieldValue / m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulMultipleFactor),MAXLOGFILEFLUSHINTERVAL)); SetLogFileFlushIntervalEnabledState(TRUE); } else { m_spinObjCache.SetPos(LESSOROF ((m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulDefaultValue / m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulMultipleFactor),MAXOBJECTCACHETTL)); SetObjCacheTTLEnabledState(FALSE); } m_editComDbgFlags.LimitText(8); m_ulComDbgFlags = m_binNumericRegistryEntries[AdvComPage_DebugFlags].ulFieldValue; UpdateData(FALSE); // Force Edit box(es) to pick up value(s) m_bSetChanged = TRUE; // Any more changes come from the user // TODO: Add extra initialization here return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CADVCOM1::OnChangeAcceptexoutdata1() { // TODO: Add your control notification handler code here if (m_bSetChanged) { m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].bIsChanged = TRUE; m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].ulFieldValue = m_spinAcceptExOut.GetPos() * m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].ulMultipleFactor; m_bIsDirty = TRUE; SetModified(TRUE); } } void CADVCOM1::OnChangeAcceptextodata1() { // TODO: Add your control notification handler code here if (m_bSetChanged) { m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].bIsChanged = TRUE; m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].ulFieldValue = m_spinAcceptExTO.GetPos() * m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].ulMultipleFactor; m_bIsDirty = TRUE; SetModified(TRUE); } } void CADVCOM1::OnChangeMaxconcurdata1() { // TODO: Add your control notification handler code here if (m_bSetChanged) { m_binNumericRegistryEntries[AdvComPage_MaxConcurrency].bIsChanged = TRUE; m_binNumericRegistryEntries[AdvComPage_MaxConcurrency].ulFieldValue = m_spinMaxConcur.GetPos() * m_binNumericRegistryEntries[AdvComPage_MaxConcurrency].ulMultipleFactor; m_bIsDirty = TRUE; SetModified(TRUE); } } void CADVCOM1::OnChangeMaxpooldata1() { // TODO: Add your control notification handler code here if (m_bSetChanged) { m_binNumericRegistryEntries[AdvComPage_MaxPoolThreads].bIsChanged = TRUE; m_binNumericRegistryEntries[AdvComPage_MaxPoolThreads].ulFieldValue = m_spinMaxPool.GetPos() * m_binNumericRegistryEntries[AdvComPage_MaxPoolThreads].ulMultipleFactor; m_bIsDirty = TRUE; SetModified(TRUE); } } void CADVCOM1::OnChangeObjcachedata1() { // TODO: Add your control notification handler code here if (m_bSetChanged) { m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].bIsChanged = TRUE; m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulFieldValue = m_spinObjCache.GetPos() * m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulMultipleFactor; m_bIsDirty = TRUE; SetModified(TRUE); } } void CADVCOM1::OnUseobjectcachettldata1() { // TODO: Add your control notification handler code here SetObjCacheTTLEnabledState(m_cboxUseObjCacheTTL.GetCheck()); if (m_bSetChanged) { m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].bIsChanged = TRUE; m_bIsDirty = TRUE; SetModified(TRUE); } } void CADVCOM1::OnChangeThreadtodata1() { // TODO: Add your control notification handler code here if (m_bSetChanged) { m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].bIsChanged = TRUE; m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].ulFieldValue = m_spinThreadTO.GetPos() * m_binNumericRegistryEntries[AdvComPage_ThreadTimeout].ulMultipleFactor; m_bIsDirty = TRUE; SetModified(TRUE); } } void CADVCOM1::OnUseacceptexdata1() { // TODO: Add your control notification handler code here SetAcceptExEnabledState(); if (m_bSetChanged) { m_binNumericRegistryEntries[AdvComPage_UseAcceptEx].bIsChanged = TRUE; m_binNumericRegistryEntries[AdvComPage_UseAcceptEx].ulFieldValue = GETREGVALUEFROMCHECKBOX(m_cboxUseAcceptEx.GetCheck()); m_bIsDirty = TRUE; SetModified(TRUE); } } void CADVCOM1::OnChangeComdbgflagsdata1() { // TODO: Add your control notification handler code here if (m_bSetChanged) { m_binNumericRegistryEntries[AdvComPage_DebugFlags].bIsChanged = TRUE; m_bIsDirty = TRUE; SetModified(TRUE); } } void CADVCOM1::OnChangeUsertokenttldata1() { // TODO: Add your control notification handler code here if (m_bSetChanged) { m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].bIsChanged = TRUE; m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].ulFieldValue = m_spinUserTokenTTL.GetPos() * m_binNumericRegistryEntries[AdvComPage_UserTokenTTL].ulMultipleFactor; m_bIsDirty = TRUE; SetModified(TRUE); } } void CADVCOM1::OnUselogfileflushinternvaldata1() { // TODO: Add your control notification handler code here SetLogFileFlushIntervalEnabledState(m_cboxUseLogFileFlushInterval.GetCheck()); if (m_bSetChanged) { m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].bIsChanged = TRUE; m_bIsDirty = TRUE; SetModified(TRUE); } } void CADVCOM1::OnChangeLogfileflushintervaldata1() { // TODO: Add your control notification handler code here if (m_bSetChanged) { m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].bIsChanged = TRUE; m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulFieldValue = m_spinLogFileFlushInterval.GetPos() * m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulMultipleFactor; m_bIsDirty = TRUE; SetModified(TRUE); } } ////////////////////////////////////////////////////////////////// // Other routines void CADVCOM1::SaveInfo() { if (m_bIsDirty) { m_binNumericRegistryEntries[AdvComPage_DebugFlags].ulFieldValue = m_ulComDbgFlags; SaveNumericInfo(m_binNumericRegistryEntries, AdvComPage_TotalNumRegEntries); } CGenPage::SaveInfo(); } void CADVCOM1::SetAcceptExEnabledState() { if (m_cboxUseAcceptEx.GetCheck() != 0) { m_spinAcceptExTO.EnableWindow(TRUE); m_editAcceptExTO.EnableWindow(TRUE); m_spinAcceptExOut.EnableWindow(TRUE); m_editAcceptExOut.EnableWindow(TRUE); if (m_bSetChanged) { //if user enabled this, make sure there's a value there m_binNumericRegistryEntries[AdvComPage_AcceptExTimeout].bIsChanged = TRUE; m_binNumericRegistryEntries[AdvComPage_AcceptExOutstanding].bIsChanged = TRUE; } } else { m_spinAcceptExTO.EnableWindow(FALSE); m_editAcceptExTO.EnableWindow(FALSE); m_spinAcceptExOut.EnableWindow(FALSE); m_editAcceptExOut.EnableWindow(FALSE); } } void CADVCOM1::SetObjCacheTTLEnabledState(BOOL bEnabled) { if (bEnabled) { m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulFieldValue = m_spinObjCache.GetPos() * m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulMultipleFactor; m_cboxUseObjCacheTTL.SetCheck(CHECKEDVALUE); m_spinObjCache.EnableWindow(TRUE); m_editObjCacheTTL.EnableWindow(TRUE); } else { m_binNumericRegistryEntries[AdvComPage_ObjectCacheTTL].ulFieldValue = 0xffffffff; m_cboxUseObjCacheTTL.SetCheck(UNCHECKEDVALUE); m_spinObjCache.EnableWindow(FALSE); m_editObjCacheTTL.EnableWindow(FALSE); } } void CADVCOM1::SetLogFileFlushIntervalEnabledState(BOOL bEnabled) { if (bEnabled) { m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulFieldValue = m_spinLogFileFlushInterval.GetPos() * m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulMultipleFactor; m_cboxUseLogFileFlushInterval.SetCheck(CHECKEDVALUE); m_spinLogFileFlushInterval.EnableWindow(TRUE); m_editLogFileFlushInterval.EnableWindow(TRUE); } else { m_binNumericRegistryEntries[AdvComPage_LogFileFlushInterval].ulFieldValue = 0xffffffff; m_cboxUseLogFileFlushInterval.SetCheck(UNCHECKEDVALUE); m_spinLogFileFlushInterval.EnableWindow(FALSE); m_editLogFileFlushInterval.EnableWindow(FALSE); } }