aboutsummaryrefslogtreecommitdiff
path: root/core/sys/windows
diff options
context:
space:
mode:
authorFranz Höltermann <Francis_the_cat@gmx.de>2024-06-14 16:32:41 +0200
committerFranz Höltermann <Francis_the_cat@gmx.de>2024-06-14 16:32:41 +0200
commitec7b77fc0f6ed20eecf25039c6acbe2050cef877 (patch)
tree36c2231a94b9f8e4887b5ec8bb272f6b8af1c28d /core/sys/windows
parentc6c00c706aab0a08a4b8d09df2b7e01835ee777f (diff)
Improved win32 bindings according to Kelimions suggestions with enums and bitsets
Diffstat (limited to 'core/sys/windows')
-rw-r--r--core/sys/windows/kernel32.odin21
-rw-r--r--core/sys/windows/user32.odin12
2 files changed, 29 insertions, 4 deletions
diff --git a/core/sys/windows/kernel32.odin b/core/sys/windows/kernel32.odin
index e50f18984..86f6b86f0 100644
--- a/core/sys/windows/kernel32.odin
+++ b/core/sys/windows/kernel32.odin
@@ -1214,13 +1214,28 @@ SYSTEM_LOGICAL_PROCESSOR_INFORMATION :: struct {
}
SYSTEM_POWER_STATUS :: struct {
- ACLineStatus: BYTE,
- BatteryFlag: BYTE,
+ ACLineStatus: AC_Line_Status,
+ BatteryFlag: Battery_Flags,
BatteryLifePercent: BYTE,
SystemStatusFlag: BYTE,
BatteryLifeTime: DWORD,
BatteryFullLifeTime: DWORD,
-}
+}
+
+AC_Line_Status :: enum BYTE {
+ Offline = 0,
+ Online = 1,
+ Unknown = 255,
+}
+
+Battery_Flag :: enum BYTE {
+ High = 0,
+ Low = 1,
+ Critical = 2,
+ Charging = 3,
+ No_Battery = 7,
+}
+Battery_Flags :: bit_set[Battery_Flag; BYTE]
/* Global Memory Flags */
GMEM_FIXED :: 0x0000
diff --git a/core/sys/windows/user32.odin b/core/sys/windows/user32.odin
index 6c053fed0..380c0ac56 100644
--- a/core/sys/windows/user32.odin
+++ b/core/sys/windows/user32.odin
@@ -23,7 +23,8 @@ foreign user32 {
eventMin, eventMax: DWORD,
hmodWinEventProc: HMODULE,
pfnWinEvenProc: WINEVENTPROC,
- idProcess, idThread, dwmFlags: DWORD,
+ idProcess, idThread: DWORD,
+ dwFlags: WinEventFlags,
) -> HWINEVENTHOOK ---
IsChild :: proc(hWndParent, hWnd: HWND) -> BOOL ---
@@ -579,3 +580,12 @@ RedrawWindowFlags :: enum UINT {
RDW_FRAME = 0x0400,
RDW_NOFRAME = 0x0800,
}
+
+WinEventFlags :: bit_set[WinEventFlag; DWORD]
+
+WinEventFlag :: enum DWORD {
+ WINEVENT_OUTOFCONTEXT = 0,
+ WINEVENT_SKIPOWNTHREAD = 1,
+ WINEVENT_SKIPOWNPROCESS = 2,
+ WINEVENT_INCONTEXT = 4,
+}