Seite 1 von 1

Pathrequester als WinAPI-Aufruf?

Verfasst: 04.07.2006 16:26
von Karl
Ja, wie gefragt.

Gibt es so was und wenn ja wie sieht die Instruktion aus.

Verfasst: 04.07.2006 16:33
von ts-soft

Code: Alles auswählen

Procedure BrowseCallbackProc(hwnd, msg, lParam, lData)
  szDir$ = Space(#MAX_PATH)
  Select msg
    Case #BFFM_INITIALIZED
      SendMessage_(hwnd, #BFFM_SETSELECTION, #BFFM_INITIALIZED, lData)
    Case #BFFM_SELCHANGED
      If SHGetPathFromIDList_(lParam, @szDir$)
        SendMessage_(hwnd, #BFFM_SETSTATUSTEXT, 0, @szDir$)
      EndIf
  EndSelect
EndProcedure

Procedure.s BrowseForFolder(Style, Titel.s, Path.s)
  Folder.s = Space(#MAX_PATH)
  Dir.BROWSEINFO
  Dir\hwndOwner = GetActiveWindow_()
  Dir\pszDisplayName = @Folder
  Dir\lpszTitle = @Titel
  Dir\ulFlags = Style
  Dir\lpfn = @BrowseCallbackProc()
  Dir\lParam = @Path
  result.l = SHBrowseForFolder_(@Dir)
  SHGetPathFromIDList_(result, @Folder)
  If Folder <> ""
    If FileSize(Folder) = - 2
      If Right(Folder, 1) <> "\" : Folder + "\" : EndIf
    EndIf
  EndIf
  CoTaskMemFree_(result)
  ProcedureReturn Folder
EndProcedure
Weitere Infos: http://msdn.microsoft.com/library/defau ... folder.asp
und die wichtigen Konstanten: http://msdn.microsoft.com/library/defau ... seinfo.asp

Verfasst: 04.07.2006 16:35
von Karl
Alles klar.

Danke Thomas.

Gruß Karl

Verfasst: 04.07.2006 16:37
von ts-soft
Naja, braucht man halt öfters, vor allem wenn der Button "Neuer Ordner" stört :wink: