Charles Petzold on writing books, reading books, and exercising the internal UTM

Recent Entries
< PreviousBrowse the ArchivesNext >
Subscribe to the RSS Feed

Why a 6th Edition?

May 25, 2012
Roscoe, N.Y.

Sometimes when I'm getting tired of doing what I'm doing, and consequently eager to finish it up and move on to something else, I'll behave somewhat strangely. Instead of getting bored and lazy and slacking off, I'll double down and work harder than ever to give what I'm doing a definitive conclusion.

An example: Many years ago while attending college, I decided that four years would be it for me. But then I started taking overloads and summer courses so that on the day I graduated, I received a Master of Science degree in addition to the Bachelor of Science. People thought getting two degrees in one day showed real initiative and dedication. But it wasn't like that at all. I just didn't want to go to college any more and I was making sure I got out with as much as possible.

I think I had a similar attitude when I was writing the 5th edition of Programming Windows. Microsoft Press and I had begun planning this edition early in 1997, but Windows betas were delayed somewhat, and I didn't actually begin full-scale work on the book until late in 1997, continuing for much of 1998.

It seemed to me at the time that the 5th edition would be the last for Programming Windows and so I put as much into the book as I could. For a couple years prior, I had been working on a book about bitmap graphics for Windows that I never completed, so I recycled some of that material for Programming Windows. I had done a bunch of columns for PC Magazine on the multimedia extensions to Windows, so that stuff went in as well. If the 5th edition of Programming Windows was going to be the last, it would be a 1,479-page slam-dunk.

And there were good reasons to move on. While waiting for stable Windows betas during 1997, I passed the time by writing the first hundred pages of a rather unusual book I called Code. By early 1998, Microsoft Press had become enthusiastic about publishing Code but I couldn't resume work on that book until the 5th edition of Programming Windows was completed.

I finished writing Code in 1999 and for awhile worked on a sequel called Follow the Data about the evolution of analog and digital communication over the past hundred years. That book didn't quite work out, and in 2000, I began to make the acquaintance of C# and .NET.

C# was love at first site. Here was a language with much of the great syntax of C but with a fully modern approach to object orientation. In conjunction with .NET, developers finally had a strong and extensive foundation for creating robust applications that ran under Windows. Years of wrestling with weird memory models, buffer overruns, array-bounds bugs, and memory leaks in assembly language and C caused me to become a firm believer in managed code and garbage collection.

For over a decade I thought I'd never write another edition of Programming Windows but now I'm working on Programming Windows, 6th edition, and it's all because of Windows 8.

Spend just a few minutes with Windows 8 and whether you love it or hate it, you'll have to admit that it's the biggest change in the Windows user interface since the first Windows release in 1985. Equally as revolutionary is the programming interface: Underneath, it's COM but the surface that's visible to the application programmer, it looks just like .NET, so developers can now write native Windows 8 applications using C# (or alternatively, C++ or JavaScript).

As you begin exploring the Windows 8 application programming interface (called the Windows Runtime or WinRT), you'll find more innovative and modern features, including a much greater emphasis on touch (where the mouse is now treated more like a subset of touch), and the extensive use of asynchronous operations with C# language support. I am also particularly curious about exploring how the Windows 8 "charms" add increased support for integrating an application with the rest of the system.

Windows 8 has engendered much of the same excitement as early Windows, and some similar controversy. Just as old-time users first encountering Windows thought they'd never use a mouse, today's "old timers" are puzzled about touch on the desktop, and question the wisdom of adapting small-screen paradigms to big-screen environments. We're in for another interesting era in computing!

I hope the 6th edition of Programming Windows can help programmers master the intricacies of WinRT just as earlier editions helped out with Win16 and Win32.

My longtime publisher, Microsoft Press, is helping as well by offering an incredible bargain: Rather than spending $50 on the Programming Windows 6th edition ebook when it's published in November, for the next week you can purchase the ebook in advance for $10 and also get as bonus a nearly 300-page Consumer Preview ebook right now, and a Release Preview ebook a couple months from now.

The complete details are on the Microsoft Press blog. To buy the book, just click the link below (or give it a Windows 8 tap).

Programming Windows, 6th edition

Special Price through the End of May 2012!

For just $10, you get:

