[AccessD] "Modern" replacement for CommonDlg

Stuart McLachlan stuart at lexacorp.com.pg
Tue Jul 5 16:01:03 CDT 2011


Here' ya go,  I'm sure I've posted this a few times in the past.

Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
         "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long


Type OPENFILENAME
  lStructSize As Long
  hwndOwner As Long
  hInstance As Long
  lpstrFilter As String
  lpstrCustomFilter As String
  nMaxCustFilter As Long
  nFilterIndex As Long
  lpstrFile As String
  nMaxFile As Long
  lpstrFileTitle As String
  nMaxFileTitle As Long
  lpstrInitialDir As String
  lpstrTitle As String
  flags As Long
  nFileOffset As Integer
  nFileExtension As Integer
  lpstrDefExt As String
  lCustData As Long
  lpfnHook As Long
  lpTemplateName As String
End Type


Function GetFileName(Directory As String) As String
         Dim OpenFile As OPENFILENAME
         Dim lReturn As Long
         Dim sFilter As String
         OpenFile.lStructSize = Len(OpenFile)
         OpenFile.hwndOwner = 0
         OpenFile.hInstance = 0
         sFilter = "" & Chr(0)
         OpenFile.lpstrFilter = sFilter
         OpenFile.nFilterIndex = 0
         OpenFile.lpstrFile = String(257, 0)
         OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
         OpenFile.lpstrFileTitle = OpenFile.lpstrFile
         OpenFile.nMaxFileTitle = OpenFile.nMaxFile
         OpenFile.lpstrInitialDir = Directory
         OpenFile.lpstrTitle = "Select File"
         OpenFile.flags = 0
         lReturn = GetOpenFileName(OpenFile)
         GetFileName = Left$(OpenFile.lpstrFile, InStr(OpenFile.lpstrFile, Chr$(0)) - 1)
End Function

On 5 Jul 2011 at 16:28, Arthur Fuller wrote:

> I may have asked this before; if so, please forgive the redundancy.
> I've got an old app that I'm sprucing up with A2K7 to run on Windows
> 7. Some code I lifted from the ADH musketeers no longer works. It
> seems that the CommonDlg thingie has vanished.
> 
> I need essentially that functionality, but that works in A2K7 and
> A2K10: It opens the Windows Open/Save dialog with a bunch of
> arguments:
> 





More information about the AccessD mailing list