return TRUE;
case WM_NOTIFY: {
const PNMLINK pNmLink = reinterpret_cast<PNMLINK>(lParam);
- if (pNmLink->hdr.code == NM_CLICK || pNmLink->hdr.code == NM_RETURN) {
+#pragma warning(push)
+#pragma warning(disable : 26454) // Disable arithmetic overflow warning for NM_CLICK and NM_RETURN
+ if (pNmLink->hdr.code == NM_CLICK ||
+ pNmLink->hdr.code == NM_RETURN) {
+#pragma warning(pop)
const UINT_PTR ctrlId = pNmLink->hdr.idFrom;
const LITEM item = pNmLink->item;
if ((ctrlId == IDC_LINK_HOMEPAGE
}
case WM_NOTIFY: {
const LPNMHDR lpnmhdr = reinterpret_cast<LPNMHDR>(lParam);
- if (lpnmhdr->code == TCN_SELCHANGE
- && lpnmhdr->hwndFrom == dlgData->hTabCtrl) {
+#pragma warning(push)
+#pragma warning(disable : 26454) // Disable arithmetic overflow for TCN_SELCHANGE
+ if (lpnmhdr->code == TCN_SELCHANGE && lpnmhdr->hwndFrom == dlgData->hTabCtrl) {
+#pragma warning(pop)
const int curSel = TabCtrl_GetCurSel(dlgData->hTabCtrl);
if (curSel >= 0 && curSel < ABOUT_TAB_COUNT) {
SwitchTab(dlgData, dlgData->hTabs[curSel]);
if (useDeviceList_) {
auto pos = std::find(begin(deviceNames_), end(deviceNames_), inRangeInfo->deviceInfo.name);
if (pos == end(deviceNames_)) {
- log.Write(L"Bluetooth device \"S\" not in list.", inRangeInfo->deviceInfo.name);
+ log.Write(L"Bluetooth device \"%S\" not in list.", inRangeInfo->deviceInfo.name);
return BluetoothStatus::Unknown;
}
}
{
if (notifyParent_ && pwstrDeviceId != nullptr) {
const auto deviceName = GetFriendlyDeviceName(pwstrDeviceId);
- WMLog::GetInstance().GetInstance().Write(L"Device \"%S\" added", deviceName.c_str());
+ WMLog::GetInstance().GetInstance().Write(L"Device \"%s\" added", deviceName.c_str());
notifyParent_->ShouldReInit();
}
return S_OK;
{
if (notifyParent_ && pwstrDeviceId != nullptr) {
const auto deviceName = GetFriendlyDeviceName(pwstrDeviceId);
- WMLog::GetInstance().GetInstance().Write(L"Device \"%S\" removed", deviceName.c_str());
+ WMLog::GetInstance().GetInstance().Write(L"Device \"%s\" removed", deviceName.c_str());
notifyParent_->ShouldReInit();
}
return S_OK;
return 0;
case WM_NOTIFY: {
const LPNMHDR lpnmhdr = reinterpret_cast<LPNMHDR>(lParam);
- if (lpnmhdr->code == TCN_SELCHANGE
- && lpnmhdr->hwndFrom == dlgData->hTabCtrl) {
+#pragma warning(push)
+#pragma warning(disable : 26454) // Disable arithmetic overflow warning for TCN_SELCHANGE
+ if (lpnmhdr->code == TCN_SELCHANGE && lpnmhdr->hwndFrom == dlgData->hTabCtrl) {
+#pragma warning(pop)
const int curSel = TabCtrl_GetCurSel(dlgData->hTabCtrl);
if (curSel >= 0 && curSel < SETTINGS_TAB_COUNT) {
SwitchTab(dlgData, dlgData->hTabs[curSel]);
logFile_.flush();
}
-void WMLog::Write(const wchar_t *fmt, ...)
+void WMLog::Write(_In_z_ _Printf_format_string_ const wchar_t *fmt, ...)
{
if (!enabled_) {
return;
public:
static WMLog& GetInstance();
- void Write(const wchar_t* fmt, ...);
+ void Write(_In_z_ _Printf_format_string_ const wchar_t* fmt, ...);
void WriteWindowsError(const wchar_t *functionName, DWORD errorCode = -1);
void SetEnabled(bool enable);
langDlls.push_back(langMod);
}
} catch (const nlohmann::json::parse_error &pe) {
- WMLog::GetInstance().Write(L"Failed to parse language file \"%ls\": %s", wfd.cFileName, pe.what());
+ WMLog::GetInstance().Write(L"Failed to parse language file \"%ls\": %S", wfd.cFileName, pe.what());
}
} while (FindNextFileW(hFindFile, &wfd));
}
}
const auto value = ConvertStringToWideString(it.value());
if (value == L"") {
- log.Write(L"Unable to convert language element \"%s\"", it.key().c_str());
+ log.Write(L"Unable to convert language element \"%S\"", it.key().c_str());
return false;
}
if (translations_temp.contains(it.key())) {
- log.Write(L"Double entry for language key \"%s\" found.", it.key().c_str());
+ log.Write(L"Double entry for language key \"%S\" found.", it.key().c_str());
return false;
}
translations_temp[it.key()] = value;
strings = std::move(translations_temp);
} catch (const nlohmann::json::parse_error &pe) {
WMLog::GetInstance().Write(
- L"Failed to parse language file \"%ls\": %s",
+ L"Failed to parse language file \"%ls\": %S",
langFilePath->filename().c_str(),
pe.what());
return false;
#include <wlanapi.h>
#include <Mmdeviceapi.h>
#include <dwmapi.h>
+#include <sal.h>
#pragma warning(disable : 4201)
# include <endpointvolume.h>
#pragma warning(default : 4201)
}
}
}
-
+ [[fallthrough]];
// multi-line comments skip input until */ is read
case '*':
{
continue;
}
}
+ [[fallthrough]];
}
-
+
// unexpected character after reading '/'
default:
{