modFolderBrowse.bas
上传用户:yexiandon
上传日期:2022-07-12
资源大小:895k
文件大小:2k
源码类别:

百货/超市行业

开发平台:

Visual Basic

  1. Attribute VB_Name = "modFolderBrowse"
  2. '****************************************************************************
  3. '人人为我,我为人人
  4. '枕善居收藏整理
  5. '发布日期:2008/01/21
  6. '描    述:汽车维修管理系统SQL2000版
  7. '网    站:http://www.Mndsoft.com/  (VB6源码博客)
  8. '网    站:http://www.VbDnet.com/   (VB.NET源码博客,主要基于.NET2005)
  9. 'e-mail  :Mndsoft@163.com
  10. 'e-mail  :Mndsoft@126.com
  11. 'OICQ    :88382850
  12. '          如果您有新的好的代码别忘记给枕善居哦!
  13. '****************************************************************************
  14. Option Explicit
  15. Public Type BrowseInfo
  16.      hwndOwner As Long
  17.      pIDLRoot As Long
  18.      pszDisplayName As Long
  19.      lpszTitle As Long
  20.      ulFlags As Long
  21.      lpfnCallback As Long
  22.      lParam As Long
  23.      iImage As Long
  24. End Type
  25. Public Const BIF_RETURNONLYFSDIRS = 1
  26. Public Const MAX_PATH = 260
  27. Public Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
  28. Public Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
  29. Public Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
  30. Public Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
  31. Public Function BrowseForFolder(hwndOwner As Long, sPrompt As String) As String
  32.      Dim iNull As Integer
  33.      Dim lpIDList As Long
  34.      Dim lResult As Long
  35.      Dim sPath As String
  36.      Dim udtBI As BrowseInfo
  37.      With udtBI
  38.         .hwndOwner = hwndOwner
  39.         .lpszTitle = lstrcat(sPrompt, "")
  40.         .ulFlags = BIF_RETURNONLYFSDIRS
  41.      End With
  42.      lpIDList = SHBrowseForFolder(udtBI)
  43.      
  44.      If lpIDList Then
  45.         sPath = String$(MAX_PATH, 0)
  46.         lResult = SHGetPathFromIDList(lpIDList, sPath)
  47.         Call CoTaskMemFree(lpIDList)
  48.         iNull = InStr(sPath, vbNullChar)
  49.         If iNull Then sPath = Left$(sPath, iNull - 1)
  50.      End If
  51.      BrowseForFolder = sPath
  52. End Function