aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2025-01-08 16:23:40 +0000
committerGitHub <noreply@github.com>2025-01-08 16:23:40 +0000
commitbc2e57723b3501d1b174f6e9e64b382c9bb1fb28 (patch)
treed5b5ad8c717853c5081e28f1dee198a84a743bef
parentb71c74a35738fa5e8e3a11e24f28c2cd539b1264 (diff)
parentab3e2340c26577567960d74c4eaa296e276a831f (diff)
Merge pull request #4665 from GrumpyLion/add_some_missing_win_functions
Add SetWindowSubclass and RegisterHotKey functions
-rw-r--r--core/sys/windows/comctl32.odin1
-rw-r--r--core/sys/windows/types.odin2
-rw-r--r--core/sys/windows/user32.odin3
3 files changed, 6 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 379431402..f334aa378 100644
--- a/core/sys/windows/user32.odin
+++ b/core/sys/windows/user32.odin
@@ -2,6 +2,7 @@
package sys_windows
import "base:intrinsics"
+import "core:c"
foreign import user32 "system:User32.lib"
@(default_calling_convention="system")
@@ -32,6 +33,8 @@ foreign user32 {
RegisterClassExW :: proc(^WNDCLASSEXW) -> ATOM ---
UnregisterClassW :: proc(lpClassName: LPCWSTR, hInstance: HINSTANCE) -> BOOL ---
+ RegisterHotKey :: proc(hnwd: HWND, id: c.int, fsModifiers: UINT, vk: UINT) -> BOOL ---
+
CreateWindowExW :: proc(
dwExStyle: DWORD,
lpClassName: LPCWSTR,