home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 5_2007-2008.ISO / data / Zips / ID3_Class_207876882007.psc / basCommonDialog.bas < prev    next >
BASIC Source File  |  2007-08-03  |  2KB  |  66 lines

  1. Attribute VB_Name = "basCommonDialog"
  2. Option Explicit
  3.  
  4. Private Type OPENFILENAME
  5.     lStructSize As Long
  6.     hwndOwner As Long
  7.     hInstance As Long
  8.     lpstrFilter As String
  9.     lpstrCustomFilter As String
  10.     nMaxCustFilter As Long
  11.     nFilterIndex As Long
  12.     lpstrFile As String
  13.     nMaxFile As Long
  14.     lpstrFileTitle As String
  15.     nMaxFileTitle As Long
  16.     lpstrInitialDir As String
  17.     lpstrTitle As String
  18.     flags As Long
  19.     nFileOffset As Integer
  20.     nFileExtension As Integer
  21.     lpstrDefExt As String
  22.     lCustData As Long
  23.     lpfnHook As Long
  24.     lpTemplateName As String
  25. End Type
  26.  
  27. Private Const OFN_HIDEREADONLY = &H4
  28. Private Const OFN_FILEMUSTEXIST = &H1000
  29.  
  30. Private Declare Function GetOpenFileNameA Lib "comdlg32" (pOpenfilename As OPENFILENAME) As Long
  31.  
  32. Public Function ShowOpenDialog(ByVal hwndOwner As Long, ByVal Filter As String, ByVal Title As String, Optional ByVal InitialDirectory) As String
  33.     Dim lNull As Long
  34.     Dim sFilter As String
  35.     Dim sFile As String
  36.     Dim lngOpenFileName As OPENFILENAME
  37.     Dim lResult As Long
  38.     
  39.     With lngOpenFileName
  40.         .lStructSize = Len(lngOpenFileName)
  41.         .hwndOwner = hwndOwner
  42.         .hInstance = App.hInstance
  43.         sFilter = Filter
  44.         If Right$(sFilter, 1) <> "|" Then sFilter = sFilter & "|"
  45.         .lpstrFilter = Replace(sFilter, "|", Chr$(0))
  46.         .lpstrFile = String$(MAX_PATH, 0)
  47.         .nMaxFile = MAX_PATH
  48.         .lpstrFileTitle = String$(MAX_PATH, 0)
  49.         .nMaxFileTitle = MAX_PATH
  50.         .lpstrInitialDir = IIf(IsMissing(InitialDirectory), vbNullString, InitialDirectory)
  51.         .lpstrTitle = Title
  52.         .flags = OFN_HIDEREADONLY Or OFN_FILEMUSTEXIST
  53.         
  54.         lResult = GetOpenFileNameA(lngOpenFileName)
  55.         If lResult Then
  56.             sFile = .lpstrFile
  57.             lNull = InStr(sFile, vbNullChar)
  58.             If lNull Then
  59.                 sFile = Left$(sFile, lNull - 1)
  60.             End If
  61.         End If
  62.     End With
  63.     
  64.     ShowOpenDialog = sFile
  65. End Function
  66.