This commit is contained in:
Igor Pavlov
2018-05-02 22:28:04 +01:00
committed by Kornel
parent f19b649c73
commit 18dc2b4161
121 changed files with 3523 additions and 1866 deletions

View File

@@ -72,6 +72,7 @@ bool CDialog::OnButtonClicked(int buttonID, HWND /* buttonHWND */)
{
case IDOK: OnOK(); break;
case IDCANCEL: OnCancel(); break;
case IDCLOSE: OnClose(); break;
case IDHELP: OnHelp(); break;
default: return false;
}

View File

@@ -105,6 +105,7 @@ public:
virtual bool OnButtonClicked(int buttonID, HWND buttonHWND);
virtual void OnOK() {};
virtual void OnCancel() {};
virtual void OnClose() {}
virtual bool OnNotify(UINT /* controlID */, LPNMHDR /* lParam */) { return false; }
virtual bool OnTimer(WPARAM /* timerID */, LPARAM /* callback */) { return false; }
@@ -133,6 +134,7 @@ public:
#endif
virtual void OnOK() { Destroy(); }
virtual void OnCancel() { Destroy(); }
virtual void OnClose() { Destroy(); }
};
class CModalDialog: public CDialog
@@ -147,6 +149,7 @@ public:
bool End(INT_PTR result) { return BOOLToBool(::EndDialog(_window, result)); }
virtual void OnOK() { End(IDOK); }
virtual void OnCancel() { End(IDCANCEL); }
virtual void OnClose() { End(IDCLOSE); }
};
class CDialogChildControl: public NWindows::CWindow

View File

@@ -67,6 +67,31 @@ bool EnablePrivilege(LPCTSTR privilegeName, bool enable)
return res;
}
typedef void (WINAPI * Func_RtlGetVersion) (OSVERSIONINFOEXW *);
/*
We suppose that Window 10 works incorrectly with "Large Pages" at:
- Windows 10 1703 (15063)
- Windows 10 1709 (16299)
*/
unsigned Get_LargePages_RiskLevel()
{
OSVERSIONINFOEXW vi;
HMODULE ntdll = ::GetModuleHandleW(L"ntdll.dll");
if (!ntdll)
return 0;
Func_RtlGetVersion func = (Func_RtlGetVersion)GetProcAddress(ntdll, "RtlGetVersion");
if (!func)
return 0;
func(&vi);
return (vi.dwPlatformId == VER_PLATFORM_WIN32_NT
&& vi.dwMajorVersion + vi.dwMinorVersion == 10
&& vi.dwBuildNumber <= 16299) ? 1 : 0;
}
#endif
}}

View File

@@ -31,6 +31,8 @@ inline void EnablePrivilege_SymLink()
// Do we need to set SE_BACKUP_NAME ?
}
unsigned Get_LargePages_RiskLevel();
#endif
}}

View File

@@ -152,7 +152,7 @@ LONG CKey::SetValue(LPCWSTR name, LPCWSTR value)
MYASSERT(value != NULL);
MYASSERT(_object != NULL);
if (g_IsNT)
return RegSetValueExW(_object, name, NULL, REG_SZ,
return RegSetValueExW(_object, name, 0, REG_SZ,
(const BYTE * )value, (DWORD)((wcslen(value) + 1) * sizeof(wchar_t)));
return SetValue(name == 0 ? 0 : (LPCSTR)GetSystemString(name),
value == 0 ? 0 : (LPCSTR)GetSystemString(value));