aboutsummaryrefslogtreecommitdiff
path: root/core/sys
diff options
context:
space:
mode:
authorLion Schitik <schitiklion@gmail.com>2025-01-08 01:47:36 +0100
committerLion Schitik <schitiklion@gmail.com>2025-01-08 01:47:36 +0100
commitcdef798fbc11df248a20e46447aaf014e7c690d2 (patch)
tree8db27933df9853f9dd279057daa850de6270639e /core/sys
parentb136aa26c8269c08c94380578dad0c2dcdcbfec1 (diff)
Add SetWindowSubclass and RegisterHotKey functions
Diffstat (limited to 'core/sys')
-rw-r--r--core/sys/windows/comctl32.odin1
-rw-r--r--core/sys/windows/types.odin2
-rw-r--r--core/sys/windows/user32.odin2
3 files changed, 5 insertions, 0 deletions
diff --git a/core/sys/windows/comctl32.odin b/core/sys/windows/comctl32.odin
index 477800413..69c502b06 100644
--- a/core/sys/windows/comctl32.odin
+++ b/core/sys/windows/comctl32.odin
@@ -6,4 +6,5 @@ foreign import "system:Comctl32.lib"
@(default_calling_convention="system")
foreign Comctl32 {
LoadIconWithScaleDown :: proc(hinst: HINSTANCE, pszName: PCWSTR, cx: c_int, cy: c_int, phico: ^HICON) -> HRESULT ---
+ SetWindowSubclass :: proc(hwnd: HWND, pfnSubclass: SUBCLASSPROC, uIdSubclass: UINT_PTR, dwRefData: DWORD_PTR) ---
}
diff --git a/core/sys/windows/types.odin b/core/sys/windows/types.odin
index aece4dc43..ab79c682a 100644
--- a/core/sys/windows/types.odin
+++ b/core/sys/windows/types.odin
@@ -796,6 +796,8 @@ TIMERPROC :: #type proc "system" (HWND, UINT, UINT_PTR, DWORD)
WNDPROC :: #type proc "system" (HWND, UINT, WPARAM, LPARAM) -> LRESULT
+SUBCLASSPROC :: #type proc "system" (HWND, UINT, WPARAM, LPARAM, UINT_PTR, DWORD_PTR) -> LRESULT
+
HOOKPROC :: #type proc "system" (code: c_int, wParam: WPARAM, lParam: LPARAM) -> LRESULT
WINEVENTPROC :: #type proc "system" (
diff --git a/core/sys/windows/user32.odin b/core/sys/windows/user32.odin
index da979a3e3..9ebd86201 100644
--- a/core/sys/windows/user32.odin
+++ b/core/sys/windows/user32.odin
@@ -32,6 +32,8 @@ foreign user32 {
RegisterClassExW :: proc(^WNDCLASSEXW) -> ATOM ---
UnregisterClassW :: proc(lpClassName: LPCWSTR, hInstance: HINSTANCE) -> BOOL ---
+ RegisterHotKey :: proc(hnwd: HWND, id: int, fsModifiers: UINT, vk: UINT) -> BOOL ---
+
CreateWindowExW :: proc(
dwExStyle: DWORD,
lpClassName: LPCWSTR,