Skip to Content
Subclassing and Hooking with Visual Basic
book

Subclassing and Hooking with Visual Basic

by Stephen Teilhet
June 2001
Intermediate to advanced
706 pages
24h 10m
English
O'Reilly Media, Inc.
Content preview from Subclassing and Hooking with Visual Basic

How Common Dialog BoxSubclassing Works

Subclassing a common dialog box is not as easy as subclassing a window. A few extra steps are involved. The four main steps are:

  1. Create a child dialog template resource.

  2. Package this resource in a dynamic link library (DLL), optional

  3. Create a hook procedure that will intercept messages for the common dialog box.

  4. Use the API function in the comdlg32.dll file to create the modified common dialog.

I will be using the term dialog procedure instead of “window procedure” to describe the message processing function for the common dialog box. These two types of procedures, for all practical purposes, are the same. One small difference is that the dialog procedure sends all unprocessed messages to the DefDlgProc function, whereas the window procedure sends all unprocessed messages to the DefWindowProc function.

Using the COMDLG32.DLL

Before going any further with subclassing common dialogs, we will see how to use the comdlg32.dll APIs. The common dialog that we use for subclassing must be created with the comdlg32.dll API instead of with the ActiveX Common Dialog control (comdlg32.ocx). The consequence of using the DLL instead of the ActiveX control (OCX) is mainly added complexity: all the details that the OCX hid from us are now up to us to handle. The good thing is that there is no longer a performance penalty for having to load the comdlg32.ocx, and this file will not have to be shipped along with your final application.

The common dialog box relies ...

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

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

COM+ Programming with Visual Basic

COM+ Programming with Visual Basic

Jose Mojica
Windows Forms 2.0 Programming

Windows Forms 2.0 Programming

Chris Sells, Michael Weinhardt
Programming in the .NET Environment

Programming in the .NET Environment

Damien Watkins, Mark Hammond, Brad Abrams

Publisher Resources

ISBN: 0596001185Errata Page