Gustav Brock
gustav at cactus.dk
Wed Jul 21 09:00:24 CDT 2004
Hi Dan the Monkey (ape call?)
You probably need to set these values of the OFN structure:
.strCustomFilter = String(255, 0)
.nMaxCustFilter = 255
If that works, could you please report if these settings work with Win9x too?
/gustav
> I use the code I downloaded from Candace Tripp's website for this. It's
> been a while, but I remember that she has separate downloads for these
> operating systems, and that the code is slightly different, although I
> didn't understand the differences. I use the code as is on Windows XP PC's,
> and it works.
> Look at www.candace-tripp.com.
> Good Luck!
> Dan Waters
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of
> connie.kamrowski at agric.nsw.gov.au
> Sent: Tuesday, July 20, 2004 8:26 PM
> To: accessd at databaseadvisors.com
> Subject: [AccessD] WindowsXP not recognising api Call
> Ok further to last week I have been trying to find the problem with my
> inherited app. The api call works fine on windows98 and when taken to
> windows XP machines does not work.
> It throws no errors just does not open the Windows Open Save dialog box.
> The code is word for word to the Getz API call but when the XP machine
> reaches the
> If OpenFile Then
> fResult = adh_apiGetOpenFileName(OFN)
> Else
> fResult = adh_apiGetSaveFileName(OFN)
> End If
> It does not open the dialogue box. Running the same code side by side on
> the win98 machine I get the popup box every time. I have run a reference
> checker and it says all references are OK.
> The code is below if that helps.
> Connie Kamrowski
> Analyst/Programmer
> Information Technology
> NSW Department of Primary Industries
> Orange
> Ph: 02 6391 3250
> Fax:02 6391 3290
> Function adhCommonFileOpenSave( _
> Optional ByRef Flags As Variant, _
> Optional ByVal InitialDir As Variant, _
> Optional ByVal Filter As Variant, _
> Optional ByVal FilterIndex As Variant, _
> Optional ByVal DefaultExt As Variant, _
> Optional ByVal FileName As Variant, _
> Optional ByVal DialogTitle As Variant, _
> Optional ByVal hwnd As Variant, _
> Optional ByVal OpenFile As Variant) As Variant
> ' This is the entry point you'll use to call the common
> ' file open/save dialog. The parameters are listed
> ' below, and all are optional.
> '
> ' From Access 97 Developer's Handbook
> ' by Litwin, Getz and Gilbert. (Sybex)
> ' Copyright 1997. All Rights Reserved.
> '
> ' In:
> ' Flags: one or more of the adhOFN_* constants, OR'd together.
> ' InitialDir: the directory in which to first look
> ' Filter: a set of file filters, set up by calling
> ' AddFilterItem. See examples.
> ' FilterIndex: 1-based integer indicating which filter
> ' set to use, by default (1 if unspecified)
> ' DefaultExt: Extension to use if the user doesn't enter one.
> ' Only useful on file saves.
> ' FileName: Default value for the file name text box.
> ' DialogTitle: Title for the dialog.
> ' OpenFile: Boolean(True=Open File/False=Save As)
> ' Out:
> ' Return Value: Either Null or the selected filename
> Dim OFN As tagOPENFILENAME
> Dim strFileName As String
> Dim strFileTitle As String
> Dim fResult As Boolean
> ' Give the dialog a caption title.
> 'If IsMissing(InitialDir) Then InitialDir = ""
> If IsMissing(InitialDir) Then
> InitialDir = CurDir
> Else
> If Dir(InitialDir, vbDirectory) = "" Then InitialDir = CurDir
> End If
> If IsMissing(Filter) Then Filter = ""
> If IsMissing(FilterIndex) Then FilterIndex = 1
> If IsMissing(Flags) Then Flags = 0&
> If IsMissing(DefaultExt) Then DefaultExt = ""
> If IsMissing(FileName) Then FileName = ""
> If IsMissing(DialogTitle) Then DialogTitle = ""
> If IsMissing(hwnd) Then hwnd = Application.hWndAccessApp
> If IsMissing(OpenFile) Then OpenFile = True
> ' Allocate string space for the returned strings.
> strFileName = Left(FileName & String(256, 0), 256)
> strFileTitle = String(256, 0)
> ' Set up the data structure before you call the function
> With OFN
> .lStructSize = Len(OFN)
> .hwndOwner = hwnd
> .strFilter = Filter
> .nFilterIndex = FilterIndex
> .strFile = strFileName
> .nMaxFile = Len(strFileName)
> .strFileTitle = strFileTitle
> .nMaxFileTitle = Len(strFileTitle)
> .strTitle = DialogTitle
> .Flags = Flags
> .strDefExt = DefaultExt
> '.strInitialDir = CurDir
> .strInitialDir = InitialDir
> ' Didn't think most people would want to deal with
> ' these options.
> .hInstance = 0
> .strCustomFilter = ""
> .nMaxCustFilter = 0
> .lpfnHook = 0
> End With
> ' This will pass the desired data structure to the
> ' Windows API, which will in turn it uses to display
> ' the Open/Save As Dialog.
> If OpenFile Then
> fResult = adh_apiGetOpenFileName(OFN)
> Else
> fResult = adh_apiGetSaveFileName(OFN)
> End If
> ' The function call filled in the strFileTitle member
> ' of the structure. You'll have to write special code
> ' to retrieve that if you're interested.
> If fResult Then
> ' You might care to check the Flags member of the
> ' structure to get information about the chosen file.
> ' In this example, if you bothered to pass in a
> ' value for Flags, we'll fill it in with the outgoing
> ' Flags value.
> If Not IsMissing(Flags) Then Flags = OFN.Flags
> adhCommonFileOpenSave = adhTrimNull(OFN.strFile)
> msgbox adhCommonFileOpenSave
> Else
> adhCommonFileOpenSave = Null
> End If
> End Function
> This message is intended for the addressee named and may contain
> confidential information. If you are not the intended recipient or received
> it in error, please delete the message and notify sender. Views expressed
> are those of the individual sender and are not necessarily the views of
> their organisation.