TestDll.Asm
上传用户:yoyoxiao
上传日期:2021-10-16
资源大小:31k
文件大小:1k
源码类别:

工具条

开发平台:

Asm

  1. ;#########################################################################
  2. ; Assembler directives
  3. .486
  4. .model flat,stdcall
  5. option casemap:none
  6. ;#########################################################################
  7. ; Include file
  8. include TestDll.inc
  9. .code
  10. ;#########################################################################
  11. ; Common AddIn Procedures
  12. DllEntry proc hInst:HINSTANCE, reason:DWORD, reserved1:DWORD
  13. mov eax, hInst
  14. mov hInstance, eax
  15. mov eax, TRUE
  16. ret
  17. DllEntry Endp
  18. InstallHook proc hWin:DWORD
  19. mov eax,hWin
  20. mov hToolBar,eax
  21. invoke SetWindowsHookEx,WH_MSGFILTER,OFFSET MsgHook,hInstance,0
  22. mov hHook,eax
  23. ret
  24. InstallHook endp
  25. MsgHook proc uses edi code:DWORD,wParam:DWORD,lParam:DWORD
  26. LOCAL pt :POINT
  27. LOCAL mii :MENUITEMINFO
  28. LOCAL pID :DWORD
  29. LOCAL rct :RECT
  30. mov eax,code
  31. test eax,eax
  32. .IF SIGN?
  33. jmp exit
  34. .endif
  35. mov edi,lParam
  36. .IF [edi].MSG.message == WM_MOUSEMOVE
  37. invoke GetCursorPos,ADDR pt
  38. invoke ScreenToClient,hToolBar,ADDR pt
  39. mov eax,pt.y
  40. shl eax,16
  41. mov ecx,pt.x
  42. mov ax,cx
  43. invoke SendMessage,hToolBar,WM_MOUSEMOVE,[edi].MSG.wParam,eax
  44. .ELSEIF [edi].MSG.message == WM_KEYDOWN
  45. .IF wParam == VK_ESCAPE
  46. invoke SendMessage,hToolBar,WM_CANCELMODE,0,0
  47. invoke UnhookWindowsHookEx,hHook
  48. .ENDIF
  49. .endif
  50. exit:
  51. invoke CallNextHookEx,hHook,code,wParam,lParam
  52. ret
  53. MsgHook endp
  54. ;#########################################################################
  55. End DllEntry