WH_CALLWNDPROC钩子监视SendMessage消息的传递,不管是系统内部调用的SendMessage()函数还是用户进程中调用的SendMessage()函数。
SendMessage()把消息直接交给窗口过程WndProc()来处理,WndProc()处理完消息后SendMessage()函数才返回(return resultValue;).
如果设置了WH_CALLWNDPROC类型的钩子,则当SendMessage()把消息交给WndProc时,在WndProc尚未执行前,系统调用CallWndProc钩子函数,钩子函数执行后才执行窗口过程WndProc。
WH_CALLWNDPROC只能监视消息而不能修改
一般来说,键盘消息与鼠标消息都是通过PostMessge函数寄送到程序消息队列中的,所以WH_CALLWNDPROC拦截不了。
个人理解,不一定正确,特别声明!
本文详细介绍了WH_CALLWNDPROC钩子的功能及其工作原理。WH_CALLWNDPROC用于监视通过SendMessage传递的消息,无论这些消息是由系统内部调用还是由用户进程调用。当SendMessage将消息传递给窗口过程WndProc时,若设置了WH_CALLWNDPROC钩子,系统会在WndProc执行前先调用CallWndProc钩子函数。
907

被折叠的 条评论
为什么被折叠?



