@@ -619,3 +619,47 @@ func SetWindowTheme(hwnd HWND, pszSubAppName, pszSubIdList *uint16) HRESULT {
619
619
620
620
return HRESULT (ret )
621
621
}
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