Results 1 to 3 of 3

Thread: XP folder selection

  1. #1

    Thread Starter
    Lively Member
    Join Date
    Oct 2001
    Posts
    66

    XP folder selection

    Hi

    if you are running XP you must have used the
    built in file compresion utility. I really
    like there treeview based folder selection
    object (opens when u click the browse button).
    Is this object available to developers and if so
    where can I locate it?

    thanks

  2. #2
    The picture isn't missing BuggyProgrammer's Avatar
    Join Date
    Oct 2000
    Location
    Vancouver, Canada
    Posts
    5,217
    you mean this?

    VB Code:
    1. Private Type BrowseInfo
    2.     hWndOwner As Long
    3.     pIDLRoot As Long
    4.     pszDisplayName As Long
    5.     lpszTitle As Long
    6.     ulFlags As Long
    7.     lpfnCallback As Long
    8.     lParam As Long
    9.     iImage As Long
    10. End Type
    11. Const BIF_RETURNONLYFSDIRS = 1
    12. Const MAX_PATH = 260
    13. Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
    14. Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
    15. Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
    16. Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
    17. Private Sub Form_Load()
    18.     'KPD-Team 1998
    19.     'URL: [url]http://www.allapi.net/[/url]
    20.     Dim iNull As Integer, lpIDList As Long, lResult As Long
    21.     Dim sPath As String, udtBI As BrowseInfo
    22.  
    23.     With udtBI
    24.         'Set the owner window
    25.         .hWndOwner = Me.hWnd
    26.         'lstrcat appends the two strings and returns the memory address
    27.         .lpszTitle = lstrcat("C:\", "")
    28.         'Return only if the user selected a directory
    29.         .ulFlags = BIF_RETURNONLYFSDIRS
    30.     End With
    31.  
    32.     'Show the 'Browse for folder' dialog
    33.     lpIDList = SHBrowseForFolder(udtBI)
    34.     If lpIDList Then
    35.         sPath = String$(MAX_PATH, 0)
    36.         'Get the path from the IDList
    37.         SHGetPathFromIDList lpIDList, sPath
    38.         'free the block of memory
    39.         CoTaskMemFree lpIDList
    40.         iNull = InStr(sPath, vbNullChar)
    41.         If iNull Then
    42.             sPath = Left$(sPath, iNull - 1)
    43.         End If
    44.     End If
    45.  
    46.     MsgBox sPath
    47. End Sub
    Remember, if someone's post was not helpful, you can always rate their post negatively .

  3. #3

    Thread Starter
    Lively Member
    Join Date
    Oct 2001
    Posts
    66

    Thanks

    Aaahh, thats it!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width