VB Code:
'Form method:
Private Sub BrowseFolder()
'Displays BrowseForFolder dialog
Dim dlgBrowse As BrowseInfo
Dim strPath As String
Dim lngResult As Long
dlgBrowse.hwndOwner = Me.hWnd
dlgBrowse.lpszTitle = lstrcat("Selecteer de map waarin u uw documenten wilt opslaan.", "")
dlgBrowse.ulFlags = BIF_NEWDIALOGSTYLE Or BIF_RETURNONLYFSDIRS
lngResult = SHBrowseForFolder(dlgBrowse)
If lngResult <> 0 Then
strPath = String$(MAX_PATH, 0)
SHGetPathFromIDList lngResult, strPath
CoTaskMemFree lngResult
If InStr(strPath, vbNullChar) <> 0 Then
strPath = Left$(strPath, InStr(strPath, vbNullChar) - 1)
End If
lblSave.Caption = strPath
End If
End Sub
VB Code:
'Module declarations:
Public Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Public Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Public Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Public Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
Public 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
Public Const BIF_RETURNONLYFSDIRS = 1
Public Const MAX_PATH = 260
Public Const BIF_NEWDIALOGSTYLE = &H40
Public Const BIF_STATUSTEXT = &H4
Public Const BIF_EDITBOX = &H10
Public Const BIF_UAHINT = &H100