windows: Fix crash in for Windows versions < 17763
In Windows versions < 17763, `GetProcAddress("#132")` from `uxtheme.dll`
also returns a non-null pointer. However, the function does not match
the expected `extern "system" fn() -> bool` prototype, which causes a
crash when it is called.
This fix ensures compatibility by adding proper checks to prevent such
crashes on older Windows versions.
This commit is contained in:
parent
b5921d89f2
commit
ed4ebd4242
2 changed files with 7 additions and 0 deletions
|
|
@ -246,3 +246,4 @@ changelog entry.
|
|||
- On macOS, fixed the scancode conversion for audio volume keys.
|
||||
- On macOS, fixed the scancode conversion for `IntlBackslash`.
|
||||
- On macOS, fixed redundant `SurfaceResized` event at window creation.
|
||||
- On Windows, fixed crash in should_apps_use_dark_mode() for Windows versions < 17763.
|
||||
|
|
|
|||
|
|
@ -133,6 +133,12 @@ fn should_apps_use_dark_mode() -> bool {
|
|||
LazyLock::new(|| unsafe {
|
||||
const UXTHEME_SHOULDAPPSUSEDARKMODE_ORDINAL: PCSTR = 132 as PCSTR;
|
||||
|
||||
// We won't try to do anything for windows versions < 17763
|
||||
// (Windows 10 October 2018 update)
|
||||
if !*DARK_MODE_SUPPORTED {
|
||||
return None;
|
||||
}
|
||||
|
||||
let module = LoadLibraryA(c"uxtheme.dll".as_ptr().cast());
|
||||
|
||||
if module.is_null() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue