有什么API或控件,打开的是文件夹,而不是文件.就好象安装选择路径一样?解决方案

有什么API或控件,打开的是文件夹,而不是文件.就好象安装选择路径一样?
本人在写程序时,需要对一个文件夹进行操作,要求用户选择文件夹,没有这样的API?

------解决方案--------------------
Private Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Const BIF_RETURNONLYFSDIRS = 1
Const MAX_PATH = 260
Private Declare Sub CoTaskMemFree Lib "ole32.dll " (ByVal hMem As Long)
Private Declare Function lstrcat Lib "kernel32 " Alias "lstrcatA " (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32 " (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32 " (ByVal pidList As Long, ByVal lpBuffer As String) As Long

Private Sub Command1_Click()
Dim iNull As Integer, lpIDList As Long, lResult As Long
Dim sPath As String, udtBI As BrowseInfo

With udtBI

.hWndOwner = Me.hWnd

.lpszTitle = lstrcat( "C:\ ", " ")

.ulFlags = BIF_RETURNONLYFSDIRS
End With


lpIDList = SHBrowseForFolder(udtBI)
If lpIDList Then
sPath = String$(MAX_PATH, 0)

SHGetPathFromIDList lpIDList, sPath

CoTaskMemFree lpIDList
iNull = InStr(sPath, vbNullChar)
If iNull Then
sPath = Left$(sPath, iNull - 1)
End If
End If

MsgBox sPath
End Sub