// ConfigINI.cpp: implementation of the CConfigINI class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "ConfigINI.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CConfigINI::CConfigINI() { m_sINIFileName = ""; } CConfigINI::~CConfigINI() { } BOOL CConfigINI::SetINIFile(CString sFileName) { if (sFileName != "") { m_sINIFileName = sFileName; return TRUE; } else return FALSE; } /* DWORD GetPrivateProfileString( LPCTSTR lpAppName, // section name LPCTSTR lpKeyName, // key name LPCTSTR lpDefault, // default string LPTSTR lpReturnedString, // destination buffer DWORD nSize, // size of destination buffer LPCTSTR lpFileName // initialization file name ); */ CString CConfigINI::GetSectionKeyData(CString sSectionName, CString sKeyName) { if ((sSectionName == "") && (sKeyName == "") && (m_sINIFileName == "")) return ""; char lpBuffer[10240]; memset(lpBuffer, '\0', 10240); CString sTmp = "ERROR"; int nError = GetPrivateProfileString( (LPCTSTR) sSectionName, // section name (LPCTSTR) sKeyName, // key name (LPCTSTR) sTmp, // default string lpBuffer, // destination buffer 10240, // size of destination buffer (LPCTSTR) m_sINIFileName // initialization file name ); sTmp = ""; sTmp = lpBuffer; if ((nError) && (sTmp != "ERROR")) return sTmp; else return ""; } BOOL CConfigINI::PutSectionKeyData(CString sSectionName, CString sKeyName, CString sValue) { if ((sSectionName == "") && (sKeyName == "") && (sValue == "") && (m_sINIFileName == "")) return FALSE; BOOL bError = WritePrivateProfileString((LPCTSTR) sSectionName, // section name (LPCTSTR) sKeyName, // key name (LPCTSTR) sValue, // string to add (LPCTSTR) m_sINIFileName // initialization file ); if (bError) return TRUE; else return FALSE; } void CConfigINI::CreateConfigFile() { /* if( m_sINIFileName == "" ) { AfxMessageBox("config file name was not set!" ); return; } CStdioFile file; if( !file.Open(m_sINIFileName, CFile::modeCreate|CFile::modeWrite|CFile::typeText ) ) { CString str; str.Format("File Not Found : %s", m_sINIFileName); AfxMessageBox(str); return; } file.WriteString("[MAIN_SECTION]\n"); file.WriteString("LOCKUNLOCK_HOTKEY=191,3\n"); file.WriteString("USE_SOUNDEFFECT=1\n"); file.WriteString("MONEY=10000000\n"); file.WriteString("MESU_LEVEL=3\n"); file.Close(); */ } //////////////////////////////////////////////////////////////// // Read from ini void CConfigINI::ReadConfigEnvFromINI_DEBUG_SECTION() { CString strTemp; CString str; str = GetSectionKeyData( "DEBUG_SECTION", "bTraceOnly" ); if( str != "" ) g_AppEnv_Debug.bTraceOnly = atol( (LPSTR)(LPCTSTR)str ); } //////////////////////////////////////////////////////////////// // Read from ini void CConfigINI::ReadConfigEnvFromINI() { if( m_sINIFileName == "" ) { AfxMessageBox("config file name was not set!" ); return; } CString strTemp; CString str; str = GetSectionKeyData( "MAIN_SECTION", "LOCKUNLOCK_HOTKEY" ); AfxExtractSubString(strTemp, str, 0, ','); if(strTemp != "") g_AppEnv.LockUnlockHotKey.wVk = atoi( (LPSTR)(LPCTSTR)strTemp ); AfxExtractSubString(strTemp, str, 1, ','); if(strTemp != "") g_AppEnv.LockUnlockHotKey.wModifier = atoi( (LPSTR)(LPCTSTR)strTemp ); str = GetSectionKeyData( "MAIN_SECTION", "NPINPUTCODE_HOTKEY" ); AfxExtractSubString(strTemp, str, 0, ','); if(strTemp != "") g_AppEnv.NP_InputCodeHotKey.wVk = atoi( (LPSTR)(LPCTSTR)strTemp ); AfxExtractSubString(strTemp, str, 1, ','); if(strTemp != "") g_AppEnv.NP_InputCodeHotKey.wModifier = atoi( (LPSTR)(LPCTSTR)strTemp ); str = GetSectionKeyData( "MAIN_SECTION", "USE_SOUNDEFFECT" ); if( str != "" ) g_AppEnv.bUseSoundEffect = atoi( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "USE_TIMESYNC" ); if( str != "" ) g_AppEnv.bTimeSync = atoi( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "NOT_CONTRACTED_CANCEL" ); if( str != "" ) g_AppEnv.bNotContractedCancel = atoi( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "MONEY1" ); if( str != "" ) g_AppEnv.Money1 = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "MONEY2" ); if( str != "" ) g_AppEnv.Money2 = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "MONEY3" ); if( str != "" ) g_AppEnv.Money3 = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "MONEY4" ); if( str != "" ) g_AppEnv.Money4 = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "MESU_LEVEL1" ); if( str != "" ) g_AppEnv.Level1 = (short)atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "MESU_LEVEL2" ); if( str != "" ) g_AppEnv.Level2 = (short)atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "MESU_LEVEL3" ); if( str != "" ) g_AppEnv.Level3 = (short)atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "MESU_LEVEL4" ); if( str != "" ) g_AppEnv.Level4 = (short)atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "SCREEN_NUM" ); if( str != "" ) strcpy( g_AppEnv.strScreenNumber, (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "STOCKCHECKINTERVAL" ); if( str != "" ) g_AppEnv.StockCheckInterval = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "7121DBCLICK" ); if( str != "" ) g_AppEnv.b7121DbClick = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "7121DBCLICK_DELAY" ); if( str != "" ) g_AppEnv.n7121Delay = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "7121DBCLICK_STOP" ); if( str != "" ) g_AppEnv.b7121DbClickStop = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "n7121DbClickContinuePauseTime" ); if( str != "" ) g_AppEnv.n7121DbClickContinuePauseTime = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "LIMITCALL_INTERVAL" ); if( str != "" ) g_AppEnv.LimitCall = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "bLowmoneyInfoDlg" ); if( str != "" ) g_AppEnv.bLowmoneyInfoDlg = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "bJInputAndStop1" ); if( str != "" ) g_AppEnv.bJInputAndStop1 = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "bJInputAndStop2" ); if( str != "" ) g_AppEnv.bJInputAndStop2 = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "bTradeCountCheck" ); if( str != "" ) g_AppEnv.bTradeCountCheck = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "bTradeMoneyCheck" ); if( str != "" ) g_AppEnv.bTradeMoneyCheck = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "lTradeCount" ); if( str != "" ) g_AppEnv.lTradeCount = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "lTradeMoney" ); if( str != "" ) g_AppEnv.lTradeMoney = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "bMesuUsingMacro1" ); if( str != "" ) g_AppEnv.bMesuUsingMacro1 = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "MesuHotKey1" ); AfxExtractSubString(strTemp, str, 0, ','); if(strTemp != "") g_AppEnv.MesuHotKey1.wVk = atoi( (LPSTR)(LPCTSTR)strTemp ); AfxExtractSubString(strTemp, str, 1, ','); if(strTemp != "") g_AppEnv.MesuHotKey1.wModifier = atoi( (LPSTR)(LPCTSTR)strTemp ); str = GetSectionKeyData( "MAIN_SECTION", "bMesuUsingMacro2" ); if( str != "" ) g_AppEnv.bMesuUsingMacro2 = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "MesuHotKey2" ); AfxExtractSubString(strTemp, str, 0, ','); if(strTemp != "") g_AppEnv.MesuHotKey2.wVk = atoi( (LPSTR)(LPCTSTR)strTemp ); AfxExtractSubString(strTemp, str, 1, ','); if(strTemp != "") g_AppEnv.MesuHotKey2.wModifier = atoi( (LPSTR)(LPCTSTR)strTemp ); str = GetSectionKeyData( "MAIN_SECTION", "bMesuUsingMacro3" ); if( str != "" ) g_AppEnv.bMesuUsingMacro3 = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "MesuHotKey3" ); AfxExtractSubString(strTemp, str, 0, ','); if(strTemp != "") g_AppEnv.MesuHotKey3.wVk = atoi( (LPSTR)(LPCTSTR)strTemp ); AfxExtractSubString(strTemp, str, 1, ','); if(strTemp != "") g_AppEnv.MesuHotKey3.wModifier = atoi( (LPSTR)(LPCTSTR)strTemp ); str = GetSectionKeyData( "MAIN_SECTION", "bMesuUsingMacro4" ); if( str != "" ) g_AppEnv.bMesuUsingMacro4 = atol( (LPSTR)(LPCTSTR)str ); str = GetSectionKeyData( "MAIN_SECTION", "MesuHotKey4" ); AfxExtractSubString(strTemp, str, 0, ','); if(strTemp != "") g_AppEnv.MesuHotKey4.wVk = atoi( (LPSTR)(LPCTSTR)strTemp ); AfxExtractSubString(strTemp, str, 1, ','); if(strTemp != "") g_AppEnv.MesuHotKey4.wModifier = atoi( (LPSTR)(LPCTSTR)strTemp ); } //////////////////////////////////////////////////////////////// // Write to ini void CConfigINI::WriteConfigEnvToINI() { if( m_sINIFileName == "" ) { TRACE("config file name was not set!\n" ); return; } TCHAR szText1[MAX_PATH], szText2[MAX_PATH], szText3[MAX_PATH]; memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.LockUnlockHotKey.wVk, szText1, 10 ); memset( szText2, NULL, MAX_PATH ); _itoa( g_AppEnv.LockUnlockHotKey.wModifier, szText2, 10 ); memset( szText3, NULL, MAX_PATH ); wsprintf( szText3, "%s,%s", szText1,szText2 ); PutSectionKeyData( "MAIN_SECTION", "LOCKUNLOCK_HOTKEY", szText3 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.NP_InputCodeHotKey.wVk, szText1, 10 ); memset( szText2, NULL, MAX_PATH ); _itoa( g_AppEnv.NP_InputCodeHotKey.wModifier, szText2, 10 ); memset( szText3, NULL, MAX_PATH ); wsprintf( szText3, "%s,%s", szText1,szText2 ); PutSectionKeyData( "MAIN_SECTION", "NPINPUTCODE_HOTKEY", szText3 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.bUseSoundEffect, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "USE_SOUNDEFFECT", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.bTimeSync, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "USE_TIMESYNC", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.bNotContractedCancel, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "NOT_CONTRACTED_CANCEL", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.Money1, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "MONEY1", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.Money2, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "MONEY2", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.Money3, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "MONEY3", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.Money4, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "MONEY4", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.Level1, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "MESU_LEVEL1", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.Level2, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "MESU_LEVEL2", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.Level3, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "MESU_LEVEL3", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.Level4, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "MESU_LEVEL4", szText1 ); memset( szText1, NULL, MAX_PATH ); strncpy( szText1, g_AppEnv.strScreenNumber, 4); PutSectionKeyData( "MAIN_SECTION", "SCREEN_NUM", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.StockCheckInterval, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "STOCKCHECKINTERVAL", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.b7121DbClick, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "7121DBCLICK", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.n7121Delay, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "7121DBCLICK_DELAY", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.b7121DbClickStop, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "7121DBCLICK_STOP", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.n7121DbClickContinuePauseTime, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "n7121DbClickContinuePauseTime", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.LimitCall, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "LIMITCALL_INTERVAL", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.bLowmoneyInfoDlg, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "bLowmoneyInfoDlg", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.bJInputAndStop1, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "bJInputAndStop1", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.bJInputAndStop2, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "bJInputAndStop2", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.bTradeCountCheck, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "bTradeCountCheck", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.bTradeMoneyCheck, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "bTradeMoneyCheck", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.lTradeCount, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "lTradeCount", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.lTradeMoney, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "lTradeMoney", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.bMesuUsingMacro1, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "bMesuUsingMacro1", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.MesuHotKey1.wVk, szText1, 10 ); memset( szText2, NULL, MAX_PATH ); _itoa( g_AppEnv.MesuHotKey1.wModifier, szText2, 10 ); memset( szText3, NULL, MAX_PATH ); wsprintf( szText3, "%s,%s", szText1,szText2 ); PutSectionKeyData( "MAIN_SECTION", "MesuHotKey1", szText3 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.bMesuUsingMacro2, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "bMesuUsingMacro2", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.MesuHotKey2.wVk, szText1, 10 ); memset( szText2, NULL, MAX_PATH ); _itoa( g_AppEnv.MesuHotKey2.wModifier, szText2, 10 ); memset( szText3, NULL, MAX_PATH ); wsprintf( szText3, "%s,%s", szText1,szText2 ); PutSectionKeyData( "MAIN_SECTION", "MesuHotKey2", szText3 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.bMesuUsingMacro3, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "bMesuUsingMacro3", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.MesuHotKey3.wVk, szText1, 10 ); memset( szText2, NULL, MAX_PATH ); _itoa( g_AppEnv.MesuHotKey3.wModifier, szText2, 10 ); memset( szText3, NULL, MAX_PATH ); wsprintf( szText3, "%s,%s", szText1,szText2 ); PutSectionKeyData( "MAIN_SECTION", "MesuHotKey3", szText3 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.bMesuUsingMacro4, szText1, 10 ); PutSectionKeyData( "MAIN_SECTION", "bMesuUsingMacro4", szText1 ); memset( szText1, NULL, MAX_PATH ); _itoa( g_AppEnv.MesuHotKey4.wVk, szText1, 10 ); memset( szText2, NULL, MAX_PATH ); _itoa( g_AppEnv.MesuHotKey4.wModifier, szText2, 10 ); memset( szText3, NULL, MAX_PATH ); wsprintf( szText3, "%s,%s", szText1,szText2 ); PutSectionKeyData( "MAIN_SECTION", "MesuHotKey4", szText3 ); }