// Config.cpp : implementation file // #include "stdafx.h" #include "Config.h" //#include "lstentry.h" #include "Registry.h" // // Settings for autodial // #define RAS_AUTODIAL_OPT_NONE 0x00000000 // No options #define RAS_AUTODIAL_OPT_NEVER 0x00000001 // Never Autodial #define RAS_AUTODIAL_OPT_ALWAYS 0x00000002 // Autodial regardless #define RAS_AUTODIAL_OPT_DEMAND 0x00000004 // Autodial on demand #define RAS_AUTODIAL_OPT_NOPROMPT 0x00000010 // Dial without prompting DWORD gWizardSuccess = 0x00000000; DWORD gWizardFailure = 0x00000001; DWORD gWizardCancelled = 0x00000002; DWORD gNewInstall = 0x00000001; DWORD gUpdateSettings = 0x00000002; DWORD gWizardResult; // will be set to gWizardSuccess, gWizardFailure, or gWizardCancelled const TCHAR c_szICSGeneral[] = _T("System\\CurrentControlSet\\Services\\ICSharing\\Settings\\General"); /* RMR TODO: reenable void WriteDefaultConnectoidRegString ( LPTSTR lpszValue ) { DWORD dwAutodialOpt; // // Default to dial on demand, no prompting // dwAutodialOpt = (RAS_AUTODIAL_OPT_DEMAND | RAS_AUTODIAL_OPT_NOPROMPT); RnaSetDefaultAutodialConnection(lpszValue, dwAutodialOpt); } void ReadDefaultConnectoidString ( LPTSTR lpszValue, DWORD dwSize ) { DWORD dwAutodialOpt; // // Read the default autodial setting // RnaGetDefaultAutodialConnection((PUCHAR) lpszValue, dwSize, &dwAutodialOpt); } */ ///////////////////////////////////////////////////////////////////////////// // CConfig CConfig::CConfig() { m_EnableICS = TRUE; m_ShowTrayIcon = TRUE; m_nServers = 0; m_nDhcp = 0; m_nBlockOut = 0; m_nParams = 0; m_nGeneral = 0; m_OldExternalAdapterReg[0] = '\0'; m_OldInternalAdapterReg[0] = '\0'; m_OldDialupEntry[0] = '\0'; m_bOldEnableICS = FALSE; } CConfig::~CConfig() { } ///////////////////////////////////////////////////////////////////////////// // CConfig message handlers int CConfig::SaveConfig() { BOOL bBindingsNeeded = FALSE; BOOL bICSEnableToggled = FALSE; // check to see if a rebind is necessary if ( StrCmp ( m_OldExternalAdapterReg, m_ExternalAdapterReg ) != 0 ) bBindingsNeeded = TRUE; if ( StrCmp( m_OldInternalAdapterReg, m_InternalAdapterReg ) != 0 ) bBindingsNeeded = TRUE; // Save parameters in the [General] Section // CRegistry reg; reg.OpenKey(HKEY_LOCAL_MACHINE, c_szICSGeneral); // RMR TODO: REENABLE!!! // if ( _tcslen ( m_DialupEntry ) > 0 ) // WriteDefaultConnectoidRegString ( m_DialupEntry ); reg.SetStringValue(_T("HangupTimer"), m_HangupTimer); if (m_EnableDialOnDemand) reg.SetStringValue(_T("DialOnDemand"), _T("1")); else reg.SetStringValue(_T("DialOnDemand"), _T("0")); if (m_EnableDHCP) { reg.SetStringValue(_T("EnableDHCP"), _T("1")); } else { reg.SetStringValue(_T("EnableDHCP"), _T("0")); } if (m_ShowTrayIcon) reg.SetStringValue(_T("ShowTrayIcon"), _T("1")); else reg.SetStringValue(_T("ShowTrayIcon"), _T("0")); if (m_EnableICS) { if ( !m_bOldEnableICS ) bICSEnableToggled = TRUE; reg.SetStringValue(_T("Enabled"), _T("1")); } else { if ( m_bOldEnableICS ) bICSEnableToggled = TRUE; reg.SetStringValue(_T("Enabled"), _T("0")); } // Added for compatibility with Win98SE/legacy setup for now reg.SetStringValue(_T("RunWizard"), _T("0")); if ( bBindingsNeeded ) return BINDINGS_NEEDED; else if ( bICSEnableToggled ) return ICSENABLETOGGLED; else return SAVE_SUCCEDED; } void CConfig::WriteWizardCode( BOOL bWizardRun ) { CRegistry reg; reg.OpenKey(HKEY_LOCAL_MACHINE, c_szICSGeneral); reg.SetBinaryValue(_T("WizardStatus"), &gWizardResult, sizeof(gWizardResult) ); if ( bWizardRun ) reg.SetBinaryValue(_T("WizardOptions"), &gNewInstall, sizeof(gNewInstall) ); else reg.SetBinaryValue(_T("WizardOptions"), &gUpdateSettings, sizeof(gUpdateSettings) ); } /* RMR TODO: REENABLE void CConfig::LoadConfig() { // Save parameters in the [General] Section // ReadGeneralRegString(_T("InternalAdapterReg"), m_InternalAdapterReg, MAX_STRLEN); ReadGeneralRegString(_T("ExternalAdapterReg"), m_ExternalAdapterReg, MAX_STRLEN); // ReadGeneralRegString(_T("DialupEntry"), m_DialupEntry, MAX_STRLEN); ReadDefaultConnectoidString ( m_DialupEntry, MAX_STRLEN ); ReadGeneralRegString(_T("HangupTimer"), m_HangupTimer, MAX_STRLEN); TCHAR szBOOL[MAX_STRLEN]; ReadGeneralRegString(_T("DialOnDemand"), szBOOL, MAX_STRLEN); if ( _tcscmp ( szBOOL, _T("1")) == 0 ) m_EnableDialOnDemand = TRUE; else m_EnableDialOnDemand = FALSE; ReadGeneralRegString(_T("EnableDHCP"),szBOOL, MAX_STRLEN); if ( _tcscmp ( szBOOL, _T("1")) == 0 ) m_EnableDHCP = TRUE; else m_EnableDHCP = FALSE; ReadGeneralRegString(_T("ShowTrayIcon"), szBOOL, MAX_STRLEN); if ( _tcscmp ( szBOOL, _T("1")) == 0 ) m_ShowTrayIcon = TRUE; else m_ShowTrayIcon = FALSE; ReadGeneralRegString(_T("Enabled"), szBOOL, MAX_STRLEN); if ( _tcscmp ( szBOOL, _T("1")) == 0 ) m_EnableICS = TRUE; else m_EnableICS = FALSE; // save these off to check against on a save _tcsncpy ( m_OldExternalAdapterReg, m_ExternalAdapterReg, MAX_STRLEN); _tcsncpy ( m_OldInternalAdapterReg, m_InternalAdapterReg, MAX_STRLEN); _tcsncpy ( m_OldDialupEntry, m_DialupEntry, MAX_STRLEN); m_bOldEnableICS = m_EnableICS; } */ void CConfig::InitWizardResult() { gWizardResult = gWizardSuccess; } void CConfig::WizardCancelled() { gWizardResult = gWizardCancelled; } void CConfig::WizardFailed() { gWizardResult = gWizardFailure; }