Olá, galera
Peguei em um site de programação (nao lembro se aqui) o codigo a seguir:
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Public Type SHITEMID
cb As Long
abID As Byte
End Type
Public Type ITEMIDLIST
mkid As SHITEMID
End Type
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Public Function GetFolder(Titulo As String, Optional Hwnd As Long) As String
Dim bi As BROWSEINFO, IDL As ITEMIDLIST
Dim pidl As Long, r As Long, pos As Integer
Dim sPath As String
bi.hOwner = Hwnd
bi.pidlRoot = 0&
bi.lpszTitle = Titulo
bi.ulFlags = 0 'BIF_RETURNONLYFSDIRS
pidl& = SHBrowseForFolder(bi)
sPath = Space(512)
r = SHGetPathFromIDList(ByVal pidl, ByVal sPath)
If r Then
pos = InStr(sPath, Chr(0))
GetFolder = Left(sPath, pos - 1)
Else
GetFolder = ""
End If
End Function
Essa API abre a caixa de dialogo "Selecionar Pasta", mas obriga a selecionar uma pasta já existente. Alguém sabe o que eu tenho que mudar para exibir o botão "Nova Pasta" nessa caixa de dialogo, como aparece em vários aplicativos for Windows???
Por favor alguém me ajude...
Elieser Carlos Topassi
São José do Rio Preto, SP