IShellDispatch.BrowseForFolder 方法

创建一个对话框,使用户能够选择文件夹,然后返回所选文件夹的 Folder 对象。

语法

retVal = IShellDispatch.BrowseForFolder(
  Hwnd,
  sTitle,
  iOptions,
  [ vRootFolder ]
)

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

参数

Hwnd [in]

类型: 整数

对话框的父窗口的句柄。 此值可以为零。

sTitle [in]

类型: BSTR

一个 String 值,表示在“ 浏览 ”对话框中显示的标题。

iOptions [in]

类型: 整数

一个 Integer 值,该值包含方法的选项。 这可以是零,也可以是 BROWSEINFO 结构的 ulFlags 成员下列出的值的组合。

vRootFolder [in, optional]

类型: Variant

在对话框中使用的根文件夹。 用户无法在树中浏览高于此文件夹的级别。 如果未指定此值,则对话框中使用的根文件夹是桌面。 此值可以是指定文件夹路径或 ShellSpecialFolderConstants 值之一的字符串。 请注意, 在 ShellSpecialFolderConstants 中找到的常量名称在 Visual Basic 中可用,但在 VBScript 或 JScript 中不可用。 在这些情况下,必须使用数值来代替它们。

返回值

JScript

类型: FOLDER**

对所选文件夹的 Folder 对象的对象引用。

VB

类型: FOLDER**

对所选文件夹的 Folder 对象的对象引用。

备注

此方法通过 Shell.BrowseForFolder 方法实现和访问。

示例

以下示例使用 BrowseForFolder 显示一个标题为“示例”的浏览窗口,该窗口根目录位于 Windows 文件夹。 显示 JScript、VBScript 和 Visual Basic 的使用情况。

Jscript:

<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>

VBScript:

<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
 </script>

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

要求

要求
最低受支持的客户端
Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Shldisp.h
IDL
Shldisp.idl
DLL
Shell32.dll (4.71 或更高版本)