mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
sys/windows: add a couple of procedures and types
This commit is contained in:
@@ -30,6 +30,7 @@ HBRUSH :: distinct HANDLE
|
|||||||
HGDIOBJ :: distinct HANDLE
|
HGDIOBJ :: distinct HANDLE
|
||||||
HBITMAP :: distinct HANDLE
|
HBITMAP :: distinct HANDLE
|
||||||
HGLOBAL :: distinct HANDLE
|
HGLOBAL :: distinct HANDLE
|
||||||
|
HHOOK :: distinct HANDLE
|
||||||
BOOL :: distinct b32
|
BOOL :: distinct b32
|
||||||
BYTE :: distinct u8
|
BYTE :: distinct u8
|
||||||
BOOLEAN :: distinct b8
|
BOOLEAN :: distinct b8
|
||||||
@@ -199,6 +200,24 @@ TIMERPROC :: #type proc "stdcall" (HWND, UINT, UINT_PTR, DWORD)
|
|||||||
|
|
||||||
WNDPROC :: #type proc "stdcall" (HWND, UINT, WPARAM, LPARAM) -> LRESULT
|
WNDPROC :: #type proc "stdcall" (HWND, UINT, WPARAM, LPARAM) -> LRESULT
|
||||||
|
|
||||||
|
HOOKPROC :: #type proc "stdcall" (code: c_int, wParam: WPARAM, lParam: LPARAM) -> LRESULT
|
||||||
|
|
||||||
|
CWPRETSTRUCT :: struct {
|
||||||
|
lResult: LRESULT,
|
||||||
|
lParam: LPARAM,
|
||||||
|
wParam: WPARAM,
|
||||||
|
message: UINT,
|
||||||
|
hwnd: HWND,
|
||||||
|
}
|
||||||
|
|
||||||
|
KBDLLHOOKSTRUCT :: struct {
|
||||||
|
vkCode: DWORD,
|
||||||
|
scanCode: DWORD,
|
||||||
|
flags: DWORD,
|
||||||
|
time: DWORD,
|
||||||
|
dwExtraInfo: ULONG_PTR,
|
||||||
|
}
|
||||||
|
|
||||||
WNDCLASSA :: struct {
|
WNDCLASSA :: struct {
|
||||||
style: UINT,
|
style: UINT,
|
||||||
lpfnWndProc: WNDPROC,
|
lpfnWndProc: WNDPROC,
|
||||||
@@ -698,6 +717,50 @@ HOVER_DEFAULT :: 0xFFFFFFFF
|
|||||||
USER_TIMER_MAXIMUM :: 0x7FFFFFFF
|
USER_TIMER_MAXIMUM :: 0x7FFFFFFF
|
||||||
USER_TIMER_MINIMUM :: 0x0000000A
|
USER_TIMER_MINIMUM :: 0x0000000A
|
||||||
|
|
||||||
|
|
||||||
|
// SetWindowsHook() codes
|
||||||
|
WH_MIN :: -1
|
||||||
|
WH_MSGFILTER :: -1
|
||||||
|
WH_JOURNALRECORD :: 0
|
||||||
|
WH_JOURNALPLAYBACK :: 1
|
||||||
|
WH_KEYBOARD :: 2
|
||||||
|
WH_GETMESSAGE :: 3
|
||||||
|
WH_CALLWNDPROC :: 4
|
||||||
|
WH_CBT :: 5
|
||||||
|
WH_SYSMSGFILTER :: 6
|
||||||
|
WH_MOUSE :: 7
|
||||||
|
WH_HARDWARE :: 8
|
||||||
|
WH_DEBUG :: 9
|
||||||
|
WH_SHELL :: 10
|
||||||
|
WH_FOREGROUNDIDLE :: 11
|
||||||
|
WH_CALLWNDPROCRET :: 12
|
||||||
|
WH_KEYBOARD_LL :: 13
|
||||||
|
WH_MOUSE_LL :: 14
|
||||||
|
WH_MAX :: 14
|
||||||
|
WH_MINHOOK :: WH_MIN
|
||||||
|
WH_MAXHOOK :: WH_MAX
|
||||||
|
|
||||||
|
// Hook Codes
|
||||||
|
HC_ACTION :: 0
|
||||||
|
HC_GETNEXT :: 1
|
||||||
|
HC_SKIP :: 2
|
||||||
|
HC_NOREMOVE :: 3
|
||||||
|
HC_NOREM :: HC_NOREMOVE
|
||||||
|
HC_SYSMODALON :: 4
|
||||||
|
HC_SYSMODALOFF :: 5
|
||||||
|
|
||||||
|
// CBT Hook Codes
|
||||||
|
HCBT_MOVESIZE :: 0
|
||||||
|
HCBT_MINMAX :: 1
|
||||||
|
HCBT_QS :: 2
|
||||||
|
HCBT_CREATEWND :: 3
|
||||||
|
HCBT_DESTROYWND :: 4
|
||||||
|
HCBT_ACTIVATE :: 5
|
||||||
|
HCBT_CLICKSKIPPED :: 6
|
||||||
|
HCBT_KEYSKIPPED :: 7
|
||||||
|
HCBT_SYSCOMMAND :: 8
|
||||||
|
HCBT_SETFOCUS :: 9
|
||||||
|
|
||||||
_IDC_APPSTARTING := rawptr(uintptr(32650))
|
_IDC_APPSTARTING := rawptr(uintptr(32650))
|
||||||
_IDC_ARROW := rawptr(uintptr(32512))
|
_IDC_ARROW := rawptr(uintptr(32512))
|
||||||
_IDC_CROSS := rawptr(uintptr(32515))
|
_IDC_CROSS := rawptr(uintptr(32515))
|
||||||
|
|||||||
@@ -131,6 +131,11 @@ foreign user32 {
|
|||||||
GetKeyState :: proc(nVirtKey: c_int) -> SHORT ---
|
GetKeyState :: proc(nVirtKey: c_int) -> SHORT ---
|
||||||
GetAsyncKeyState :: proc(vKey: c_int) -> SHORT ---
|
GetAsyncKeyState :: proc(vKey: c_int) -> SHORT ---
|
||||||
|
|
||||||
|
SetWindowsHookExA :: proc(idHook: c_int, lpfn: HOOKPROC, hmod: HINSTANCE, dwThreadId: DWORD) -> HHOOK ---
|
||||||
|
SetWindowsHookExW :: proc(idHook: c_int, lpfn: HOOKPROC, hmod: HINSTANCE, dwThreadId: DWORD) -> HHOOK ---
|
||||||
|
UnhookWindowsHookEx :: proc(hhk: HHOOK) -> BOOL ---
|
||||||
|
CallNextHookEx :: proc(hhk: HHOOK, nCode: c_int, wParam: WPARAM, lParam: LPARAM) -> LRESULT ---
|
||||||
|
|
||||||
SetTimer :: proc(hWnd: HWND, nIDEvent: UINT_PTR, uElapse: UINT, lpTimerFunc: TIMERPROC) -> UINT_PTR ---
|
SetTimer :: proc(hWnd: HWND, nIDEvent: UINT_PTR, uElapse: UINT, lpTimerFunc: TIMERPROC) -> UINT_PTR ---
|
||||||
KillTimer :: proc(hWnd: HWND, uIDEvent: UINT_PTR) -> BOOL ---
|
KillTimer :: proc(hWnd: HWND, uIDEvent: UINT_PTR) -> BOOL ---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user