MCPcopy Create free account
hub / github.com/MaaXYZ/MaaFramework / MouseHookProc

Method MouseHookProc

source/MaaWin32ControlUnit/Input/MessageInput.cpp:540–559  ·  view source on GitHub ↗

WH_MOUSE_LL 钩子回调:累加硬件鼠标位移 delta 并拦截,由追踪线程按固定帧率批量释放

Source from the content-addressed store, hash-verified

538
539// WH_MOUSE_LL 钩子回调:累加硬件鼠标位移 delta 并拦截,由追踪线程按固定帧率批量释放
540LRESULT CALLBACK MessageInput::MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam)
541{
542 if (nCode != HC_ACTION || wParam != WM_MOUSEMOVE) {
543 return CallNextHookEx(NULL, nCode, wParam, lParam);
544 }
545
546 // 在关键初始化窗口期间,直接吞掉所有鼠标移动
547 if (hook_block_mouse_.load()) {
548 return 1;
549 }
550
551 auto* mouse_info = reinterpret_cast<MSLLHOOKSTRUCT*>(lParam);
552 auto* inst = s_active_instance_.load();
553 if (!inst || !inst->handle_hardware_mouse_move(*mouse_info)) {
554 return CallNextHookEx(NULL, nCode, wParam, lParam);
555 }
556
557 // 拦截原始硬件鼠标移动(稍后由追踪线程通过 SetCursorPos 一次性释放累积量)
558 return 1;
559}
560
561void MessageInput::open_target_process()
562{

Callers

nothing calls this directly

Calls 2

loadMethod · 0.45

Tested by

no test coverage detected