diff options
| author | Franz Höltermann <Francis_the_cat@gmx.de> | 2024-06-14 16:32:41 +0200 |
|---|---|---|
| committer | Franz Höltermann <Francis_the_cat@gmx.de> | 2024-06-14 16:32:41 +0200 |
| commit | ec7b77fc0f6ed20eecf25039c6acbe2050cef877 (patch) | |
| tree | 36c2231a94b9f8e4887b5ec8bb272f6b8af1c28d /core/sys | |
| parent | c6c00c706aab0a08a4b8d09df2b7e01835ee777f (diff) | |
Improved win32 bindings according to Kelimions suggestions with enums and bitsets
Diffstat (limited to 'core/sys')
| -rw-r--r-- | core/sys/windows/kernel32.odin | 21 | ||||
| -rw-r--r-- | core/sys/windows/user32.odin | 12 |
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, +} |