The July 2006 issue of MSDN Magazine featured an article I wrote about some new native APIs introduced with Windows Vista. Unfortunately due to the severe space constraints (due to print publication) the article was trimmed down and the sample code in particular was negatively affected to the point where the article provided little more than a light introduction without the level of detail I usually like to provide. So I decided to write a new series of articles on my blog to focus on many of the new APIs introduced in Windows Vista in far more detail. As I’m publishing it online, there will be no space constraints and readers will hopefully find it much more valuable as a resource for development information for Windows Vista.
I will be covering a wide variety of topics including new user interface features, kernel features, networking features, management features, and more. If there are any topics in particular that you’d like me to cover just let me know and I will consider them. I will however not be focusing on those features that fall under the .NET Framework 3.0 umbrella as they are not Vista-specific although I may cover them in other articles outside of this series as I have done in the past.
Before I begin I just want to say a quick word about programming frameworks. Most of the samples I provide make use of ATL to varying degrees. ATL was popularized in the COM era as an awesome framework of light yet powerful class templates for building COM classes, servers and clients. Since then, ATL has grown significantly to include many powerful class templates that have nothing to do with COM directly and simply speed up development in a variety of areas. Microsoft also released the Windows Template Library (WTL) which is really just an extension of ATL and provides invaluable additions to ATL for developing Windows applications. As such I will refer to both ATL and WTL simply as ATL. I don’t use MFC mainly because I consider it to be a legacy framework that is too cumbersome for modern Windows programming. Not to say that MFC cannot be used to target Windows Vista. It’s just a bit more work and detracts from the subject at hand. Finally where appropriate, I will illustrate how the new Windows Vista functionality can be used by managed code.
Before you can start writing code targeting Windows Vista you need to install the latest Windows SDK (previously known as the Platform SDK). I am currently using build 5456 of Windows Vista and have installed the same build of the Windows SDK. If you don’t have access to the latest build you should be able to follow along with the Beta 2 build that is available to MSDN subscribers. Once installed, be sure to add the paths to the Include and Lib directories to your Visual C++ build environment. Open the Visual Studio Options window (Tools menu > Options), navigate to the Projects and Solutions > VC++ Directories branch and add the paths to your SDK Include and Lib directories to the top of the directory lists for the Include files and Library files lists respectively. Also, be sure to add the path to the directory containing the WTL source code to your Include files directory list. There is no need to install the WTL wizards; all you need is the source code. If you don’t have it already, you can download WTL from SourceForge.
With the introduction out the way, I hope you enjoy this new series and I look forward to your comments.
Part 1: Aero Wizards
Part 2: Task Dialogs in Depth
Part 3: The Desktop Window Manager
Supplement: Controls and the Desktop Window Manager
Part 4: User Account Control
Part 5: Getting Started With Server Core
Part 6: The New File Dialogs