debugging

This commit is contained in:
crusader 2020-12-16 19:05:33 +09:00
parent 898f50ecec
commit 0468d32bc1
3 changed files with 17 additions and 10 deletions

View File

@ -20,12 +20,13 @@ pub enum EventType {
MouseMoveTo { x: f64, y: f64 },
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
pub struct Event {
pub time: SystemTime,
pub event_type: EventType,
}
pub type HookCallback = fn(event: Event);
// pub type HookCallback = fn(event: Event);
pub type HookCallback = for<'a> fn(&'a Event);
pub struct Robot;

View File

@ -262,7 +262,9 @@ fn default_callback(event: Event) {
}
static KEYBOARD_HHOOK: Lazy<AtomicPtr<HHOOK__>> = Lazy::new(AtomicPtr::default);
static mut HOOK_CALLBACK: HookCallback = default_callback;
static mut HOOK_CALLBACK: HookCallback = |event| {
default_callback(*event);
};
impl Robot {
pub unsafe fn key_listen(callback: HookCallback) -> Result<(), windows::HookError> {
@ -287,7 +289,9 @@ impl Robot {
}
}
HOOK_CALLBACK = default_callback;
HOOK_CALLBACK = |event| {
default_callback(*event);
};
Ok(())
}
@ -375,7 +379,7 @@ impl Robot {
event_type,
time: SystemTime::now(),
};
HOOK_CALLBACK(event);
HOOK_CALLBACK(&event);
}
}
CallNextHookEx(null_mut(), code, w_param, l_param)

View File

@ -24,7 +24,9 @@ fn default_callback(event: Event) {
}
static MOUSE_HHOOK: Lazy<AtomicPtr<HHOOK__>> = Lazy::new(AtomicPtr::default);
static mut HOOK_CALLBACK: HookCallback = default_callback;
static mut HOOK_CALLBACK: HookCallback = |event| {
default_callback(*event);
};
impl Robot {
pub unsafe fn mouse_listen(callback: HookCallback) -> Result<(), windows::HookError> {
@ -49,7 +51,9 @@ impl Robot {
}
}
HOOK_CALLBACK = default_callback;
HOOK_CALLBACK = |event| {
default_callback(*event);
};
Ok(())
}
@ -219,15 +223,13 @@ impl Robot {
_ => None,
};
println!("mouse {:?}", opt);
if let Some(event_type) = opt {
let event = Event {
event_type,
time: SystemTime::now(),
};
HOOK_CALLBACK(event);
HOOK_CALLBACK(&event);
}
}
CallNextHookEx(null_mut(), code, w_param, l_param)