A Thread-Specific Example
The example presented here shows in more detail how to set up and use this hook. A
single window is created in this example, which is shown in Figure 9-2. Table 9-1 defines the
nondefault properties of the form and its controls. This window has a
hook and an unhook button in the CALLWNDPROC
frame. You use these buttons to install and remove the hook.
Table 9-1. Nondefault Property Values for the Form and Its Controls
Control |
Property |
Value |
---|---|---|
Form |
Caption |
WH_CALLWNDPROC Hook Test |
cmdSendMsg |
Caption |
SendMsg |
cmdSendMsgTO |
Caption |
SendMsgTO |
cmdPostMessage |
Caption |
PostMessage |
cmdSendMsgCB |
Caption |
SendMsgCB |
cmdBroadcastMsg |
Caption |
BroadcastMsg |
cmdSendDlgMsg |
Caption |
SendDlgMsg |
Frame1 |
Caption |
CallWndProc |
Text1 |
MultiLine |
True |
Each button’s functionality is defined as follows:
- SendMsg
Calls the SendMessage function.
- SendMsgNotify
Calls the SendNotifyMessage function.
- SendMsgTO
Calls the SendMessageTimeout function.
- SendMsgCB
Calls the SendMessageCallback function. The callback function is called DummyCallback and is located in the Module2.bas file.
- SendDlgMsg
Calls the SendDlgItemMessage function.
- BroadcastMsg
Calls the BroadcastSystemMessage function.
- PostMessage
Calls the PostMessage function.
You use the text box on this window to display the values of
parameters passed to the WH_CALLWNDPROC
filter
function.
Figure 9-2. Screenshot of the WH_CALLWNDPROC ...
Get Subclassing and Hooking with Visual Basic now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.