windows提供了几种不同类型的hooks;不同的hook可以处理不同的消息。例如,wh_mouse hook用来监视鼠标消息。
windows为这几种hooks维护着各自的hook链。hook链是一个由应用程序定义的回调函数队列,当某种类型的消息发生时,windows向此种类型的hook链的第一个函数发送该消息,在第一函数处理完该消息后由该函数向链表中的下一个函数传递消息,依次向下。如果链中某个函数没有向下传送该消息,那么链表中后面的函数将得不到此消息。(对于某些类型的hook,不管hook链中的函数是否向下传递消息,与此类型hook联系的所有hook函数都会收到系统发送的消息)
===========================hook过程========================