I am the co-author of two major books on programming Microsoft Windows. With Brent Rector, I wrote Win32 Programming (Addison-Wesley, 1997), and with Ed Dekker, I wrote Developing Windows NT Device Drivers (which is also the basis of a course on writing NT Device Drivers that we wrote).
I am also the co-author of the now-out-of-print IDL: The Language and its Implementation (Nestor, Newcomer, Gianinni and Stone), from Prentice-Hall.
In addition to the books, I've published over 70 articles, papers, technical reports, and similar publications. You can see some highlights here.
Scroll down for more information on the books, or click a book title above...
I a list of other Windows books I recommend.
|Win32 Programming (written with Brent Rector) covers the basics of programming the
Microsoft Windows API. We cover the basics of Windows GUI programming, then go into
substantial detail on most of the Windows controls, the graphics operations (GDI), the
mysteries of the Display Context (DC), keyboard and mouse input, printing, advanced topics
in memory management, fonts, all the secrets of writing DLLs, MDI, and synchronization.
All told, the book is over 1,500 pages of detail. It includes a CD-ROM with over 150K
lines of C and C++ source code. This includes the assortment of Explorers, which allow you
to poke and prod at each of the features of the system, such as control actions, font
parameters, etc. Although the book is primarily C-oriented, the core principles
(particularly the graphics and controls) readily transfer to C++/MFC. Sample Explorers are
available on the Download page. You can also look at the
table of contents.
|Developing Windows NT Device Drivers (written with Edward N. Dekker) covers the details of how to write a kernel-mode Windows NT Device Driver. We cover the basic principles of Device Drivers, issues of user API level design (should you use ReadFile/WriteFile or DeviceIoControl?), how to handle either buffered or direct-mapped I/O, basic NT driver architecture (ISR and DPC levels), timers, memory management, DMA, key principles of the ISA and PCI busses, and some advanced (and otherwise undocumented) topics, such as how to map kernel memory or device memory into application space. We even include a preview of the NT 5.0 Device Driver architecture, the Universal Serial Bus (USB) and the Win32 Driver Model (WDM). Other material you won't find anywhere else includes a mapping between the Driver-level error status codes and the codes returned by GetLastError to the user. This book captures much of the expertise of a longtime NT Device Driver author, Edward N. Dekker.|
|Other Windows and programming-related books you might want...|