Win32程序对不同类型Message的处理过程不一样,对于Post过来的Message(通过PostMessage发送),会由GetMessage来处理,对于Send过来的Message(通过SendMessage发送),则由CallWndProc来处理,并在处理完成后执行CallWndRetProc,所以要HOOK并区分这两种Message需要同时处理三个HOOK:WH_GETMESSAGE、WH_CALLWNDPROC和WH_CALLWNDPROCRET。
所以:
1、'P': 通过WH_GETMESSAGE可以得到PostMessage发送的Message
2、'S': 通过WH_CALLWNDPROC可以得到SendMessage发送的Message
3、'R': 通过WH_CALLWNDPROCRET则可以得到SendMessage的结果,也就是你要的IResult
1