Ported it to .NET 2.0
Restructured the architecture and internal design
Improved the loader interface to support streaming
Implemented an awesome caching mechanism
Allow for images to come from the file system, bitmap objects, or raw binary data
Implemented the ability to switch between loaders at runtime
Improved the user input and resizing control, implemented multi-selection
It has a pluggable loader interface, but the example for the book comes with two versions: Native GDI+ and Managed Direct3D. GDI+ is obvious, as it just uses System.Drawing and System.Drawing.Imaging. But the Direct3D one is quite clever. It creates a reference device using the window handle of the texture browser control and uses that to load textures like DDS, DXT, etc.. Afterwards the device can be disposed of if wanted. Being a reference device, hardly any resources are consumed by Managed Direct3D and there is no real performance difference between the GDI+ version and the Managed Direct3D version.
Finally, here is a screenshot to whet your appetite!