窗口创建和消息循环
先来说一下Windows两个经典的机制:回调、钩子。
回调是指程序员自己定义函数,在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
钩子:当每次发生您感兴趣的事件时,WINDOWS钩子优先获得消息。许多木马程序就是由钩子实现的。
消息定义:在Windows中发生的一切都可以用消息来表示,消息用于告诉操作系统发生了什么,所有的Windows应用程序都是消息驱动的。一个消息是由消息的名称(UINT)和两个参数(WPARAM, LPARAM)组成。消息的参数中包含有重要的信息。例如对鼠标消息而言,LPARAM中一般包含鼠标的位置信息,而WPARAM参数中包含了发生该消息时,SHIFT、CTRL等键的状态信息,对于不同的消息类型来说,两个参数也都相应地具有明确意义。
在Win32中,注册窗口类时,WNDCLASSEX结构体的lpfnWndProc成员指向一个回调函数,进行Windows消息的处理。Win32中消息定义和指定回调函数的原型