Shell.BrowseForFolder method

Creates a dialog box that enables the user to select a folder and then returns the selected folder's Folder object.


retVal = Shell.BrowseForFolder(
  [ vRootFolder ]

Shell.BrowseForFolder( _
  ByVal Hwnd As Integer, _
  ByVal sTitle As BSTR, _
  ByVal iOptions As Integer, _
  [ ByVal vRootFolder As Variant ] _


Hwnd [in]

Type: Integer

The handle to the parent window of the dialog box. This value can be zero.

sTitle [in]

Type: BSTR

A String value that represents the title displayed inside the Browse dialog box.

iOptions [in]

Type: Integer

An Integer value that contains the options for the method. This can be zero or a combination of the values listed under the ulFlags member of the BROWSEINFO structure.

vRootFolder [in, optional]

Type: Variant

The root folder to use in the dialog box. The user cannot browse higher in the tree than this folder. If this value is not specified, the root folder used in the dialog box is the desktop. This value can be a string that specifies the path of the folder or one of the ShellSpecialFolderConstants values. Note that the constant names found in ShellSpecialFolderConstants are available in Visual Basic, but not in VBScript or JScript. In those cases, the numeric values must be used in their place.

Return value


Type: FOLDER**

An object reference to the selected folder's Folder object.


Type: FOLDER**

An object reference to the selected folder's Folder object.


The following example uses BrowseForFolder to display a browse window titled "Example" rooted at the Windows folder. Proper usage is shown for JScript, VBScript, and Visual Basic.


<script language="JScript">
    function fnShellBrowseForFolderJ()
        var objShell = new ActiveXObject("shell.application");
        var ssfWINDOWS = 36;
        var objFolder;
        objFolder = objShell.BrowseForFolder(0, "Example", 0, ssfWINDOWS);
        if (objFolder != null)
            // Add code here.


<script language="VBScript">
    function fnShellBrowseForFolderVB()
        dim objShell
        dim ssfWINDOWS
        dim objFolder
        ssfWINDOWS = 36
        set objShell = CreateObject("shell.application")
            set objFolder = objShell.BrowseForFolder(0, "Example", 0, ssfWINDOWS)
                if (not objFolder is nothing) then
                    'Add code here.
                end if
            set objFolder = nothing
        set objShell = nothing
    end function

Visual Basic:

Private Sub fnShellBrowseForFolderVB()
    Dim objShell   As Shell
    Dim ssfWINDOWS As Long
    Dim objFolder  As Folder
    ssfWINDOWS = 36
    Set objShell = New Shell
        Set objFolder = objShell.BrowseForFolder(0, "Example", 0, ssfWINDOWS)
            If (Not objFolder Is Nothing) Then
                'Add code here
            End If
        Set objFolder = Nothing
    Set objShell = Nothing
End Sub


Requirement Value
Minimum supported client
Windows 2000 Professional, Windows XP [desktop apps only]
Minimum supported server
Windows 2000 Server [desktop apps only]
Shell32.dll (version 4.71 or later)