(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
BrowseDialog Server, VB6
BrowseDialog Server, VB5
BrowseDialog Control, VB5
REVISION HISTORY, VB6
v1.00.0006 Oct 30/99
Beta 3, build 0.03.1000
Beta 3, build 0.03.0023
June 23/99: Initial Release
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.
- Added hidden AttributesEx property to
Folder class, allowing the retrieval of specified shell attributes.
- 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
- 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
- The Collapse, Expand and SelectionChange
event descriptions have been changed to correctly read: "... the Cancel parameter can
be set to *True* ..."
- 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.
- 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.
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
Copyright © 1997-2004 Brad Martinez, CCRP