SHBrowseForFolder

03/04/2009 - 10:11 von Lutz Uhlmann | Report spam
Hallo NG!

Ich nutze für einen Ordner-Auswahldialog die Funktion API-Funktion
SHBrowseForFolder.

Gibts ne Möglichkeit dort ein Start-Verzeichnis zu übergeben?

Lutz

-
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias
"SHBrowseForFolderA" ( _
lpBrowseInfo As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias
"SHGetPathFromIDListA" ( _
ByVal pidl As Long, ByVal pszPath As String) As Long

Public Function PathDialog(Optional szTitle As String = "Bitte wàhlen Sie
ein Verzeichnis aus...", Optional hWnd As Long = 0)
On Error GoTo Er
Dim lpIDList As Long, sBuffer As String, tBrowseInfo As BrowseInfo

With tBrowseInfo
If hWnd = 0 Then
.hWndOwner = Application.hWndAccessApp
Else
.hWndOwner = hWnd
End If
.lpszTitle = lstrcat(szTitle, "")
.ulFlags = BIF_RETURNONLYFSDIRS + BIF_USENEWUI '+
BIF_DONTGOBELOWDOMAIN
End With
lpIDList = SHBrowseForFolder(tBrowseInfo)
If (lpIDList) Then
sBuffer = String(MAX_PATH, 0)
SHGetPathFromIDList lpIDList, sBuffer
PathDialog = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
Else
PathDialog = ""
End If

Ex:
On Error Resume Next
Exit Function
Er:
MsgBox "PathDialog: " & Err.Description, vbExclamation, "Laufzeitfehler"
Resume Ex
End Function
 

Lesen sie die antworten

#1 Stefan Hoffmann
03/04/2009 - 11:05 | Warnen spam
hallo Lutz,

Lutz Uhlmann schrieb:
Ich nutze für einen Ordner-Auswahldialog die Funktion API-Funktion
SHBrowseForFolder.

Gibts ne Möglichkeit dort ein Start-Verzeichnis zu übergeben?


Ja, befülle pidlRoot:

http://msdn.microsoft.com/en-us/library/bb773205(VS.85).aspx
http://msdn.microsoft.com/en-us/library/cc144089(VS.85).aspx
http://msdn.microsoft.com/en-us/library/bb776914(VS.85).aspx


mfG

Access-FAQ http://www.donkarl.com/
KnowHow.mdb http://www.freeaccess.de
Newbie-Info http://www.doerbandt.de/Access/Newbie.htm

Ähnliche fragen