ccrpminilogo.gif (1886 bytes)  FolderTreeview/VB6
 Download       Control List  
Designer: Brad Martinez
Tuesday, January 06, 2004

Full version
(contains components listed under Download below)

268k (w/6 app demos, 1 web demo, registration utilities and batch files, development typelib and debug dll)

VB6 (any version)

VB6 runtime (any version)


Brad Martinez' VB Programs and Examples

FolderTreeview, VB5
BrowseDialog Server, VB6
BrowseDialog Server, VB5
BrowseDialog Control, VB5

v1.00.0006 Oct 30/99

Beta 3, build  0.03.1000 
July 3/99

Beta 3, build  0.03.0023
June 23/99: Initial Release

FolderTreeview as a HTML objectFolderTreeview Control, Version 1.0

The FolderTreeview (FTV) control is not a standard treeview control, but one that provides functionality nearly identical to the folder tree pane in Explorer - from My Computer to Printers and Control Panel. It provides developers with the ability for his or her program to browse the shell's entire namespace and display the shell's folders in their current state. Though it is implemented directly from comctl32.dll, it exposes and returns many properties and methods similar to that of the TreeView control found in comctl32.ocx.

The FolderTreeview Control is extremely complex requiring over two years of research, development and testing. Painstaking testing of the control's functionality and behaviour has been made on Win95, Win98 and WinNT4, as well as on the latest-available build of Windows 2000.

New features

  • Added hidden AttributesEx property to Folder class, allowing the retrieval of specified shell attributes.

New/Altered Behavior

  • Environment variables are now automatically expanded when specified for the RootFolder and SelectedFolder's Name properties.


  • The RootFolder and SelectedFolder properties now become set correctly after being assigned through the Name property of the Folder class.
  • When the control's AutoUpdate property is set to True, the control now correctly refreshes its contents after the TweakUI applet adds or removes special shell folders on the Desktop folder.
  • The KeyDown and KeyUp events now correctly occur for Alt+Key, F10 and Shift+F10 (the events for these key combinations failed to occur on beta 3 builds only).
  • The control no longer beeps when a folder's checkbox state is toggled with the spacebar.
  • A fatal exception in Comctl32.dll no longer occurs when the FolderTreeview KeyPress event's KeyAscii parameter is set to 0 (cancelling the keystroke).
  • A fatal exception no longer occurs when either a compiled application is closed, or in the VB IDE execution of code is stopped, during the execution of a FolderTreeview control event procedure.
  • The control no longer references the non-existent ccrpftv.hlp file.
  • The Collapse, Expand and SelectionChange event descriptions have been changed to correctly read: "... the Cancel parameter can be set to *True* ..."

NT specific

  • On WinNT4 only, when the RootFolder or SelectedFolder properties are set to a network UNC path, the specified path no longer goes through the Entire Network subfolder, and now takes the path directly through the remote computer's subfolder residing directly under the Network Neighborhood folder.
  • The RootFolder and SelectedFolder properties can now be successfully set to a UNC network path on Windows NT which is running a network client other than the Microsoft Window Network.

Known Issues

  • When the control is running on all versions of WinNT4 and WinNT5/Win2000, and a folder's share attribute is changed (via the folder's Properties window in Explorer), the change is not reflected in the FolderTreeview, nor in subsequent instances of a currently running control. This bug is still unsolved.
  • When the control is used in an application (as opposed to a web page) and run in Windows with at least IE4 installed, Internet URLs do not appear in the treeview under the "Internet Explorer" shell folder. But when the control is run from a web page, or in an application with the WebBrowser control, the URLs do appear when the "Internet Explorer" shell folder is expanded. This is due to the FolderTreeview being able to communicate with the IWebBrowser interface, which the FolderTreeview does not itself implement.
  • When sited in a MDI child Form, the FolderTreeview does not regain focus after losing focus to another window outside of the MDI parent Form. This is due to the FolderTreeview not handling client site interfaces correctly.
  • In design-time, and when sited in another UserControl, the FolderTreeview control begins to run, and is fully functional when activated. The FolderTreeview's Enabled property must be explicitly set to a value corresponding to its host UserControl's Ambient.UserMode property (disabled in design-time, enabled in runtime). This is a design limitation of the Visual Basic language, which the FolderTreeview control was written in.
  • Folders that contain only child folders with the hidden (FILE_ATTRIBUTE_HIDDEN) attribute, will have no button ("+", "-") and cannot be expanded. This is normal shell behaviour.
  • When running on a Novell NetWare network service with long filename support enabled, the FolderTreeview control may incorrectly show share overlay icons, and be unable to correctly evaluate local file system paths when the RootFolder or SelectedFolder properties are being set. This may be specific to subfolders with long filenames residing under locally mapped drive folders.

Included Typelibs and DLLs
Included in the zip is ISHF_Ex.tlb and the debugging dll, Dbgwproc.dll. These are provided as required pieces of the WebBrowser demo project, and do not need to be included for distribution as part of an application using the FTV control.

Included Demos
Six demo projects are included to in the zip in order to demonstrate the functionality and versatility of the control. Screen shots of the demos are provided on this page.

VB6 Service Pack Issues
This control was developed using VB6 with no service pack, so should perform on all versions of VB6.

CCRP RegUtil Installation Utility
Also included in this release is the CCRP RegUtil registration tool written by Brad Martinez. RegUtil provides point-and-click registering and unregistering of ActiveX controls (ocx) servers (dll) and type libraries (tlb). In addition, several .bat files are included to show how to automate the registration process using the CCRP RegUtil.

VB Common Controls Replacement Project FolderTreeview Control
Copyright 1997-2004 Brad Martinez, CCRP