Mousehook1.cpp
上传用户:qzzxgm
上传日期:2009-12-14
资源大小:1882k
文件大小:1k
源码类别:

书籍源码

开发平台:

Visual C++

  1. // Mousehook1.cpp: implementation of the CMousehook class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "Mousehook1.h"
  6. #ifdef _DEBUG
  7. #undef THIS_FILE
  8. static char THIS_FILE[]=__FILE__;
  9. #define new DEBUG_NEW
  10. #endif
  11. //////////////////////////////////////////////////////////////////////
  12. // Construction/Destruction
  13. //////////////////////////////////////////////////////////////////////
  14. #pragma data_seg("mydata")
  15. HWND glhPrevTarWnd=NULL;//上次鼠标所指的窗口句柄
  16. HWND glhDisplayWnd=NULL;//显示目标窗口标题编辑框的句柄
  17. HHOOK glhHook=NULL;//安装的鼠标勾子句柄
  18. HINSTANCE glhInstance=NULL;//DLL实例句柄
  19. #pragma data_seg()
  20. CMousehook::CMousehook()
  21. {
  22. }
  23. CMousehook::~CMousehook()
  24. {
  25. stophook();
  26. }
  27. BOOL CMousehook::starthook(HWND hWnd)
  28. {
  29. //安装钩子并设定接收显示窗口句柄
  30. BOOL bResult=FALSE;
  31. glhHook=SetWindowsHookEx(WH_MOUSE,MouseProc,glhInstance,0);
  32. if(glhHook!=NULL)
  33. bResult=TRUE;
  34. //设置显示目标窗口标题编辑框的句柄
  35. glhDisplayWnd=hWnd;
  36. return bResult;
  37. }
  38. BOOL CMousehook::stophook()
  39. {
  40. //卸载钩子
  41. BOOL bResult=FALSE;
  42. if(glhHook)
  43. bResult= UnhookWindowsHookEx(glhHook);
  44. if(bResult)
  45. {
  46. glhPrevTarWnd=NULL;
  47. glhDisplayWnd=NULL;//清变量
  48. glhHook=NULL;
  49. }
  50. return bResult;
  51. }