Browse For Folder

Category: Application Features

Date: 02-16-2022

Return to Index


 
 
'Compilable Example:  (Jose Includes)
#Compiler PBWin 9, PBWin 10
#Compile EXE
#Dim All
%Unicode=1
#Include "Win32API.inc"
Global hDlg As Dword
 
Function PBMain() As Long
   Dialog New Pixels, 0, "Test Code",300,300,200,200, %WS_OverlappedWindow To hDlg
   Control Add Button, hDlg, 100,"Push", 50,10,100,20
   Dialog Show Modal hDlg Call DlgProc
End Function
 
CallBack Function DlgProc() As Long
   If Cb.Msg = %WM_Command And Cb.Ctl = 100 And Cb.CtlMsg = %BN_Clicked Then
      Dim folder As String
      folder = OpenDirectory("Select Folder")
      If folder <> "Then
         MsgBox "You selected : " & folder
      End If
 
   End If
End Function
 
Function OpenDirectory(Optional odtvTitle As StringAs String
   Local lpIDList As Long
   Local sTitleZ As Asciiz * %Max_Path
   Local sBufferZ As Asciiz * %Max_Path
   Dim tBrowseInfo As BrowseInfo
   sTitleZ = odtvTitle
   tBrowseInfo.hwndOwner = hDlg
   tBrowseInfo.lpszTitle = VarPtr(sTitleZ)
   tBrowseInfo.ulFlags = %BIF_ReturnOnlyFSDirs
   lpIDList = SHBrowseForFolder(tBrowseInfo)
   If (lpIDList) Then
      sBufferZ = Space$(%MAX_PATH)
      SHGetPathFromIDList lpIDList, sBufferZ
      sBufferZ = Left$(sBufferZ, InStr(sBufferZ, $Nul) - 1)
      OpenDirectory = sBufferZ
   End If
End Function
 
'gbs_00721
'Date: 03-10-2012


created by gbSnippets
http://www.garybeene.com/sw/gbsnippets.htm