mirror of
				https://github.com/chibicitiberiu/rainmeter-studio.git
				synced 2024-02-24 04:33:31 +00:00 
			
		
		
		
	Core dll:
- Replace swprintf/wsprintf/wcscpy/wcscat to _snwprintf_s/wcsncpy_s/wcsncat_s. - Changed printf format parameter strictly for supporting both 32bit and 64bit. - Fixed an issue that !RainmeterWriteKeyValue doesn't accept %APPDATA%\Rainmeter path. - Code cleanup.
This commit is contained in:
		| @@ -145,7 +145,7 @@ void CConfigParser::ReadVariables() | ||||
| */ | ||||
| void CConfigParser::SetVariable(std::map<std::wstring, std::wstring>& variables, const std::wstring& strVariable, const std::wstring& strValue) | ||||
| { | ||||
| 	// DebugLog(L"Variable: %s=%s (size=%i)", strVariable.c_str(), strValue.c_str(), m_Variables.size()); | ||||
| 	// DebugLog(L"Variable: %s=%s (size=%i)", strVariable.c_str(), strValue.c_str(), (int)m_Variables.size()); | ||||
|  | ||||
| 	std::wstring strTmp(strVariable); | ||||
| 	std::transform(strTmp.begin(), strTmp.end(), strTmp.begin(), ::towlower); | ||||
| @@ -230,16 +230,16 @@ void CConfigParser::SetMultiMonitorVariables(bool reset) | ||||
|  | ||||
| 	SystemParametersInfo(SPI_GETWORKAREA, 0, &workArea, 0); | ||||
|  | ||||
| 	swprintf(buffer, L"%i", workArea.left); | ||||
| 	_snwprintf_s(buffer, _TRUNCATE, L"%i", workArea.left); | ||||
| 	SetMonitorVariable(L"WORKAREAX", buffer); | ||||
| 	SetMonitorVariable(L"PWORKAREAX", buffer); | ||||
| 	swprintf(buffer, L"%i", workArea.top); | ||||
| 	_snwprintf_s(buffer, _TRUNCATE, L"%i", workArea.top); | ||||
| 	SetMonitorVariable(L"WORKAREAY", buffer); | ||||
| 	SetMonitorVariable(L"PWORKAREAY", buffer); | ||||
| 	swprintf(buffer, L"%i", workArea.right - workArea.left); | ||||
| 	_snwprintf_s(buffer, _TRUNCATE, L"%i", workArea.right - workArea.left); | ||||
| 	SetMonitorVariable(L"WORKAREAWIDTH", buffer); | ||||
| 	SetMonitorVariable(L"PWORKAREAWIDTH", buffer); | ||||
| 	swprintf(buffer, L"%i", workArea.bottom - workArea.top); | ||||
| 	_snwprintf_s(buffer, _TRUNCATE, L"%i", workArea.bottom - workArea.top); | ||||
| 	SetMonitorVariable(L"WORKAREAHEIGHT", buffer); | ||||
| 	SetMonitorVariable(L"PWORKAREAHEIGHT", buffer); | ||||
|  | ||||
| @@ -250,26 +250,26 @@ void CConfigParser::SetMultiMonitorVariables(bool reset) | ||||
| 		scrArea.right = GetSystemMetrics(SM_CXSCREEN); | ||||
| 		scrArea.bottom = GetSystemMetrics(SM_CYSCREEN); | ||||
|  | ||||
| 		swprintf(buffer, L"%i", scrArea.left); | ||||
| 		_snwprintf_s(buffer, _TRUNCATE, L"%i", scrArea.left); | ||||
| 		SetMonitorVariable(L"SCREENAREAX", buffer); | ||||
| 		SetMonitorVariable(L"PSCREENAREAX", buffer); | ||||
| 		swprintf(buffer, L"%i", scrArea.top); | ||||
| 		_snwprintf_s(buffer, _TRUNCATE, L"%i", scrArea.top); | ||||
| 		SetMonitorVariable(L"SCREENAREAY", buffer); | ||||
| 		SetMonitorVariable(L"PSCREENAREAY", buffer); | ||||
| 		swprintf(buffer, L"%i", scrArea.right - scrArea.left); | ||||
| 		_snwprintf_s(buffer, _TRUNCATE, L"%i", scrArea.right - scrArea.left); | ||||
| 		SetMonitorVariable(L"SCREENAREAWIDTH", buffer); | ||||
| 		SetMonitorVariable(L"PSCREENAREAWIDTH", buffer); | ||||
| 		swprintf(buffer, L"%i", scrArea.bottom - scrArea.top); | ||||
| 		_snwprintf_s(buffer, _TRUNCATE, L"%i", scrArea.bottom - scrArea.top); | ||||
| 		SetMonitorVariable(L"SCREENAREAHEIGHT", buffer); | ||||
| 		SetMonitorVariable(L"PSCREENAREAHEIGHT", buffer); | ||||
|  | ||||
| 		swprintf(buffer, L"%i", GetSystemMetrics(SM_XVIRTUALSCREEN)); | ||||
| 		_snwprintf_s(buffer, _TRUNCATE, L"%i", GetSystemMetrics(SM_XVIRTUALSCREEN)); | ||||
| 		SetMonitorVariable(L"VSCREENAREAX", buffer); | ||||
| 		swprintf(buffer, L"%i", GetSystemMetrics(SM_YVIRTUALSCREEN)); | ||||
| 		_snwprintf_s(buffer, _TRUNCATE, L"%i", GetSystemMetrics(SM_YVIRTUALSCREEN)); | ||||
| 		SetMonitorVariable(L"VSCREENAREAY", buffer); | ||||
| 		swprintf(buffer, L"%i", GetSystemMetrics(SM_CXVIRTUALSCREEN)); | ||||
| 		_snwprintf_s(buffer, _TRUNCATE, L"%i", GetSystemMetrics(SM_CXVIRTUALSCREEN)); | ||||
| 		SetMonitorVariable(L"VSCREENAREAWIDTH", buffer); | ||||
| 		swprintf(buffer, L"%i", GetSystemMetrics(SM_CYVIRTUALSCREEN)); | ||||
| 		_snwprintf_s(buffer, _TRUNCATE, L"%i", GetSystemMetrics(SM_CYVIRTUALSCREEN)); | ||||
| 		SetMonitorVariable(L"VSCREENAREAHEIGHT", buffer); | ||||
| 	} | ||||
|  | ||||
| @@ -284,34 +284,34 @@ void CConfigParser::SetMultiMonitorVariables(bool reset) | ||||
|  | ||||
| 			const RECT work = (monitors[i].active) ? monitors[i].work : workArea; | ||||
|  | ||||
| 			swprintf(buffer, L"%i", work.left); | ||||
| 			swprintf(buffer2, L"WORKAREAX@%i", i + 1); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", work.left); | ||||
| 			_snwprintf_s(buffer2, _TRUNCATE, L"WORKAREAX@%i", (int)i + 1); | ||||
| 			SetMonitorVariable(buffer2, buffer); | ||||
| 			swprintf(buffer, L"%i", work.top); | ||||
| 			swprintf(buffer2, L"WORKAREAY@%i", i + 1); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", work.top); | ||||
| 			_snwprintf_s(buffer2, _TRUNCATE, L"WORKAREAY@%i", (int)i + 1); | ||||
| 			SetMonitorVariable(buffer2, buffer); | ||||
| 			swprintf(buffer, L"%i", work.right - work.left); | ||||
| 			swprintf(buffer2, L"WORKAREAWIDTH@%i", i + 1); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", work.right - work.left); | ||||
| 			_snwprintf_s(buffer2, _TRUNCATE, L"WORKAREAWIDTH@%i", (int)i + 1); | ||||
| 			SetMonitorVariable(buffer2, buffer); | ||||
| 			swprintf(buffer, L"%i", work.bottom - work.top); | ||||
| 			swprintf(buffer2, L"WORKAREAHEIGHT@%i", i + 1); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", work.bottom - work.top); | ||||
| 			_snwprintf_s(buffer2, _TRUNCATE, L"WORKAREAHEIGHT@%i", (int)i + 1); | ||||
| 			SetMonitorVariable(buffer2, buffer); | ||||
|  | ||||
| 			if (reset) | ||||
| 			{ | ||||
| 				const RECT screen = (monitors[i].active) ? monitors[i].screen : scrArea; | ||||
|  | ||||
| 				swprintf(buffer, L"%i", screen.left); | ||||
| 				swprintf(buffer2, L"SCREENAREAX@%i", i + 1); | ||||
| 				_snwprintf_s(buffer, _TRUNCATE, L"%i", screen.left); | ||||
| 				_snwprintf_s(buffer2, _TRUNCATE, L"SCREENAREAX@%i", (int)i + 1); | ||||
| 				SetMonitorVariable(buffer2, buffer); | ||||
| 				swprintf(buffer, L"%i", screen.top); | ||||
| 				swprintf(buffer2, L"SCREENAREAY@%i", i + 1); | ||||
| 				_snwprintf_s(buffer, _TRUNCATE, L"%i", screen.top); | ||||
| 				_snwprintf_s(buffer2, _TRUNCATE, L"SCREENAREAY@%i", (int)i + 1); | ||||
| 				SetMonitorVariable(buffer2, buffer); | ||||
| 				swprintf(buffer, L"%i", screen.right - screen.left); | ||||
| 				swprintf(buffer2, L"SCREENAREAWIDTH@%i", i + 1); | ||||
| 				_snwprintf_s(buffer, _TRUNCATE, L"%i", screen.right - screen.left); | ||||
| 				_snwprintf_s(buffer2, _TRUNCATE, L"SCREENAREAWIDTH@%i", (int)i + 1); | ||||
| 				SetMonitorVariable(buffer2, buffer); | ||||
| 				swprintf(buffer, L"%i", screen.bottom - screen.top); | ||||
| 				swprintf(buffer2, L"SCREENAREAHEIGHT@%i", i + 1); | ||||
| 				_snwprintf_s(buffer, _TRUNCATE, L"%i", screen.bottom - screen.top); | ||||
| 				_snwprintf_s(buffer2, _TRUNCATE, L"SCREENAREAHEIGHT@%i", (int)i + 1); | ||||
| 				SetMonitorVariable(buffer2, buffer); | ||||
| 			} | ||||
| 		} | ||||
| @@ -362,13 +362,13 @@ void CConfigParser::SetAutoSelectedMonitorVariables(CMeterWindow* meterWindow) | ||||
| 				s2 = monitors[screenIndex-1].screen.right - monitors[screenIndex-1].screen.left; | ||||
| 			} | ||||
|  | ||||
| 			swprintf(buffer, L"%i", w1); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", w1); | ||||
| 			SetBuiltInVariable(L"WORKAREAX", buffer); | ||||
| 			swprintf(buffer, L"%i", w2); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", w2); | ||||
| 			SetBuiltInVariable(L"WORKAREAWIDTH", buffer); | ||||
| 			swprintf(buffer, L"%i", s1); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", s1); | ||||
| 			SetBuiltInVariable(L"SCREENAREAX", buffer); | ||||
| 			swprintf(buffer, L"%i", s2); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", s2); | ||||
| 			SetBuiltInVariable(L"SCREENAREAWIDTH", buffer); | ||||
|  | ||||
| 			// Set Y / HEIGHT | ||||
| @@ -395,13 +395,13 @@ void CConfigParser::SetAutoSelectedMonitorVariables(CMeterWindow* meterWindow) | ||||
| 				s2 = monitors[screenIndex-1].screen.bottom - monitors[screenIndex-1].screen.top; | ||||
| 			} | ||||
|  | ||||
| 			swprintf(buffer, L"%i", w1); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", w1); | ||||
| 			SetBuiltInVariable(L"WORKAREAY", buffer); | ||||
| 			swprintf(buffer, L"%i", w2); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", w2); | ||||
| 			SetBuiltInVariable(L"WORKAREAHEIGHT", buffer); | ||||
| 			swprintf(buffer, L"%i", s1); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", s1); | ||||
| 			SetBuiltInVariable(L"SCREENAREAY", buffer); | ||||
| 			swprintf(buffer, L"%i", s2); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", s2); | ||||
| 			SetBuiltInVariable(L"SCREENAREAHEIGHT", buffer); | ||||
| 		} | ||||
| 		else | ||||
| @@ -411,13 +411,13 @@ void CConfigParser::SetAutoSelectedMonitorVariables(CMeterWindow* meterWindow) | ||||
| 			// Set default WORKAREA | ||||
| 			SystemParametersInfo(SPI_GETWORKAREA, 0, &r, 0); | ||||
|  | ||||
| 			swprintf(buffer, L"%i", r.left); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", r.left); | ||||
| 			SetBuiltInVariable(L"WORKAREAX", buffer); | ||||
| 			swprintf(buffer, L"%i", r.top); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", r.top); | ||||
| 			SetBuiltInVariable(L"WORKAREAY", buffer); | ||||
| 			swprintf(buffer, L"%i", r.right - r.left); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", r.right - r.left); | ||||
| 			SetBuiltInVariable(L"WORKAREAWIDTH", buffer); | ||||
| 			swprintf(buffer, L"%i", r.bottom - r.top); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", r.bottom - r.top); | ||||
| 			SetBuiltInVariable(L"WORKAREAHEIGHT", buffer); | ||||
|  | ||||
| 			// Set default SCREENAREA | ||||
| @@ -426,13 +426,13 @@ void CConfigParser::SetAutoSelectedMonitorVariables(CMeterWindow* meterWindow) | ||||
| 			r.right = GetSystemMetrics(SM_CXSCREEN); | ||||
| 			r.bottom = GetSystemMetrics(SM_CYSCREEN); | ||||
|  | ||||
| 			swprintf(buffer, L"%i", r.left); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", r.left); | ||||
| 			SetBuiltInVariable(L"SCREENAREAX", buffer); | ||||
| 			swprintf(buffer, L"%i", r.top); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", r.top); | ||||
| 			SetBuiltInVariable(L"SCREENAREAY", buffer); | ||||
| 			swprintf(buffer, L"%i", r.right - r.left); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", r.right - r.left); | ||||
| 			SetBuiltInVariable(L"SCREENAREAWIDTH", buffer); | ||||
| 			swprintf(buffer, L"%i", r.bottom - r.top); | ||||
| 			_snwprintf_s(buffer, _TRUNCATE, L"%i", r.bottom - r.top); | ||||
| 			SetBuiltInVariable(L"SCREENAREAHEIGHT", buffer); | ||||
| 		} | ||||
| 	} | ||||
| @@ -613,7 +613,7 @@ const std::wstring& CConfigParser::ReadString(LPCTSTR section, LPCTSTR key, LPCT | ||||
|  | ||||
| 					const std::wstring& strStyle = GetValue(strSection, key, strDefault); | ||||
|  | ||||
| 					//DebugLog(L"[%s] %s (from [%s]) : strDefault=%s (0x%08X), strStyle=%s (0x%08X)", | ||||
| 					//DebugLog(L"[%s] %s (from [%s]) : strDefault=%s (0x%p), strStyle=%s (0x%p)", | ||||
| 					//	section, key, strSection.c_str(), strDefault.c_str(), &strDefault, strStyle.c_str(), &strStyle); | ||||
|  | ||||
| 					if (&strStyle != &strDefault) | ||||
| @@ -1187,7 +1187,7 @@ void CConfigParser::ReadIniFile(const std::vector<std::wstring>& iniFileMappings | ||||
| */ | ||||
| void CConfigParser::SetValue(const std::wstring& strSection, const std::wstring& strKey, const std::wstring& strValue) | ||||
| { | ||||
| 	// DebugLog(L"[%s] %s=%s (size: %i)", strSection.c_str(), strKey.c_str(), strValue.c_str(), m_Values.size()); | ||||
| 	// DebugLog(L"[%s] %s=%s (size: %i)", strSection.c_str(), strKey.c_str(), strValue.c_str(), (int)m_Values.size()); | ||||
|  | ||||
| 	std::wstring strTmpSection(strSection); | ||||
| 	std::wstring strTmpKey(strKey); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 spx
					spx