主题
鼠标位置回调类型 - MousePosCallback
类型简介
MousePosCallback 用于向插件返回 游戏内真实鼠标坐标(与 MoveTo 参数同一坐标系)。插件在 真实轨迹 MoveTo 的终点判断中读取该坐标,与 GetCursorPos 返回的系统坐标求差后矫正移动目标。
不影响 GetCursorPos 的返回值。
类型定义
cpp
typedef int64_t (OLA_CALL_TYPE* MousePosCallback)(int64_t user_data);参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_data | 长整数型 | SetMousePosCallback 注册时传入的上下文,可为 0。 |
返回值
| 返回值 | 含义 |
|---|---|
-1 | 无效(OLA_POINT_INVALID),本次不矫正,走原 MoveTo 逻辑 |
非 -1 | 有效坐标,格式为 PackPoint 打包结果 |
坐标系与 MoveTo / GetCursorPos 一致:
- 已 BindWindow:绑定窗口 客户区 坐标
- 未绑定:屏幕 坐标
- VNC + SetClientLocation:客户区坐标
配套工具函数
回调返回值请使用 PackPoint / UnpackPoint 系列接口打包解包,禁止 使用 LOWORD / HIWORD(负坐标会出错)。
注意事项
- 回调在 MoveTo 轨迹线程中 同步 调用,须快速返回(建议 < 1ms),禁止阻塞 IO。
- 回调内 不要 再调用 MoveTo,避免死锁。
- SetMousePosCallback 仅本地进程 有效,远程实例不支持函数指针。
- 销毁 OLA 对象时会自动 ClearMousePosCallback。
