I've been wanting to delve a bit deeper in win32 programming, and I was wondering what the best book on this subject is. Most people seem to recommend Programming Windows by Charles Petzold, however, the latest version of this book is from 1998 and deals with windows 98. Is it still worth reading or should I try other books? If so, which ones?
If you want to understand what is going on underneath the layers and covers that .NET and other abstractions give you, then, yes, absolutely.
Microsoft has an enviable record of maintaining backward compatibility, so the stuff you learn from Petzold will still be applicable today. But if you see anything relating to the difference between near/far pointers, you can safely ignore that.
You'll be missing some of the modern stuff, such as the theme support for Vista or minor enhancements to the legacy API.
.. and after you are done with that, Windows Via C++, and after that Windows Internals.
The best book I've ever read about win32 programming was "Advanced Windows" by Jeffrey Richter. He goes through a lot of the systems api's and everything has coded examples. I don't write any networking or systems code without using his book as a reference.
“Programs should not transfer data into our out of the clipboard without an explicit instruction from the user.”
— Charles Petzold, Programming Windows 3.1, Microsoft Press, 1992
My favorite quote of all time (I write Clipboard software, and I get burned often by clipboard (ab)use by programmers who don't udnerstand what they're doing because they didn't read it.