mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
Minor tweaks.
This commit is contained in:
parent
13b3241307
commit
3bebd7002a
@ -1308,7 +1308,7 @@ void CConfigParser::SetValue(const std::wstring& strSection, const std::wstring&
|
||||
|
||||
std::wstring strTmp;
|
||||
strTmp.reserve(strSection.size() + 1 + strKey.size());
|
||||
strTmp += strSection;
|
||||
strTmp = strSection;
|
||||
strTmp += L'~';
|
||||
strTmp += strKey;
|
||||
|
||||
@ -1327,7 +1327,7 @@ void CConfigParser::DeleteValue(const std::wstring& strSection, const std::wstri
|
||||
{
|
||||
std::wstring strTmp;
|
||||
strTmp.reserve(strSection.size() + 1 + strKey.size());
|
||||
strTmp += strSection;
|
||||
strTmp = strSection;
|
||||
strTmp += L'~';
|
||||
strTmp += strKey;
|
||||
|
||||
@ -1351,7 +1351,7 @@ const std::wstring& CConfigParser::GetValue(const std::wstring& strSection, cons
|
||||
{
|
||||
std::wstring strTmp;
|
||||
strTmp.reserve(strSection.size() + 1 + strKey.size());
|
||||
strTmp += strSection;
|
||||
strTmp = strSection;
|
||||
strTmp += L'~';
|
||||
strTmp += strKey;
|
||||
|
||||
|
@ -306,12 +306,12 @@ BOOL LogInternal(int nLevel, ULONGLONG elapsed, LPCTSTR pszMessage)
|
||||
{
|
||||
// Add timestamp
|
||||
WCHAR buffer[128];
|
||||
_snwprintf_s(buffer, _TRUNCATE, L"%02llu:%02llu:%02llu.%03llu", elapsed / (1000 * 60 * 60), (elapsed / (1000 * 60)) % 60, (elapsed / 1000) % 60, elapsed % 1000);
|
||||
size_t len = _snwprintf_s(buffer, _TRUNCATE, L"%02llu:%02llu:%02llu.%03llu", elapsed / (1000 * 60 * 60), (elapsed / (1000 * 60)) % 60, (elapsed / 1000) % 60, elapsed % 1000);
|
||||
|
||||
Rainmeter->AddAboutLogInfo(nLevel, buffer, pszMessage);
|
||||
|
||||
std::wstring message(1, L'(');
|
||||
message += buffer;
|
||||
message.append(buffer, len);
|
||||
message += L") ";
|
||||
message += pszMessage;
|
||||
|
||||
|
@ -247,7 +247,7 @@ const WCHAR* CMeasure::CheckSubstitute(const WCHAR* buffer)
|
||||
std::string utf8str = ConvertToUTF8(buffer);
|
||||
int* ovector = new int[OVECCOUNT];
|
||||
|
||||
for (size_t i = 0, isize = m_Substitute.size() ; i < isize ; i += 2)
|
||||
for (size_t i = 0, isize = m_Substitute.size(); i < isize ; i += 2)
|
||||
{
|
||||
pcre* re;
|
||||
const char* error;
|
||||
@ -298,9 +298,8 @@ const WCHAR* CMeasure::CheckSubstitute(const WCHAR* buffer)
|
||||
size_t in_length = ovector[2 * j + 1] - ovector[2 * j];
|
||||
|
||||
char tmpName[64];
|
||||
_snprintf_s(tmpName, _TRUNCATE, "\\%i", j);
|
||||
|
||||
size_t cut_length = strlen(tmpName);
|
||||
size_t cut_length = _snprintf_s(tmpName, _TRUNCATE, "\\%i", j);;
|
||||
size_t start = 0, pos;
|
||||
do
|
||||
{
|
||||
|
@ -624,16 +624,31 @@ void CMeasureNet::ReadStats(const WCHAR* iniFile, std::wstring& statsDate)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
** AppendStatsValue
|
||||
**
|
||||
** Appends "key=value\0" to given string.
|
||||
**
|
||||
*/
|
||||
inline void AppendStatsValue(std::wstring& data, const WCHAR* key, size_t key_len, const WCHAR* value, size_t value_len)
|
||||
{
|
||||
data.append(key, key_len);
|
||||
data += L'=';
|
||||
data.append(value, value_len);
|
||||
data += L'\0';
|
||||
}
|
||||
|
||||
/*
|
||||
** WriteStats
|
||||
**
|
||||
** Writes statistics.
|
||||
**
|
||||
*/
|
||||
void CMeasureNet::WriteStats(const WCHAR* iniFile, const WCHAR* statsDate)
|
||||
void CMeasureNet::WriteStats(const WCHAR* iniFile, const std::wstring& statsDate)
|
||||
{
|
||||
WCHAR buffer[32];
|
||||
WCHAR buffer2[64];
|
||||
WCHAR buffer[64];
|
||||
WCHAR buffer2[32];
|
||||
size_t len, len2;
|
||||
|
||||
size_t statsSize = c_StatValues.size() / 2;
|
||||
|
||||
@ -642,11 +657,11 @@ void CMeasureNet::WriteStats(const WCHAR* iniFile, const WCHAR* statsDate)
|
||||
data.reserve((64 * 2) + 128 * statsSize);
|
||||
|
||||
// Add date
|
||||
AppendStatsValue(data, L"Since", statsDate);
|
||||
AppendStatsValue(data, L"Since", 5, statsDate.c_str(), statsDate.size());
|
||||
|
||||
// Add stats count
|
||||
_itow_s((int)statsSize, buffer, 10);
|
||||
AppendStatsValue(data, L"NetStatsCount", buffer);
|
||||
len = _snwprintf_s(buffer, _TRUNCATE, L"%i", (int)statsSize);
|
||||
AppendStatsValue(data, L"NetStatsCount", 13, buffer, len);
|
||||
|
||||
// Add stats
|
||||
for (size_t i = 0; i < statsSize; ++i)
|
||||
@ -655,43 +670,29 @@ void CMeasureNet::WriteStats(const WCHAR* iniFile, const WCHAR* statsDate)
|
||||
|
||||
value.QuadPart = c_StatValues[i * 2];
|
||||
|
||||
_snwprintf_s(buffer2, _TRUNCATE, L"NetStatsInHigh%i", (int)i + 1);
|
||||
_snwprintf_s(buffer, _TRUNCATE, L"%u", value.HighPart);
|
||||
AppendStatsValue(data, buffer2, buffer);
|
||||
len = _snwprintf_s(buffer, _TRUNCATE, L"NetStatsInHigh%i", (int)i + 1);
|
||||
len2 = _snwprintf_s(buffer2, _TRUNCATE, L"%u", value.HighPart);
|
||||
AppendStatsValue(data, buffer, len, buffer2, len2);
|
||||
|
||||
_snwprintf_s(buffer2, _TRUNCATE, L"NetStatsInLow%i", (int)i + 1);
|
||||
_snwprintf_s(buffer, _TRUNCATE, L"%u", value.LowPart);
|
||||
AppendStatsValue(data, buffer2, buffer);
|
||||
len = _snwprintf_s(buffer, _TRUNCATE, L"NetStatsInLow%i", (int)i + 1);
|
||||
len2 = _snwprintf_s(buffer2, _TRUNCATE, L"%u", value.LowPart);
|
||||
AppendStatsValue(data, buffer, len, buffer2, len2);
|
||||
|
||||
value.QuadPart = c_StatValues[i * 2 + 1];
|
||||
|
||||
_snwprintf_s(buffer2, _TRUNCATE, L"NetStatsOutHigh%i", (int)i + 1);
|
||||
_snwprintf_s(buffer, _TRUNCATE, L"%u", value.HighPart);
|
||||
AppendStatsValue(data, buffer2, buffer);
|
||||
len = _snwprintf_s(buffer, _TRUNCATE, L"NetStatsOutHigh%i", (int)i + 1);
|
||||
len2 = _snwprintf_s(buffer2, _TRUNCATE, L"%u", value.HighPart);
|
||||
AppendStatsValue(data, buffer, len, buffer2, len2);
|
||||
|
||||
_snwprintf_s(buffer2, _TRUNCATE, L"NetStatsOutLow%i", (int)i + 1);
|
||||
_snwprintf_s(buffer, _TRUNCATE, L"%u", value.LowPart);
|
||||
AppendStatsValue(data, buffer2, buffer);
|
||||
len = _snwprintf_s(buffer, _TRUNCATE, L"NetStatsOutLow%i", (int)i + 1);
|
||||
len2 = _snwprintf_s(buffer2, _TRUNCATE, L"%u", value.LowPart);
|
||||
AppendStatsValue(data, buffer, len, buffer2, len2);
|
||||
}
|
||||
|
||||
// Write statistics
|
||||
WritePrivateProfileSection(L"Statistics", data.c_str(), iniFile);
|
||||
}
|
||||
|
||||
/*
|
||||
** AppendStatsValue
|
||||
**
|
||||
** Appends "key=value\0" to given string.
|
||||
**
|
||||
*/
|
||||
void CMeasureNet::AppendStatsValue(std::wstring& data, const WCHAR* key, const WCHAR* value)
|
||||
{
|
||||
data += key;
|
||||
data += L'=';
|
||||
data += value;
|
||||
data += L'\0';
|
||||
}
|
||||
|
||||
/*
|
||||
** InitializeNewApi
|
||||
**
|
||||
|
@ -46,7 +46,7 @@ public:
|
||||
static void UpdateStats();
|
||||
static void ResetStats();
|
||||
static void ReadStats(const WCHAR* iniFile, std::wstring& statsDate);
|
||||
static void WriteStats(const WCHAR* iniFile, const WCHAR* statsDate);
|
||||
static void WriteStats(const WCHAR* iniFile, const std::wstring& statsDate);
|
||||
|
||||
static void InitializeNewApi();
|
||||
static void FinalizeNewApi();
|
||||
@ -56,8 +56,6 @@ protected:
|
||||
ULONG64 GetNetOctets(NET net);
|
||||
ULONG64 GetNetStatsValue(NET net);
|
||||
|
||||
static void AppendStatsValue(std::wstring& data, const WCHAR* key, const WCHAR* value);
|
||||
|
||||
double m_CurrentTraffic;
|
||||
double m_TrafficValue;
|
||||
UINT m_Interface;
|
||||
|
@ -723,8 +723,9 @@ void CMeterString::FreeFontCache(PrivateFontCollection* collection)
|
||||
if (collection)
|
||||
{
|
||||
WCHAR buffer[32];
|
||||
_snwprintf_s(buffer, _TRUNCATE, L"<%p>", collection);
|
||||
prefix = buffer;
|
||||
size_t len = _snwprintf_s(buffer, _TRUNCATE, L"<%p>", collection);
|
||||
|
||||
prefix.assign(buffer, len);
|
||||
StringToLower(prefix);
|
||||
}
|
||||
|
||||
@ -774,8 +775,12 @@ void CMeterString::FreeFontCache(PrivateFontCollection* collection)
|
||||
std::wstring CMeterString::FontFaceToString(const std::wstring& fontFace, PrivateFontCollection* collection)
|
||||
{
|
||||
WCHAR buffer[32];
|
||||
_snwprintf_s(buffer, _TRUNCATE, L"<%p>", collection);
|
||||
std::wstring strTmp = buffer + fontFace;
|
||||
size_t len = _snwprintf_s(buffer, _TRUNCATE, L"<%p>", collection);
|
||||
|
||||
std::wstring strTmp;
|
||||
strTmp.reserve(len + fontFace.size());
|
||||
strTmp.assign(buffer, len);
|
||||
strTmp += fontFace;
|
||||
StringToLower(strTmp);
|
||||
return strTmp;
|
||||
}
|
||||
@ -789,8 +794,9 @@ std::wstring CMeterString::FontFaceToString(const std::wstring& fontFace, Privat
|
||||
std::wstring CMeterString::FontPropertiesToString(REAL size, FontStyle style)
|
||||
{
|
||||
WCHAR buffer[64];
|
||||
_snwprintf_s(buffer, _TRUNCATE, L"%.1f-%i", size, (int)style);
|
||||
return buffer;
|
||||
size_t len = _snwprintf_s(buffer, _TRUNCATE, L"%.1f-%i", size, (int)style);
|
||||
|
||||
return std::wstring(buffer, len);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2478,8 +2478,8 @@ void CRainmeter::UpdateDesktopWorkArea(bool reset)
|
||||
if (i != 0)
|
||||
{
|
||||
WCHAR buffer[64];
|
||||
_snwprintf_s(buffer, _TRUNCATE, L"@%i", i);
|
||||
format += buffer;
|
||||
size_t len = _snwprintf_s(buffer, _TRUNCATE, L"@%i", i);
|
||||
format.append(buffer, len);
|
||||
}
|
||||
format += L": L=%i, T=%i, R=%i, B=%i (W=%i, H=%i)";
|
||||
if (!result)
|
||||
@ -2550,7 +2550,7 @@ void CRainmeter::WriteStats(bool bForce)
|
||||
|
||||
// Only Net measure has stats at the moment
|
||||
const WCHAR* statsFile = m_StatsFile.c_str();
|
||||
CMeasureNet::WriteStats(statsFile, m_StatsDate.c_str());
|
||||
CMeasureNet::WriteStats(statsFile, m_StatsDate);
|
||||
|
||||
WritePrivateProfileString(NULL, NULL, NULL, statsFile);
|
||||
}
|
||||
@ -2987,13 +2987,13 @@ void CRainmeter::CreateMonitorMenu(HMENU monitorMenu, CMeterWindow* meterWindow)
|
||||
for (int i = 0, isize = (int)monitors.size(); i < isize; ++i)
|
||||
{
|
||||
WCHAR buffer[64];
|
||||
_snwprintf_s(buffer, _TRUNCATE, L"@%i: ", i + 1);
|
||||
std::wstring item = buffer;
|
||||
size_t len = _snwprintf_s(buffer, _TRUNCATE, L"@%i: ", i + 1);
|
||||
|
||||
size_t len = wcslen(monitors[i].monitorName);
|
||||
if (len > 32)
|
||||
std::wstring item(buffer, len);
|
||||
|
||||
if (monitors[i].monitorName.size() > 32)
|
||||
{
|
||||
item.append(monitors[i].monitorName, 32);
|
||||
item.append(monitors[i].monitorName, 0, 32);
|
||||
item += L"...";
|
||||
}
|
||||
else
|
||||
@ -3212,7 +3212,7 @@ void CRainmeter::ExpandEnvironmentVariables(std::wstring& strPath)
|
||||
}
|
||||
if (ret <= bufSize) // Fits in the buffer
|
||||
{
|
||||
strPath = buffer;
|
||||
strPath.assign(buffer, ret - 1);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -191,7 +191,7 @@ BOOL CALLBACK MyInfoEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonit
|
||||
{
|
||||
for (size_t i = 0, isize = m->monitors.size(); i < isize; ++i)
|
||||
{
|
||||
if (m->monitors[i].handle == NULL && _wcsnicmp(info.szDevice, m->monitors[i].deviceName, 32) == 0)
|
||||
if (m->monitors[i].handle == NULL && _wcsicmp(info.szDevice, m->monitors[i].deviceName.c_str()) == 0)
|
||||
{
|
||||
m->monitors[i].handle = hMonitor;
|
||||
m->monitors[i].screen = *lprcMonitor;
|
||||
@ -202,14 +202,14 @@ BOOL CALLBACK MyInfoEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonit
|
||||
}
|
||||
else // use only EnumDisplayMonitors
|
||||
{
|
||||
MONITOR_INFO monitor = {0};
|
||||
MONITOR_INFO monitor;
|
||||
monitor.active = true;
|
||||
|
||||
monitor.handle = hMonitor;
|
||||
monitor.screen = *lprcMonitor;
|
||||
monitor.work = info.rcWork;
|
||||
|
||||
wcsncpy_s(monitor.deviceName, info.szDevice, _TRUNCATE); // E.g. "\\.\DISPLAY1"
|
||||
monitor.deviceName = info.szDevice; // E.g. "\\.\DISPLAY1"
|
||||
|
||||
// Get the monitor name (E.g. "Generic Non-PnP Monitor")
|
||||
DISPLAY_DEVICE ddm = {sizeof(DISPLAY_DEVICE)};
|
||||
@ -218,7 +218,7 @@ BOOL CALLBACK MyInfoEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonit
|
||||
{
|
||||
if (ddm.StateFlags & DISPLAY_DEVICE_ACTIVE && ddm.StateFlags & DISPLAY_DEVICE_ATTACHED)
|
||||
{
|
||||
wcsncpy_s(monitor.monitorName, ddm.DeviceString, _TRUNCATE);
|
||||
monitor.monitorName.assign(ddm.DeviceString, wcsnlen(ddm.DeviceString, _countof(ddm.DeviceString)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -287,9 +287,14 @@ void CSystem::SetMultiMonitorInfo()
|
||||
{
|
||||
std::wstring msg;
|
||||
|
||||
std::wstring deviceName(dd.DeviceName, wcsnlen(dd.DeviceName, _countof(dd.DeviceName)));
|
||||
std::wstring deviceString;
|
||||
|
||||
if (logging)
|
||||
{
|
||||
Log(LOG_DEBUG, dd.DeviceName);
|
||||
deviceString.assign(dd.DeviceString, wcsnlen(dd.DeviceString, _countof(dd.DeviceString)));
|
||||
|
||||
Log(LOG_DEBUG, deviceName.c_str());
|
||||
|
||||
if (dd.StateFlags & DISPLAY_DEVICE_ACTIVE)
|
||||
{
|
||||
@ -334,20 +339,20 @@ void CSystem::SetMultiMonitorInfo()
|
||||
MONITOR_INFO monitor = {0};
|
||||
|
||||
monitor.handle = NULL;
|
||||
wcsncpy_s(monitor.deviceName, dd.DeviceName, _TRUNCATE); // E.g. "\\.\DISPLAY1"
|
||||
monitor.deviceName = deviceName; // E.g. "\\.\DISPLAY1"
|
||||
|
||||
// Get the monitor name (E.g. "Generic Non-PnP Monitor")
|
||||
DISPLAY_DEVICE ddm = {sizeof(DISPLAY_DEVICE)};
|
||||
DWORD dwMon = 0;
|
||||
while (EnumDisplayDevices(dd.DeviceName, dwMon++, &ddm, 0))
|
||||
while (EnumDisplayDevices(deviceName.c_str(), dwMon++, &ddm, 0))
|
||||
{
|
||||
if (ddm.StateFlags & DISPLAY_DEVICE_ACTIVE && ddm.StateFlags & DISPLAY_DEVICE_ATTACHED)
|
||||
{
|
||||
wcsncpy_s(monitor.monitorName, ddm.DeviceString, _TRUNCATE);
|
||||
monitor.monitorName.assign(ddm.DeviceString, wcsnlen(ddm.DeviceString, _countof(ddm.DeviceString)));
|
||||
|
||||
if (logging)
|
||||
{
|
||||
LogWithArgs(LOG_DEBUG, L" Name : %s", ddm.DeviceString);
|
||||
LogWithArgs(LOG_DEBUG, L" Name : %s", monitor.monitorName.c_str());
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -355,7 +360,7 @@ void CSystem::SetMultiMonitorInfo()
|
||||
|
||||
if (logging)
|
||||
{
|
||||
LogWithArgs(LOG_DEBUG, L" Adapter : %s", dd.DeviceString);
|
||||
LogWithArgs(LOG_DEBUG, L" Adapter : %s", deviceString.c_str());
|
||||
LogWithArgs(LOG_DEBUG, L" Flags : %s(0x%08X)", msg.c_str(), dd.StateFlags);
|
||||
}
|
||||
|
||||
@ -366,7 +371,7 @@ void CSystem::SetMultiMonitorInfo()
|
||||
DEVMODE dm = {0};
|
||||
dm.dmSize = sizeof(DEVMODE);
|
||||
|
||||
if (EnumDisplaySettings(dd.DeviceName, ENUM_CURRENT_SETTINGS, &dm))
|
||||
if (EnumDisplaySettings(deviceName.c_str(), ENUM_CURRENT_SETTINGS, &dm))
|
||||
{
|
||||
POINT pos = {dm.dmPosition.x, dm.dmPosition.y};
|
||||
monitor.handle = MonitorFromPoint(pos, MONITOR_DEFAULTTONULL);
|
||||
@ -417,7 +422,7 @@ void CSystem::SetMultiMonitorInfo()
|
||||
{
|
||||
if (logging)
|
||||
{
|
||||
LogWithArgs(LOG_DEBUG, L" Adapter : %s", dd.DeviceString);
|
||||
LogWithArgs(LOG_DEBUG, L" Adapter : %s", deviceString.c_str());
|
||||
LogWithArgs(LOG_DEBUG, L" Flags : %s(0x%08X)", msg.c_str(), dd.StateFlags);
|
||||
}
|
||||
}
|
||||
@ -448,16 +453,21 @@ void CSystem::SetMultiMonitorInfo()
|
||||
Log(LOG_WARNING, L"Failed to enumerate monitors. Using dummy monitor info.");
|
||||
c_Monitors.useEnumDisplayMonitors = false;
|
||||
|
||||
MONITOR_INFO monitor = {0};
|
||||
wcsncpy_s(monitor.deviceName, L"DUMMY", _TRUNCATE);
|
||||
MONITOR_INFO monitor;
|
||||
monitor.active = true;
|
||||
|
||||
POINT pos = {0, 0};
|
||||
monitor.handle = MonitorFromPoint(pos, MONITOR_DEFAULTTOPRIMARY);
|
||||
monitor.screen.left = 0;
|
||||
monitor.screen.top = 0;
|
||||
monitor.screen.right = GetSystemMetrics(SM_CXSCREEN);
|
||||
monitor.screen.bottom = GetSystemMetrics(SM_CYSCREEN);
|
||||
SystemParametersInfo(SPI_GETWORKAREA, 0, &(monitor.work), 0);
|
||||
monitor.active = true;
|
||||
if (SystemParametersInfo(SPI_GETWORKAREA, 0, &(monitor.work), 0) == 0) // failed
|
||||
{
|
||||
monitor.work = monitor.screen;
|
||||
}
|
||||
|
||||
monitor.deviceName = L"DUMMY";
|
||||
|
||||
monitors.push_back(monitor);
|
||||
|
||||
@ -498,14 +508,14 @@ void CSystem::SetMultiMonitorInfo()
|
||||
{
|
||||
if (monitors[i].active)
|
||||
{
|
||||
LogWithArgs(LOG_DEBUG, L"@%i: %s (active), MonitorName: %s", (int)i + 1, monitors[i].deviceName, monitors[i].monitorName);
|
||||
LogWithArgs(LOG_DEBUG, L"@%i: %s (active), MonitorName: %s", (int)i + 1, monitors[i].deviceName.c_str(), monitors[i].monitorName.c_str());
|
||||
LogWithArgs(LOG_DEBUG, L" L=%i, T=%i, R=%i, B=%i (W=%i, H=%i)",
|
||||
monitors[i].screen.left, monitors[i].screen.top, monitors[i].screen.right, monitors[i].screen.bottom,
|
||||
monitors[i].screen.right - monitors[i].screen.left, monitors[i].screen.bottom - monitors[i].screen.top);
|
||||
}
|
||||
else
|
||||
{
|
||||
LogWithArgs(LOG_DEBUG, L"@%i: %s (inactive), MonitorName: %s", (int)i + 1, monitors[i].deviceName, monitors[i].monitorName);
|
||||
LogWithArgs(LOG_DEBUG, L"@%i: %s (inactive), MonitorName: %s", (int)i + 1, monitors[i].deviceName.c_str(), monitors[i].monitorName.c_str());
|
||||
}
|
||||
}
|
||||
Log(LOG_DEBUG, L"------------------------------");
|
||||
|
@ -36,8 +36,8 @@ struct MONITOR_INFO
|
||||
HMONITOR handle;
|
||||
RECT screen;
|
||||
RECT work;
|
||||
WCHAR deviceName[32]; //Device name (E.g. "\\.\DISPLAY1")
|
||||
WCHAR monitorName[128]; //Monitor name (E.g. "Generic Non-PnP Monitor")
|
||||
std::wstring deviceName; //Device name (E.g. "\\.\DISPLAY1")
|
||||
std::wstring monitorName; //Monitor name (E.g. "Generic Non-PnP Monitor")
|
||||
};
|
||||
|
||||
struct MULTIMONITOR_INFO
|
||||
|
@ -44,8 +44,8 @@ public:
|
||||
}
|
||||
std::transform(key.begin(), key.end(), key.begin(), ::towlower);
|
||||
|
||||
_snwprintf_s(buffer, _TRUNCATE, L":%llx:%x", time, size);
|
||||
key += buffer;
|
||||
size_t len = _snwprintf_s(buffer, _TRUNCATE, L":%llx:%x", time, size);
|
||||
key.append(buffer, len);
|
||||
|
||||
return key;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user