Incredibly, I haven’t got a chance to blog about the Windows API Code Pack yet – even though it’s been out on MSDN Code Gallery for a couple of months already. It’s an open source .NET library which provides interop wrappers to Windows 7 (and Windows Vista) features. In fact, it would be unfair to say that these are wrappers – some of the features are organized and designed to make access from managed code significantly easier than from the native Win32/COM counterparts.
By the time of this writing, there are already several extensive posts on the features covered by the Windows API Code Pack, so I would rather refer you to them instead of rehashing:
- Windows 7 Blog for Developers – Windows 7 Managed Code APIs
- Windows SDK Blog – Windows API Code Pack
The latest release of the Windows API Code Pack (version 0.90) is fairly close to stable, and is feature-complete with regard to several areas of the Windows 7 APIs. Specifically, the latest release incorporates the following features of the Windows 7 taskbar, my pet feature:
- Jump lists, including user tasks, custom categories and known categories
- Icon overlays and progress bars, including a multi-window progress bar which incorporates progress information from multiple windows which share the same taskbar button (and app ID)
- Thumbnail toolbars, including support for separate thumbnail toolbars for individual thumbnails in the same application
- Thumbnail customization, clipping, live preview and tabbed thumbnails (window switchers)
These features are up-to-date with the latest Windows 7 RC changes from Beta, which I will briefly cover in a future post. There are a couple of things that didn’t work smoothly for me – for example, there is a bug with thumbnail toolbars when using them in a 64-bit process. However, I’m sure these things will be sorted out by the time v1.0 is released.
There are also significant updates in other areas – Direct2D, DirectWrite, WIC, Sensor platform, and other Windows 7 APIs. The library is definitely worth checking out, and it’s time that we start phasing out the sample wrappers developed during the past few months. It’s been a great time, but it’s also about time that these samples are replaced by a properly tested library, which seems to have potential for support at some point in the future.