Jeffrey Richter's Advanced Windows, 3rd ed.,
is a useful guide to system programming in Win32 in C. The book starts out with advanced topics such as working with Win32 processes and threads, and then moves on to other Win32 kernel objects like heaps and memory-mapped files. The book then explores thread synchronization (and how threads can be made to work effectively in parallel) and explores how to create responsive programs that process messages asynchronously. Chapters on file I/O and device I/O are especially useful for those who need access to the advanced functionality available in Win32. This book presents hard-to-find material clearly, including the structured exception handling model used in Win32 operating systems, and completion ports (which also allow I/O operations to run in the background). An appendix on Win32 fibers will be useful to UNIX system programmers who want to bring their code quickly to Windows. Though the source code is written in C here for widest available audience, the programming strategies and technical information is applicable to C++ programming as well. All in all, this new edition of Advanced Windows is a very useful, readable book that presents in-depth information on several valuable Win32 programming topics. It's worth noting that many of these advanced API calls and features are not easily available to MFC programmers.