2012-05-11 95 views
1

下午好。我正在寫一個全局鼠標鉤子。一切似乎都工作得很好,除了只爲第一個鼠標事件調用掛鉤。 一些代碼:Windows掛鉤只被調用一次

// Dll defined function 
    extern "C" Q_DECL_EXPORT LRESULT MouseProc(int code, WPARAM wParam, LPARAM lParam) 
    { 
     qDebug() << "MouseProc"; 
     return TRUE; 
    } 

// Application code 
    ... 
     hLib = LoadLibrary(TEXT("ServerHook.dll")); 
     HOOKPROC hookAddr = (HOOKPROC)GetProcAddress(hLib, "MouseProc"); 
     if (!hookAddr) { 
      qDebug() << "Invalid hook proc " << GetLastError(); 
     } 
     if ((WinInputHook::hookHandle = SetWindowsHookEx(
        WH_MOUSE, hookAddr, hLib, 0)) 
        == NULL) { 
      qDebug() << "Invalid hook handle " << GetLastError(); 
     } 
    ... 

回答