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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access