From 7e6b889f843aeb5368a80001a8dbae8346fcef0d Mon Sep 17 00:00:00 2001 From: Ferdinand Schober Date: Fri, 18 Jul 2025 14:27:34 +0200 Subject: [PATCH] update windows --- input-capture/src/windows/event_thread.rs | 38 +++++++++++++---------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/input-capture/src/windows/event_thread.rs b/input-capture/src/windows/event_thread.rs index 5a226bc..284a179 100644 --- a/input-capture/src/windows/event_thread.rs +++ b/input-capture/src/windows/event_thread.rs @@ -9,7 +9,7 @@ use std::thread; use tokio::sync::mpsc::error::TrySendError; use tokio::sync::mpsc::Sender; use windows::core::{w, PCWSTR}; -use windows::Win32::Foundation::{FALSE, HINSTANCE, HWND, LPARAM, LRESULT, RECT, WPARAM}; +use windows::Win32::Foundation::{FALSE, HWND, LPARAM, LRESULT, RECT, WPARAM}; use windows::Win32::Graphics::Gdi::{ EnumDisplayDevicesW, EnumDisplaySettingsW, DEVMODEW, DISPLAY_DEVICEW, DISPLAY_DEVICE_ATTACHED_TO_DESKTOP, ENUM_CURRENT_SETTINGS, @@ -19,12 +19,12 @@ use windows::Win32::System::Threading::GetCurrentThreadId; use windows::Win32::UI::WindowsAndMessaging::{ CallNextHookEx, CreateWindowExW, DispatchMessageW, GetMessageW, PostThreadMessageW, - RegisterClassW, SetWindowsHookExW, TranslateMessage, EDD_GET_DEVICE_INTERFACE_NAME, HHOOK, - HMENU, HOOKPROC, KBDLLHOOKSTRUCT, LLKHF_EXTENDED, MSG, MSLLHOOKSTRUCT, WH_KEYBOARD_LL, - WH_MOUSE_LL, WINDOW_STYLE, WM_DISPLAYCHANGE, WM_KEYDOWN, WM_KEYUP, WM_LBUTTONDOWN, - WM_LBUTTONUP, WM_MBUTTONDOWN, WM_MBUTTONUP, WM_MOUSEHWHEEL, WM_MOUSEMOVE, WM_MOUSEWHEEL, - WM_RBUTTONDOWN, WM_RBUTTONUP, WM_SYSKEYDOWN, WM_SYSKEYUP, WM_USER, WM_XBUTTONDOWN, - WM_XBUTTONUP, WNDCLASSW, WNDPROC, + RegisterClassW, SetWindowsHookExW, TranslateMessage, EDD_GET_DEVICE_INTERFACE_NAME, HOOKPROC, + KBDLLHOOKSTRUCT, LLKHF_EXTENDED, MSG, MSLLHOOKSTRUCT, WH_KEYBOARD_LL, WH_MOUSE_LL, + WINDOW_STYLE, WM_DISPLAYCHANGE, WM_KEYDOWN, WM_KEYUP, WM_LBUTTONDOWN, WM_LBUTTONUP, + WM_MBUTTONDOWN, WM_MBUTTONUP, WM_MOUSEHWHEEL, WM_MOUSEMOVE, WM_MOUSEWHEEL, WM_RBUTTONDOWN, + WM_RBUTTONUP, WM_SYSKEYDOWN, WM_SYSKEYUP, WM_USER, WM_XBUTTONDOWN, WM_XBUTTONUP, WNDCLASSW, + WNDPROC, }; use input_event::{ @@ -128,7 +128,7 @@ thread_local! { fn get_msg() -> Option { unsafe { let mut msg = std::mem::zeroed(); - let ret = GetMessageW(addr_of_mut!(msg), HWND::default(), 0, 0); + let ret = GetMessageW(addr_of_mut!(msg), None, 0, 0); match ret.0 { 0 => None, x if x > 0 => Some(msg), @@ -176,14 +176,15 @@ fn start_routine( /* register hooks */ unsafe { - let _ = SetWindowsHookExW(WH_MOUSE_LL, mouse_proc, HINSTANCE::default(), 0).unwrap(); - let _ = SetWindowsHookExW(WH_KEYBOARD_LL, kybrd_proc, HINSTANCE::default(), 0).unwrap(); + let _ = SetWindowsHookExW(WH_MOUSE_LL, mouse_proc, None, 0).unwrap(); + let _ = SetWindowsHookExW(WH_KEYBOARD_LL, kybrd_proc, None, 0).unwrap(); } let instance = unsafe { GetModuleHandleW(None).unwrap() }; + let instance = instance.into(); let window_class: WNDCLASSW = WNDCLASSW { lpfnWndProc: window_proc, - hInstance: instance.into(), + hInstance: instance, lpszClassName: w!("lan-mouse-message-window-class"), ..Default::default() }; @@ -213,9 +214,9 @@ fn start_routine( 0, 0, 0, - HWND::default(), - HMENU::default(), - instance, + None, + None, + Some(instance), None, ) .expect("CreateWindowExW"); @@ -312,7 +313,7 @@ unsafe extern "system" fn mouse_proc(ncode: i32, wparam: WPARAM, lparam: LPARAM) /* no client was active */ if !active { - return CallNextHookEx(HHOOK::default(), ncode, wparam, lparam); + return CallNextHookEx(None, ncode, wparam, lparam); } /* get active client if any */ @@ -337,7 +338,7 @@ unsafe extern "system" fn mouse_proc(ncode: i32, wparam: WPARAM, lparam: LPARAM) unsafe extern "system" fn kybrd_proc(ncode: i32, wparam: WPARAM, lparam: LPARAM) -> LRESULT { /* get active client if any */ let Some(client) = ACTIVE_CLIENT.get() else { - return CallNextHookEx(HHOOK::default(), ncode, wparam, lparam); + return CallNextHookEx(None, ncode, wparam, lparam); }; /* convert to key event */ @@ -388,7 +389,10 @@ fn enumerate_displays(display_rects: &mut Vec) { if ret == FALSE { break; } - if device.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP != 0 { + if device + .StateFlags + .contains(DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) + { devices.push(device.DeviceName); } }