Current News
Archived News
Search News
Discussion Forum


Old Forum
Install Programs More Downloads...
Troubleshooting
Source Code
Format Specs.
Misc. Information
Non-SF Stuff
Links




index d097eaf..07166f0 100644 (file)
-Attribute VB_Name = "FileDialog"
-Option Explicit
-
-Public NullPtr As String
-
-Type OPENFILENAME
-    lStructSize As Long
-    hwndOwner As Long
-    hInstance As Long
-    Filter As String
-    CustomFilter As String
-    nMaxCustFilter As Long
-    FilterIndex As Long
-    FileName As String
-    MaxFileSize As Long
-    FileTitle As String
-    MaxFileTitleSize As Long
-    InitDir As String
-    DialogTitle As String
-    Flags As Long
-    nFileOffset As Integer
-    nFileExtension As Integer
-    DefaultExt As String
-    lCustData As Long
-    lpfnHook As Long
-    lpTemplateName As String
-End Type
-
-Type BROWSEINFO
-    hwndOwner As Long
-    pidlRoot As Long
-    DisplayName As String
-    Title As String
-    Flags As Long
-    lpfn As Long
-    lParam As Long
-    iImage As Long
-End Type
-
-Declare Function CommDlgExtendedError Lib "Comdlg32.dll" () As Long
-Declare Function GetOpenFileName Lib "Comdlg32.dll" _
-    Alias "GetOpenFileNameA" (lpofn As OPENFILENAME) As Boolean
-Declare Function GetSaveFileName Lib "Comdlg32.dll" _
-    Alias "GetSaveFileNameA" (lpofn As OPENFILENAME) As Boolean
-Declare Function SHBrowseForFolder Lib "Shell32.dll" _
-    (lpbi As BROWSEINFO) As Long
-Declare Function SHGetPathFromIDList Lib "Shell32.dll" ( _
-    pidl As Long, _
-    ByRef pszPath As Byte) As Boolean
-
-Public Const OFN_READONLY             As Long = &H1
-Public Const OFN_OVERWRITEPROMPT      As Long = &H2
-Public Const OFN_HIDEREADONLY         As Long = &H4
-Public Const OFN_NOCHANGEDIR          As Long = &H8
-Public Const OFN_SHOWHELP             As Long = &H10
-Public Const OFN_ENABLEHOOK           As Long = &H20
-Public Const OFN_ENABLETEMPLATE       As Long = &H40
-Public Const OFN_ENABLETEMPLATEHANDLE As Long = &H80
-Public Const OFN_NOVALIDATE           As Long = &H100
-Public Const OFN_ALLOWMULTISELECT     As Long = &H200
-Public Const OFN_EXTENSIONDIFFERENT   As Long = &H400
-Public Const OFN_PATHMUSTEXIST        As Long = &H800
-Public Const OFN_FILEMUSTEXIST        As Long = &H1000
-Public Const OFN_CREATEPROMPT         As Long = &H2000
-Public Const OFN_SHAREAWARE           As Long = &H4000
-Public Const OFN_NOREADONLYRETURN     As Long = &H8000
-Public Const OFN_NOTESTFILECREATE     As Long = &H10000
-Public Const OFN_NONETWORKBUTTON      As Long = &H20000
-Public Const OFN_NOLONGNAMES          As Long = &H40000        ' force no long names for 4.x modules
-Public Const OFN_EXPLORER             As Long = &H80000        ' new look commdlg
-Public Const OFN_NODEREFERENCELINKS   As Long = &H100000
-Public Const OFN_LONGNAMES            As Long = &H200000       ' force long names for 3.x modules
-Public Const OFN_ENABLEINCLUDENOTIFY  As Long = &H400000       ' send include message to callback
-Public Const OFN_ENABLESIZING         As Long = &H800000
-
-Public Const BIF_RETURNONLYFSDIRS   As Long = &H1     ' For finding a folder to start document searching
-Public Const BIF_DONTGOBELOWDOMAIN  As Long = &H2     ' For starting the Find Computer
-Public Const BIF_STATUSTEXT         As Long = &H4
-Public Const BIF_RETURNFSANCESTORS  As Long = &H8
-Public Const BIF_EDITBOX            As Long = &H10
-Public Const BIF_VALIDATE           As Long = &H20    ' insist on valid result (or CANCEL)
-
-Public Const BIF_BROWSEFORCOMPUTER  As Long = &H1000  ' Browsing for Computers.
-Public Const BIF_BROWSEFORPRINTER   As Long = &H2000  ' Browsing for Printers
-Public Const BIF_BROWSEINCLUDEFILES As Long = &H4000  ' Browsing for Everything
-
-Function GetPathFromID(ByVal dwID As Long) As String
-Dim buffer(1 To 260) As Byte
-GetPathFromID = NullPtr
-If SHGetPathFromIDList(ByVal dwID, buffer(1)) Then
-    GetPathFromID = StrConv(buffer, vbUnicode)
-    StripNull GetPathFromID
-End If
-End Function
-Sub ReplaceChar(ByRef TextStr As String, ByVal Char As String, ByVal NewChar As String)
-If Len(Char) > 1 Then Char = Left$(Char, 1)
-If Len(NewChar) > 1 Then NewChar = Left$(NewChar, 1)
-Dim cNum As Long, cNum2 As Long
-For cNum = 1 To Len(TextStr)
-    cNum2 = InStr(cNum, TextStr, Char)
-    If cNum2 Then
-        cNum = cNum2
-        Mid$(TextStr, cNum, 1) = NewChar
-    Else
-        Exit Sub
-    End If
-Next cNum
-End Sub
-Sub StripNull(ByRef TextStr As String)
-Dim cNum As Long
-cNum = InStr(1, TextStr, Chr$(0))
-If cNum Then
-    TextStr = Left(TextStr, cNum - 1)
-End If
-End Sub
-Sub StripNullMulti(ByRef TextStr As String)
-Dim cNum As Long, cNum2 As Long
-For cNum = 1 To Len(TextStr)
-    cNum2 = InStr(cNum, TextStr, Chr$(0))
-    If cNum2 Then
-        cNum = cNum2
-        cNum2 = InStr(cNum + 1, TextStr, Chr$(0))
-        If cNum + 1 = cNum2 Or cNum2 = 0 Then
-            TextStr = Left(TextStr, cNum - 1)
-            Exit Sub
-        End If
-    Else
-        Exit Sub
-    End If
-Next cNum
-End Sub
-Sub InitFileDialog(ByRef lpFileDialog As OPENFILENAME)
-lpFileDialog.lStructSize = Len(lpFileDialog)
-lpFileDialog.hwndOwner = 0
-lpFileDialog.hInstance = 0
-lpFileDialog.Filter = NullPtr
-lpFileDialog.CustomFilter = NullPtr
-lpFileDialog.nMaxCustFilter = 0
-lpFileDialog.FilterIndex = 0
-lpFileDialog.FileName = NullPtr
-lpFileDialog.MaxFileSize = 260
-lpFileDialog.FileTitle = NullPtr
-lpFileDialog.MaxFileTitleSize = 260
-lpFileDialog.InitDir = NullPtr
-lpFileDialog.DialogTitle = NullPtr
-lpFileDialog.Flags = 0
-lpFileDialog.nFileOffset = 0
-lpFileDialog.nFileExtension = 0
-lpFileDialog.DefaultExt = NullPtr
-lpFileDialog.lCustData = 0
-lpFileDialog.lpfnHook = 0
-lpFileDialog.lpTemplateName = NullPtr
-End Sub
-Sub InitFolderDialog(ByRef lpFolderDialog As BROWSEINFO)
-lpFolderDialog.hwndOwner = 0
-lpFolderDialog.pidlRoot = 0
-lpFolderDialog.DisplayName = NullPtr
-lpFolderDialog.Title = NullPtr
-lpFolderDialog.Flags = 0
-lpFolderDialog.lpfn = 0
-lpFolderDialog.lParam = 0
-lpFolderDialog.iImage = 0
-End Sub
-Function ShowOpen(ByRef lpFileDialog As OPENFILENAME) As Boolean
-lpFileDialog.lStructSize = Len(lpFileDialog)
-ReplaceChar lpFileDialog.Filter, "|", Chr$(0)
-lpFileDialog.Filter = lpFileDialog.Filter + Chr$(0)
-If Len(lpFileDialog.FileName) <= lpFileDialog.MaxFileSize Then _
-    lpFileDialog.FileName = lpFileDialog.FileName + String$(lpFileDialog.MaxFileSize - Len(lpFileDialog.FileName), Chr$(0))
-If Len(lpFileDialog.FileTitle) <= lpFileDialog.MaxFileTitleSize Then _
-    lpFileDialog.FileTitle = lpFileDialog.FileTitle + String$(lpFileDialog.MaxFileTitleSize - Len(lpFileDialog.FileTitle), Chr$(0))
-ShowOpen = GetOpenFileName(lpFileDialog)
-lpFileDialog.Filter = Left$(lpFileDialog.Filter, Len(lpFileDialog.Filter) - 1)
-ReplaceChar lpFileDialog.Filter, Chr$(0), "|"
-If lpFileDialog.Flags And (OFN_ALLOWMULTISELECT Or OFN_EXPLORER) Then
-    StripNullMulti lpFileDialog.FileName
-    StripNullMulti lpFileDialog.FileTitle
-Else
-    StripNull lpFileDialog.FileName
-    StripNull lpFileDialog.FileTitle
-End If
-End Function
-Function ShowSave(ByRef lpFileDialog As OPENFILENAME) As Boolean
-lpFileDialog.lStructSize = Len(lpFileDialog)
-ReplaceChar lpFileDialog.Filter, "|", Chr$(0)
-lpFileDialog.Filter = lpFileDialog.Filter + Chr$(0)
-If Len(lpFileDialog.FileName) <= lpFileDialog.MaxFileSize Then _
-    lpFileDialog.FileName = lpFileDialog.FileName + String$(lpFileDialog.MaxFileSize - Len(lpFileDialog.FileName), Chr$(0))
-If Len(lpFileDialog.FileTitle) <= lpFileDialog.MaxFileTitleSize Then _
-    lpFileDialog.FileTitle = lpFileDialog.FileTitle + String$(lpFileDialog.MaxFileTitleSize - Len(lpFileDialog.FileTitle), Chr$(0))
-ShowSave = GetSaveFileName(lpFileDialog)
-lpFileDialog.Filter = Left$(lpFileDialog.Filter, Len(lpFileDialog.Filter) - 1)
-ReplaceChar lpFileDialog.Filter, Chr$(0), "|"
-StripNull lpFileDialog.FileName
-StripNull lpFileDialog.FileTitle
-End Function
-Function ShowFolder(ByRef lpFolderDialog As BROWSEINFO) As Long
-If Len(lpFolderDialog.DisplayName) <= 260 Then _
-    lpFolderDialog.DisplayName = lpFolderDialog.DisplayName + String$(260 - Len(lpFolderDialog.DisplayName), Chr$(0))
-ShowFolder = SHBrowseForFolder(lpFolderDialog)
-StripNull lpFolderDialog.DisplayName
-End Function
+Attribute VB_Name = "FileDialog"\r
+Option Explicit\r
+\r
+Public NullPtr As String\r
+\r
+Type OPENFILENAME\r
+    lStructSize As Long\r
+    hwndOwner As Long\r
+    hInstance As Long\r
+    Filter As String\r
+    CustomFilter As String\r
+    nMaxCustFilter As Long\r
+    FilterIndex As Long\r
+    FileName As String\r
+    MaxFileSize As Long\r
+    FileTitle As String\r
+    MaxFileTitleSize As Long\r
+    InitDir As String\r
+    DialogTitle As String\r
+    Flags As Long\r
+    nFileOffset As Integer\r
+    nFileExtension As Integer\r
+    DefaultExt As String\r
+    lCustData As Long\r
+    lpfnHook As Long\r
+    lpTemplateName As String\r
+End Type\r
+\r
+Type BROWSEINFO\r
+    hwndOwner As Long\r
+    pidlRoot As Long\r
+    DisplayName As String\r
+    Title As String\r
+    Flags As Long\r
+    lpfn As Long\r
+    lParam As Long\r
+    iImage As Long\r
+End Type\r
+\r
+Declare Function CommDlgExtendedError Lib "Comdlg32.dll" () As Long\r
+Declare Function GetOpenFileName Lib "Comdlg32.dll" _\r
+    Alias "GetOpenFileNameA" (lpofn As OPENFILENAME) As Boolean\r
+Declare Function GetSaveFileName Lib "Comdlg32.dll" _\r
+    Alias "GetSaveFileNameA" (lpofn As OPENFILENAME) As Boolean\r
+Declare Function SHBrowseForFolder Lib "Shell32.dll" _\r
+    (lpbi As BROWSEINFO) As Long\r
+Declare Function SHGetPathFromIDList Lib "Shell32.dll" ( _\r
+    pidl As Long, _\r
+    ByRef pszPath As Byte) As Boolean\r
+\r
+Public Const OFN_READONLY             As Long = &H1\r
+Public Const OFN_OVERWRITEPROMPT      As Long = &H2\r
+Public Const OFN_HIDEREADONLY         As Long = &H4\r
+Public Const OFN_NOCHANGEDIR          As Long = &H8\r
+Public Const OFN_SHOWHELP             As Long = &H10\r
+Public Const OFN_ENABLEHOOK           As Long = &H20\r
+Public Const OFN_ENABLETEMPLATE       As Long = &H40\r
+Public Const OFN_ENABLETEMPLATEHANDLE As Long = &H80\r
+Public Const OFN_NOVALIDATE           As Long = &H100\r
+Public Const OFN_ALLOWMULTISELECT     As Long = &H200\r
+Public Const OFN_EXTENSIONDIFFERENT   As Long = &H400\r
+Public Const OFN_PATHMUSTEXIST        As Long = &H800\r
+Public Const OFN_FILEMUSTEXIST        As Long = &H1000\r
+Public Const OFN_CREATEPROMPT         As Long = &H2000\r
+Public Const OFN_SHAREAWARE           As Long = &H4000\r
+Public Const OFN_NOREADONLYRETURN     As Long = &H8000\r
+Public Const OFN_NOTESTFILECREATE     As Long = &H10000\r
+Public Const OFN_NONETWORKBUTTON      As Long = &H20000\r
+Public Const OFN_NOLONGNAMES          As Long = &H40000        ' force no long names for 4.x modules\r
+Public Const OFN_EXPLORER             As Long = &H80000        ' new look commdlg\r
+Public Const OFN_NODEREFERENCELINKS   As Long = &H100000\r
+Public Const OFN_LONGNAMES            As Long = &H200000       ' force long names for 3.x modules\r
+Public Const OFN_ENABLEINCLUDENOTIFY  As Long = &H400000       ' send include message to callback\r
+Public Const OFN_ENABLESIZING         As Long = &H800000\r
+\r
+Public Const BIF_RETURNONLYFSDIRS   As Long = &H1     ' For finding a folder to start document searching\r
+Public Const BIF_DONTGOBELOWDOMAIN  As Long = &H2     ' For starting the Find Computer\r
+Public Const BIF_STATUSTEXT         As Long = &H4\r
+Public Const BIF_RETURNFSANCESTORS  As Long = &H8\r
+Public Const BIF_EDITBOX            As Long = &H10\r
+Public Const BIF_VALIDATE           As Long = &H20    ' insist on valid result (or CANCEL)\r
+\r
+Public Const BIF_BROWSEFORCOMPUTER  As Long = &H1000  ' Browsing for Computers.\r
+Public Const BIF_BROWSEFORPRINTER   As Long = &H2000  ' Browsing for Printers\r
+Public Const BIF_BROWSEINCLUDEFILES As Long = &H4000  ' Browsing for Everything\r
+\r
+Function GetPathFromID(ByVal dwID As Long) As String\r
+Dim buffer(1 To 260) As Byte\r
+GetPathFromID = NullPtr\r
+If SHGetPathFromIDList(ByVal dwID, buffer(1)) Then\r
+    GetPathFromID = StrConv(buffer, vbUnicode)\r
+    StripNull GetPathFromID\r
+End If\r
+End Function\r
+Sub ReplaceChar(ByRef TextStr As String, ByVal Char As String, ByVal NewChar As String)\r
+If Len(Char) > 1 Then Char = Left$(Char, 1)\r
+If Len(NewChar) > 1 Then NewChar = Left$(NewChar, 1)\r
+Dim cNum As Long, cNum2 As Long\r
+For cNum = 1 To Len(TextStr)\r
+    cNum2 = InStr(cNum, TextStr, Char)\r
+    If cNum2 Then\r
+        cNum = cNum2\r
+        Mid$(TextStr, cNum, 1) = NewChar\r
+    Else\r
+        Exit Sub\r
+    End If\r
+Next cNum\r
+End Sub\r
+Sub StripNull(ByRef TextStr As String)\r
+Dim cNum As Long\r
+cNum = InStr(1, TextStr, Chr$(0))\r
+If cNum Then\r
+    TextStr = Left(TextStr, cNum - 1)\r
+End If\r
+End Sub\r
+Sub StripNullMulti(ByRef TextStr As String)\r
+Dim cNum As Long, cNum2 As Long\r
+For cNum = 1 To Len(TextStr)\r
+    cNum2 = InStr(cNum, TextStr, Chr$(0))\r
+    If cNum2 Then\r
+        cNum = cNum2\r
+        cNum2 = InStr(cNum + 1, TextStr, Chr$(0))\r
+        If cNum + 1 = cNum2 Or cNum2 = 0 Then\r
+            TextStr = Left(TextStr, cNum - 1)\r
+            Exit Sub\r
+        End If\r
+    Else\r
+        Exit Sub\r
+    End If\r
+Next cNum\r
+End Sub\r
+Sub InitFileDialog(ByRef lpFileDialog As OPENFILENAME)\r
+lpFileDialog.lStructSize = Len(lpFileDialog)\r
+lpFileDialog.hwndOwner = 0\r
+lpFileDialog.hInstance = 0\r
+lpFileDialog.Filter = NullPtr\r
+lpFileDialog.CustomFilter = NullPtr\r
+lpFileDialog.nMaxCustFilter = 0\r
+lpFileDialog.FilterIndex = 0\r
+lpFileDialog.FileName = NullPtr\r
+lpFileDialog.MaxFileSize = 260\r
+lpFileDialog.FileTitle = NullPtr\r
+lpFileDialog.MaxFileTitleSize = 260\r
+lpFileDialog.InitDir = NullPtr\r
+lpFileDialog.DialogTitle = NullPtr\r
+lpFileDialog.Flags = 0\r
+lpFileDialog.nFileOffset = 0\r
+lpFileDialog.nFileExtension = 0\r
+lpFileDialog.DefaultExt = NullPtr\r
+lpFileDialog.lCustData = 0\r
+lpFileDialog.lpfnHook = 0\r
+lpFileDialog.lpTemplateName = NullPtr\r
+End Sub\r
+Sub InitFolderDialog(ByRef lpFolderDialog As BROWSEINFO)\r
+lpFolderDialog.hwndOwner = 0\r
+lpFolderDialog.pidlRoot = 0\r
+lpFolderDialog.DisplayName = NullPtr\r
+lpFolderDialog.Title = NullPtr\r
+lpFolderDialog.Flags = 0\r
+lpFolderDialog.lpfn = 0\r
+lpFolderDialog.lParam = 0\r
+lpFolderDialog.iImage = 0\r
+End Sub\r
+Function ShowOpen(ByRef lpFileDialog As OPENFILENAME) As Boolean\r
+lpFileDialog.lStructSize = Len(lpFileDialog)\r
+ReplaceChar lpFileDialog.Filter, "|", Chr$(0)\r
+lpFileDialog.Filter = lpFileDialog.Filter + Chr$(0)\r
+If Len(lpFileDialog.FileName) <= lpFileDialog.MaxFileSize Then _\r
+    lpFileDialog.FileName = lpFileDialog.FileName + String$(lpFileDialog.MaxFileSize - Len(lpFileDialog.FileName), Chr$(0))\r
+If Len(lpFileDialog.FileTitle) <= lpFileDialog.MaxFileTitleSize Then _\r
+    lpFileDialog.FileTitle = lpFileDialog.FileTitle + String$(lpFileDialog.MaxFileTitleSize - Len(lpFileDialog.FileTitle), Chr$(0))\r
+ShowOpen = GetOpenFileName(lpFileDialog)\r
+lpFileDialog.Filter = Left$(lpFileDialog.Filter, Len(lpFileDialog.Filter) - 1)\r
+ReplaceChar lpFileDialog.Filter, Chr$(0), "|"\r
+If lpFileDialog.Flags And (OFN_ALLOWMULTISELECT Or OFN_EXPLORER) Then\r
+    StripNullMulti lpFileDialog.FileName\r
+    StripNullMulti lpFileDialog.FileTitle\r
+Else\r
+    StripNull lpFileDialog.FileName\r
+    StripNull lpFileDialog.FileTitle\r
+End If\r
+End Function\r
+Function ShowSave(ByRef lpFileDialog As OPENFILENAME) As Boolean\r
+lpFileDialog.lStructSize = Len(lpFileDialog)\r
+ReplaceChar lpFileDialog.Filter, "|", Chr$(0)\r
+lpFileDialog.Filter = lpFileDialog.Filter + Chr$(0)\r
+If Len(lpFileDialog.FileName) <= lpFileDialog.MaxFileSize Then _\r
+    lpFileDialog.FileName = lpFileDialog.FileName + String$(lpFileDialog.MaxFileSize - Len(lpFileDialog.FileName), Chr$(0))\r
+If Len(lpFileDialog.FileTitle) <= lpFileDialog.MaxFileTitleSize Then _\r
+    lpFileDialog.FileTitle = lpFileDialog.FileTitle + String$(lpFileDialog.MaxFileTitleSize - Len(lpFileDialog.FileTitle), Chr$(0))\r
+ShowSave = GetSaveFileName(lpFileDialog)\r
+lpFileDialog.Filter = Left$(lpFileDialog.Filter, Len(lpFileDialog.Filter) - 1)\r
+ReplaceChar lpFileDialog.Filter, Chr$(0), "|"\r
+StripNull lpFileDialog.FileName\r
+StripNull lpFileDialog.FileTitle\r
+End Function\r
+Function ShowFolder(ByRef lpFolderDialog As BROWSEINFO) As Long\r
+If Len(lpFolderDialog.DisplayName) <= 260 Then _\r
+    lpFolderDialog.DisplayName = lpFolderDialog.DisplayName + String$(260 - Len(lpFolderDialog.DisplayName), Chr$(0))\r
+ShowFolder = SHBrowseForFolder(lpFolderDialog)\r
+StripNull lpFolderDialog.DisplayName\r
+End Function\r