Windows传递消息的顺序是这样的:
在将消息传递给目标窗口之前,如果有要拦截它的处理(例如你想编一个锁鼠标的程序)就会先给该应用处理。(这就是hook(钩子))
该机制可以使你知道特定应用或系统所将要接受的消息,于是我们可以对该消息先做一些处理以影响目标应用或系统对该消息的处理。这就是钩子机制的实质。
比如上面那个锁鼠标的例子,你可以设置一个系统范围的鼠标钩子,然后在该钩子处理中把该消息扔掉,这样一来本应响应该消息的应用就收不到鼠标消息,等于是锁住了鼠标。
在将消息传递给目标窗口之前,如果有要拦截它的处理(例如你想编一个锁鼠标的程序)就会先给该应用处理。(这就是hook(钩子))
该机制可以使你知道特定应用或系统所将要接受的消息,于是我们可以对该消息先做一些处理以影响目标应用或系统对该消息的处理。这就是钩子机制的实质。
比如上面那个锁鼠标的例子,你可以设置一个系统范围的鼠标钩子,然后在该钩子处理中把该消息扔掉,这样一来本应响应该消息的应用就收不到鼠标消息,等于是锁住了鼠标。
HOOK(钩子)过程
由应用程序定义的回调函数,当它的地址被安装到hook链中后我们就称它为HOOK过程。
hook procedure
An application-defined callback function whose address has been installed
in a hook chain. 回调函数
用于同步读取队列中的消息。它是应用程序定义的函数,由MSMQ(也就是MS的消息队列)在
某个消息可用,出现超时或者发生错误时呼叫。
callback function
Used to asynchronously read the messages in a queue. It is an application-defined
function that MSMQ calls when a message is available, a time-out occurs, or an
error occurs.
平台sdk\Windows Base Service\Interprocess Communication\Hooks老兄,msdn是个好东东,几乎有你需要的一切