Skip to content

Commit fded364

Browse files
committed
uxtheme: add undocumented darkmode functions
1 parent cc00c74 commit fded364

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

uxtheme.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -619,3 +619,47 @@ func SetWindowTheme(hwnd HWND, pszSubAppName, pszSubIdList *uint16) HRESULT {
619619

620620
return HRESULT(ret)
621621
}
622+
623+
func RefreshImmersiveColorPolicyState() {
624+
proc, err := windows.GetProcAddressByOrdinal(windows.Handle(libuxtheme.Handle()), 104)
625+
if err != nil {
626+
return false
627+
}
628+
syscall.Syscall(proc, 0, 0, 0, 0)
629+
}
630+
631+
func ShouldAppsUseDarkMode() bool {
632+
proc, err := windows.GetProcAddressByOrdinal(windows.Handle(libuxtheme.Handle()), 132)
633+
if err != nil {
634+
return false
635+
}
636+
ret, _, _ := syscall.Syscall(proc, 0, 0, 0, 0)
637+
return ret != 0
638+
639+
}
640+
641+
func AllowDarkModeForWindow(hwnd HWND, allow bool) bool {
642+
proc, err := windows.GetProcAddressByOrdinal(windows.Handle(libuxtheme.Handle()), 133)
643+
if err != nil {
644+
return false
645+
}
646+
ret, _, _ := syscall.Syscall(proc, 2, uintptr(hwnd), uintptr(BoolToBOOL(allow)), 0)
647+
return ret != 0
648+
}
649+
650+
func AllowDarkModeForApp(allow bool) bool {
651+
proc, err := windows.GetProcAddressByOrdinal(windows.Handle(libuxtheme.Handle()), 135)
652+
if err != nil {
653+
return false
654+
}
655+
ret, _, _ := syscall.Syscall(proc, 1, uintptr(BoolToBOOL(allow)), 0, 0)
656+
return ret != 0
657+
}
658+
659+
func FlushMenuThemes() {
660+
proc, err := windows.GetProcAddressByOrdinal(windows.Handle(libuxtheme.Handle()), 136)
661+
if err != nil {
662+
return
663+
}
664+
syscall.Syscall(proc, 0, 0, 0, 0)
665+
}

0 commit comments

Comments
 (0)