Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: carbon1 en 27 Julio 2012, 19:07 pm



Título: Hook al mouse [C++]
Publicado por: carbon1 en 27 Julio 2012, 19:07 pm
Buenas a todos. Les comento mi problema.
Tengo un código (dll) el cual les voy a mostrar a continuación en el que instalo un hook al mouse con el api SetWindowsHookEx y WH_MOUSE_LL. El problema es que este recibe los mensajes despúes de que el programa que carga mi dll los haya procesado. Lo que necesito es que mi dll pueda recibir los mensajes antes que los procese la aplicacion que carga esta misma. Según la MSDN debería usar WH_CALLWNDPROC, que se describe justamente como comento (recibe los mensajes antes de ser procesados), pero he tenido varios problemas con esta constante y no he podido llegar a nada.
Si me podrían dar una mano... les agradecería, este es el código:

Código
  1. ...
  2. HHOOK MouseHook;
  3. HINSTANCE hookinst;
  4. ...
  5. LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam)
  6. {
  7.    PKBDLLHOOKSTRUCT k = (PKBDLLHOOKSTRUCT)(lParam);
  8.  
  9.    if (wParam == WM_LBUTTONDBLCLK)
  10.    {
  11.       ...
  12.    }
  13.  
  14.    return CallNextHookEx(MouseHook, nCode, wParam, lParam);
  15. }
  16. ...
  17. BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
  18. {
  19.    if (fdwReason == DLL_PROCESS_ATTACH)
  20.    {
  21.  
  22.        hookinst = hinstDLL;
  23.  
  24.        // Instalo el hook
  25.        MouseHook = SetWindowsHookEx(WH_MOUSE_LL, MouseHookProc, hookinst, 0);
  26.  
  27.        MessageBox(0, TEXT("Hook instalado"), TEXT(""), MB_OK);
  28.    }
  29.    return TRUE; // succesful
  30. }
  31.  

Gracias!