Part III. Hooking

This section devotes individual chapters to the following hooks:

WH_CALLWNDPROC

Intercepts messages sent using the SendMesssage API function

WH_CALLWNDPROCRET

Intercepts messages after they have been processed by their window procedure

WH_CBT

Used to create Computer Based Training (CBT) applications

WH_DEBUG

Intercepts calls to an installed hook’s filter function

WH_FOREGROUNDIDLE

Called when an application is about to enter an idle state

WH_GETMESSAGE

Intercepts posted (and not sent) messages

WH_JOURNALPLAYBACK

Posts prerecorded messages to the raw input thread’s message queue so that they may be processed (“played back”) by the system.

WH_JOURNALRECORD

Intercept mouse, keyboard, and other hardware messages received by the system

WH_KEYBOARD and WH_KEYBOARD_LL

Intercepts keyboard messages

WH_MOUSE and WH_MOUSE_LL

Intercept mouse messages

WH_MSGFILTER

Intercepts sent messages produced by menus, dialog boxes, message boxes, and scroll bars

WH_SYSMSGFILTER

Intercepts sent messages produced by menus, dialog boxes, message boxes, and scroll bars on a system-wide basis

WH_SHELL

Intercepts messages that notify an application of actions occurring to it either through user intervention or through a change in the system’s state

Each chapter will discuss a hook in detail. The chapters will begin by discussing the hook and providing relevant background information. I will use examples to aid in these discussions. Each chapter will end with a discussion of the problems ...

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.