(1) the Consumer Preview ebook right now
(2) the Release Preview ebook in a couple months
(3) the final ebook in November

Programming Windows 6th edition
Programming Windows 6th Edition
Consumer Preview eBook


It was nice to read the genealogy at the start of "Programming Windows" Sixth Edition. I see that you skipped "Programming Microsoft Windows with C#" and "Applications = Code + Markup: A Guide to the Microsoft Windows Presentation Foundation", which arguably belong in the same family tree. Shame, because counting them would have given a whole new meaning to "Programming Windows 8" :)

— Germán Rodríguez, Fri, 25 May 2012 14:42:22 -0400

But,then, how do I get a autographed copy?

James Curran, Fri, 25 May 2012 16:59:00 -0400

James, I've actually been thinking about this. A few months ago I was working on a EPUB viewer for Windows 8, and I had to put that project aside for awhile, but I've been thinking recently that an EPUB viewer could have a stylus interface for taking notes in a book, and the program could actually store the notations in the EPUB file, which means that this facility could be used for autographing books. I'd be surprised if such a feature didn't exist already in some EPUB viewer. — Charles

pls i need help here. after buying the book from oreilly do i have to download it once or i can download it whenever i want ?

from where can i get the newer version of the book ? can i download it from oreilly ?

finally, is the content of the e-book protected ? or is it a normal pdf i can view on any computer i have ?

my english is bad so pls forgive me

— Frank sedo, Sun, 27 May 2012 06:51:43 -0400

Once you pay for the book, you can download it at any time, or you can download it multiple times. When the new version becomes available, you can download that as well. The file formats are PDF, ePub, and Mobi. The files are not copy-protected. — Charles

Problem solved. Few minutes later after I've wrote my complaint the price changed to $10. Seems that you must wait few minutes after creating new account.

SeeR, Mon, 28 May 2012 04:37:47 -0400

im reading it now and i love it. thank u so much Mr. charles.

— frank sedo, Mon, 28 May 2012 05:10:29 -0400

Hi Charles,

I don't know if you can have the 'Coda' chapter just like your 5th edition Programming Windows: A Midi implementation for C# and WinRT? If yes, it would help a lot for musician/programmer out there like me.


Hung Tran, Tue, 29 May 2012 14:38:51 -0400


I have purchased and read all of your programming books over the years, including this one. The things I have learned from them have enabled me to make a living doing what I love. Thank you.

Your writing style is unique to you. It is easy to follow as it progresses through the various levels of understanding of the problem space. It is how you write. Telling a story about a technology, and teaching us along the way.

My problem is that because you intertwine so many programming nuggets within the examples and narrative that is is sometimes difficult to remember where you used a particular technique or revealed a particular detail about an api. I have found that the book's indexes do not usually allow me to find those things easily. I have to remember that, oh yeah, he was doing an example on fonts and he showed how to bind to static values. Or something similarly arcane, but absolutely needed in other non related examples. Once I have read the book, and understood the concepts that you are trying to get across to the readers, I then want to somehow be able to use the book to get at all of the programming nuggets you put in there, regardless of the example they were used in.

Is there a possibility of creating a second index, or some other reference to the api examples in the book that does not reference the story, but is done in a Programming Reference style? I am not asking you to write a reference book, that is not what you do, but to enable your books to be used as more of a reference book after one has read it as you intended.

That alone would extend the useful life of your books to me, and really is just a "Programmers Reference" index on top of the current content.

Thanks again

Paul, Thu, 21 Jun 2012 08:11:21 -0400

I have this problem myself: Often I need to refresh my memory about something I know I wrote about, and I have to flip through a book in order to find it. I have sometimes throught about the possibility of integrating a reference to my books with the MSDN documentation, but never quite figured out how. Wouldn't it be great to have a little link next to a class or property that would toss you into the appropriage page in the ebook? — Charles


There is a huge amount of detail in your books that is very difficult to extract after the fact. But you know as you are reading it that you really need to remember that nugget somehow.

If it is possible to index those somehow, your books become invaluable as both a learning tool and an easy to use reference.

Paul, Thu, 21 Jun 2012 11:04:24 -0400

Recent Entries
< PreviousBrowse the ArchivesNext >
Subscribe to the RSS Feed

(c) Copyright Charles Petzold