Welcome to the O'Reilly Press Room
oreilly.comO'Reilly Network
ConferencesSoftwareInternationalSafari: Books Online

Arrow Search
Arrow Product List
Arrow Press Room
Arrow Jobs
Resource
Centers

Arrow
Perl
Java
Web & Internet
Open Source
XML
Linux
Unix
Python
Macintosh
Windows
.NET
Oracle
Security
Sys/Network Admin
C/C++ Programming
Design & Graphics
Visual Basic
Special
Interest

Arrow
Ask Tim
Frankly Speaking
Ron's VB Forum
Beta Chapters
Letters
elists
Events
Palm OS
Missing Manual
User Groups
Catalog Request
Specials
Write for Us
Patient-Centered
Guides
O'Reilly

June 26, 2001

O'Reilly Author Helps VB Developers Explore the Hidden Power of Subclassing and Hooking

Sebastopol, CA--Windows is essentially a messaging system: every user action creates one or more messages to carry out the action. Clicking a button control is a good example, as author Stephen Teilhet explains in his new book, Subclassing & Hooking with Visual Basic (O'Reilly, US $49.95). In addition to generating the message for the mouse button click, the action produces a wide array of other messages, including messages to repaint the button in its depressed state, messages to determine the state of the mouse cursor, and others. The way it works is not unlike the way a simple action of your hand sends sensory information, or messages, from your motor nerves to your brain. Neurons in your brain receive and analyze the information, then pass other messages on to trigger appropriate actions. In just this way, a simple action in Windows can produce an astonishing flurry of messages to carry out the actions of the operating system.

Subclassing and the Windows hooking mechanism are two very powerful techniques that operate on messages within the Windows messaging system. As Teilhet explains, "Simply put, subclassing and hooking involve the interception of messages. Being able to examine and manipulate messages allows developers to have more control over their applications as well as the operating system. For example, when a window is being resized, several different types of messages are being sent to that window. With subclassing, the developer can control how and if the user can resize or move the window by intercepting and modifying a few of these messages." According to Teilhet, the Windows operating system has hundreds of messages it can send to a window. Using subclassing and hooking, developers can control or manipulate any of these messages to achieve their desired results.

Teilhet also explains that responsibility accompanies the power that subclassing and hooking give developers. He cautions, "It's up to the developer to make sure that he or she is using these techniques correctly. Windows is very unforgiving if these techniques are used incorrectly."

Teilhet guides developers through the basics of these techniques and well beyond, beginning with a thorough introduction to the Windows messaging system. He proceeds with a detailed discussion of the methods of intercepting and handling Windows messages, including the differences between subclassing and hooking. Subclassing techniques deal with intercepting messages bound for one or more windows or controls. The messages are intercepted before they reach their destination window. Hooking also deals with intercepting messages, but with a much broader scope than subclassing. Hooking allows a developer to intercept messages at various set points within the operating system.

Teilhet has written this book primarily for VB and VB.NET developers, but adds that developers using other languages such as C/C++/Managed C++, C# or even Borland's Delphi will be able to get a better understanding of how subclassing and hooking operate at a lower level. "This is a very advanced book," Teilhet says, "but I have written and organized it so that anyone from the beginner to the more advanced developer who wants a deeper understanding of VB, VB.NET, the Windows messaging system, subclassing, and hooking can obtain that information without becoming confused or having to buy other books."

Teilhet adds that many of the rules outlined in his book for writing good subclassing and hooking code carry over to VB.NET from VB5 and VB6. The author also discusses WinForm and delegates as they are used in VB.NET. C# developers will find that this information is easily ported from VB.NET to C#.

Online Resources:

Subclassing & Hooking with Visual Basic
By Stephen Teilhet
June 2001
ISBN 0-596-00118-5, 685 pages, $49.95 (US)
order@oreilly.com
1-800-998-9938

Return to the: O'Reilly Press Room

Contacts:
CUSTOMER INQUIRIES
Sales/Customer Service
(707) 829-0515
order@oreilly.com

PRESS QUERIES ONLY
Contact Kathryn Barrett
(707) 829-0515 ext. 387
kathrynb@oreilly.com


oreilly.com Home | O'Reilly Bookstores | How to Order | O'Reilly Contacts
International | About O'Reilly | Affiliated Companies | Privacy Policy

© 2001, O'Reilly & Associates, Inc.
webmaster@oreilly.com