Subclassing &
Hooking with
Visual Basic offers
developers a unique way to customize
Windows behavior.
Windows is a message-based
system. Every action a user
requests creates one or more messages to carry out the
action. These messages are passed between objects and carry
with them information that gives the recipient more detail
on how to interpret and act upon the message.
With
Subclassing and the Windows hooking mechanism
("hooks"), a developer can manipulate, modify, or even
discard messages bound for other objects within the
operating system, in the process changing the way the
system behaves. What kinds of results can developers
achieve using the power of subclassing and hooking? Here
are just a few of the possibilities:
Determine when a window is being activated or deactivated
and respond to this change.
Display descriptions of menu items as the mouse moves
across them.
Disallow a user to move or resize a window.
Determine where the mouse cursor is and respond
accordingly.
Determine when the display resolution has been changed.
Monitor the system for a low system resource condition.
Modify or disallow keystrokes sent to a window or a
control.
Create an automated testing application.
Determine when an application is idle.
Along with this power comes responsibility; Windows is very
unforgiving if subclassing and hooking are used
incorrectly. Subclassing & Hooking with Visual
Basic
demonstrates the various techniques for intercepting
messages bound for one or more windows or controls:the
intercepted message can be left in its original state or
modified; afterwards, the message can be sent to its
original destination or discarded.
Subclassing & Hooking with Visual Basic opens up a
wealth of possibilities to the Visual Basic
developer—possibilities that ordinarily are
completely unavailable, or at least not easy to implement.
Contents
- Preface
- Introducing Subclassing and Hooking
- Introduction
- Windows System-Specific Information
- The Basics of Subclassing and Hooks
- Subclassing and Superclassing
- Subclassing
- Subclassing the Windows Common Dialog Boxes
- ActiveX Controls and Subclassing
- Superclassing
- Debugging Techniques for Subclassing
- Hooking
- WH_CALLWNDPROC
- WH_CALLWNDPROCRET
- WH_GETMESSAGE
- WH_KEYBOARD and WH_KEYBOARD_LL
- WH_MOUSE and WH_MOUSE_LL
- WH_FOREGROUNDIDLE
- WH_MSGFILTER
- WH_SYSMSGFILTER
- WH_SHELL
- WH_CBT
- WH_JOURNALRECORD
- WH_JOURNALPLAYBACK
- WH_DEBUG
- The .NET Platform
- Implementing Hooks in VB.NET
- Appendixes
- Index