I guess some of you did not expect it anymore, but I’ve released a first release candidate of the ShellBrowserControls library.
The library contains two controls: ShellTreeView and ShellListView. ShellTreeView can be attached to ExplorerTreeView 2.0.0 or newer, ShellListView can be attached to ExplorerListView 1.0.0 RC1 or newer. The setup contains only 1 sample, but it demonstrates how to use ShellBrowserControls, ExplorerListView, ExplorerTreeView, StatusBar, TrackBar and Animation to build a Explorer-like shell browser. The sample does not contain much code, but supports things like dynamically scalable thumbnails (in Vista design!), Tiles view, elevation overlays, drag’n’drop, context menus and much more. It also demonstrates how to mix shell items with user-defined items.
ShellBrowserControls has been designed to hide as much of the ugly shell stuff as possible while letting you customize every detail. If you don’t want to bother with shell programming, you will be happy with this library. If you are a control freak and want to control every part of the shell-browsing, you will be happy with this library as well. The only major feature that is missing is grouping support, i. e. currently there is no group view mode (although ExplorerListView supports it).
ShellBrowserControls makes extensive use of multi-threading. Loading of items, icons, thumbnails, details and columns has been moved to background threads as much as possible, so that the GUI remains responsive even if some loading process takes a long time.
If you have questions about the usage of the library, please use the forum. Some concepts seem to be complicated, but my beta tester already assured, that they are very powerful once you have understood them.
When using the controls, do not forget that tree view features are controlled by ExplorerTreeView, list view features are controlled by ExplorerListView and shell features are controlled by ShellTreeView/ShellListView.
This is the most complex software I have ever written. I did extensive tests, but be aware of bugs.