Skip to content

键鼠监听回调类型 - InputMonitorCallback

类型简介

InputMonitorCallback 用于 SetInputMonitor 注册键鼠事件监听。在工作线程可能触发,须快进快出;禁止在回调内重入同实例的 EnableInputSync / InputRecord / InputSyncLink / InputPlayback

类型定义

cpp
typedef void (OLA_CALL_TYPE *InputMonitorCallback)(
    int64_t instance,
    int32_t type,          // OLAInputEventType
    int32_t source,        // OLAInputEventSource
    int32_t vk_or_button,
    int32_t x,
    int32_t y,
    int32_t wheel_delta,
    int32_t flags,         // OLAInputEventFlags
    int64_t seq,
    int64_t t_ms,
    int64_t user_data);

参数说明

参数名类型说明
instance长整数型触发事件的 OLAPlug 对象指针。
type整数型事件类型,见下表。
source整数型事件来源,见下表。
vk_or_button整数型键盘虚拟键码或鼠标按键。
x整数型鼠标 X;RELATIVE 时为相对位移 rx。
y整数型鼠标 Y;RELATIVE 时为相对位移 ry。
wheel_delta整数型滚轮增量。
flags整数型标志位,见下表。
seq长整数型事件序号。
t_ms长整数型相对时间(毫秒)。
user_data长整数型SetInputMonitor 注册时传入的上下文,可为 0。

常用 type

含义
1key_down
2key_up
3mouse_move(绝对或相对,见 flags)
4mouse_down
5mouse_up
6mouse_wheel

常用 source

含义
1host_api
2fg_real
3playback
4sync_replay

flags 位

含义
0x1TRAJECTORY(绝对 MoveTo 轨迹)
0x2RELATIVE(MoveR,x/y 为 rx/ry)

注意事项

项目说明
快进快出回调可能在非调用线程触发,须快速返回,禁止阻塞 IO。
禁止重入回调内不要调用同实例的 EnableInputSync / InputRecord / InputSyncLink / InputPlayback
仅本地SetInputMonitor 仅本地进程 有效,远程实例不支持函数指针。

相关接口