FAQ Home :
How do you open a Win32 File Dialog in LotusScript?
How do you open a Win32 File Dialog in LotusScript?

AnswerThis is an example of how to call the standard file open dialog in Windows 95 or NT:
' From Andre Guirard
Option Public
Option Declare
Dim Filter As String
Dim FileName As String
Dim FileTitle As String
Dim TruncName As String
Dim VaultWIPRoot As String
Dim VaultWIPUserPath As String
Type tagOPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As Long
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 Long
End Type
Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (OPENFILENAME As tagOPENFILENAME) As Long
Dim OPENFILENAME As tagOPENFILENAME
Public Const OFN_ALLOWMULTISELECT = &H200
Public Const OFN_CREATEPROMPT = &H2000
Public Const OFN_ENABLEHOOK = &H20
Public Const OFN_ENABLETEMPLATE = &H40
Public Const OFN_ENABLETEMPLATEHANDLE = &H80
Public Const OFN_EXPLORER = &H80000
Public Const OFN_EXTENSIONDIFFERENT = &H400
Public Const OFN_FILEMUSTEXIST = &H1000
Public Const OFN_HIDEREADONLY = &H4
Public Const OFN_LONGNAMES = &H200000
Public Const OFN_NOCHANGEDIR = &H8
Public Const OFN_NODEREFERENCELINKS = &H100000
Public Const OFN_NOLONGNAMES = &H40000
Public Const OFN_NONETWORKBUTTON = &H20000
Public Const OFN_NOREADONLYRETURN = &H8000
Public Const OFN_NOTESTFILECREATE = &H10000
Public Const OFN_NOVALIDATE = &H100
Public Const OFN_OVERWRITEPROMPT = &H2
Public Const OFN_PATHMUSTEXIST = &H800
Public Const OFN_READONLY = &H1
Public Const OFN_SHAREAWARE = &H4000
Public Const OFN_SHAREFALLTHROUGH = 2
Public Const OFN_SHARENOWARN = 1
Public Const OFN_SHAREWARN = 0
Public Const OFN_SHOWHELP = &H10
Function OpenCommDlg ()
Dim Title As String
Dim DefExt As String
Dim szCurDir As String
Dim APIResults%

'Give the dialog a caption title.
Title = "Add supporting document" & Chr$(0)

'Allocate string space for returned strings
FileName = Chr$(0) & Space$(255) & Chr$(0)
FileTitle = Space$(255) & Chr$(0)

'If the user does not specify an extension, append TXT.
DefExt = "TXT" & Chr$(0)

'Set up the default directory
szCurDir = Curdir$ & Chr$(0)

'Set up the data structure before you call the GetOpenFileName

OPENFILENAME.lStructSize = Len(OPENFILENAME)

'If the OpenFile Dialog box is not linked to any form use this line.
'It will pass a null pointer.

OPENFILENAME.hwndOwner = 0&

OPENFILENAME.lpstrFilter = Filter
OPENFILENAME.nFilterIndex = 1
OPENFILENAME.lpstrFile = FileName
OPENFILENAME.nMaxFile = Len(FileName)
OPENFILENAME.lpstrFileTitle = FileTitle
OPENFILENAME.nMaxFileTitle = Len(FileTitle)
OPENFILENAME.lpstrTitle = Title
OPENFILENAME.Flags = OFN_FILEMUSTEXIST
OPENFILENAME.lpstrDefExt = DefExt
OPENFILENAME.hInstance = 0
OPENFILENAME.lpstrCustomFilter = 0
OPENFILENAME.nMaxCustFilter = 0
OPENFILENAME.lpstrInitialDir = szCurDir
OPENFILENAME.nFileOffset = 0
OPENFILENAME.nFileExtension = 0
OPENFILENAME.lCustData = 0
OPENFILENAME.lpfnHook = 0
OPENFILENAME.lpTemplateName = 0

'This will pass the desired data structure to the Windows API,
'which will in turn it uses to display the Open Dialog form.
APIResults% = GetOpenFileName(OPENFILENAME)

If APIResults% <> 0 Then
FileName = Cstr( OPENFILENAME.lpstrFile )
FileTitle = Cstr( OPENFILENAME.lpstrFileTitle )
OpenCommDlg = 1
Else
OpenCommDlg = 0
End If
End Function
Sub Initialize
If (OpenCommDlg = 1) Then
Print " "
Else
Print "No documents were attached."
End If
End Sub
For non-Windows Notes 4.5 and above users, you can use:
@Prompt([LocalBrowse])
Attachments -none-
Applies to versions3.x; 4.x; 5.x
FAQ Provided Byken yee
CreditClick here for information source
 Forum Latest Entries
29/07/2010 Lotus Notes Forum - AppendDocLink to Doc in Db-A to from a Doc in Db-B    (Rus)
28/07/2010 Lotus Notes Forum - Get Document from another db and appenddoc link to a field in source    (Rus)
24/06/2010 Lotus Notes Forum - Lotus Notes 6.5 Programming Certification Test    (Charles)
21/06/2010 Lotus Notes Forum - Consult    (Rogers )
09/06/2010 Lotus Notes Forum - #error : Must specify type of OS ("DOS", "OS2", etc) on C command line    (Abhi)
31/05/2010 Lotus Notes Forum - Note mail error    (Anonymous)
28/05/2010 Lotus Notes Forum - lotus notes 8 calendars & email setup...    (Dermick Vaughn)
19/05/2010 Lotus Notes Forum - Stop sending delivery and read receipts    (Simon)
19/05/2010 Lotus Notes Forum - Folder Restore Tool v2.5 is released, try for ten databases for free    (Kim van den Berg)
19/05/2010 Lotus Notes Forum - Try our Archive Solution for free for ten databases (mail/applications/quickr places)    (Kim van den Berg)
14/05/2010 Lotus Notes Forum - Adobe fillable form submit Email button not working with lotus    (Anthony )
12/05/2010 Lotus Notes Forum - Recipients on archived mails differ from regular mail    (Borja)
03/05/2010 Lotus Notes Forum - Name change only partially works    (Anonymous)
02/05/2010 Lotus Notes Forum - How to edit value in MASTER from, and backupdate MAIN form??    (Julee)
22/04/2010 Lotus Notes Forum - Note 8 Alarms Not Working    (Tony D)
07/04/2010 Lotus Notes Forum - Lotus Notes Agent to send an e-mail every month    (Lorant)
31/03/2010 Lotus Notes Forum - Lotus Notes C++, LNText Item, Unicode    (Matt)
19/03/2010 Lotus Notes Forum - Searching for a date in a document collection    (Kris Mitchell)
16/03/2010 Lotus Notes Forum - Lotus CAPI --> CSharp    (HW)
12/03/2010 Lotus Notes Forum - Notes IMAP connection    (Charl)
 Latest Tips & Tricks
10/07/2009Terminal Services Tips & Tricks - How to kill terminal server sessions. Utilities for terminal services: qwinsta and rwinsta(Steven Charles Robinson)
10/07/2009.NET Tips & Tricks - The type or namespace name could not be found (are you missing a using directive or an assembly reference?)(SCRobinson)
10/07/2009Terminate Lotus Notes Processes, Error Tips & Tricks - Lotus Notes: An Error Was Encountered While Opening A Window(Steven Charles Robinson)
26/04/2007LotusScript Mail, SMTP, Spam, Junkmail Tips & Tricks - How to drag and drop spam into junk mail filter using LotusScript(Steven Charles Robinson)
31/10/2006Terminate Lotus Notes Processes, Error Tips & Tricks - Lotus Notes: An Error Was Encountered While Opening A Window(Steven Charles Robinson)
23/10/2006Errors, SMTP, Internet Sites, Configuration, Administration, Domino 7 Tips & Tricks - Domino authentication is not enabled in the smtp internet site document(Steven Charles Robinson)
20/10/2006Articles Tips & Tricks - Have you see our recent arcticle in "The View": Proven techniques for abstracting UI from data using XML, XSL and Domino.(Steven Charles Robinson)
26/09/2006.NET Tips & Tricks - If your looking for .NET tips visit http://www.codedotnet.net(S C Robinson)
25/09/2006Using Lotus Notes Tips & Tricks - Save the Window state of a Lotus Notes client on shutdown.(Steven Charles Robinson)
22/09/2006NET, Culture, Globalization Tips & Tricks - How to find out the current culture in a .NET application.(Steve C Robinson)
© 2003 notes411.com. All rights reserved. Disclaimer. site designed & developed by appsworks.com
Lotus Notes is a registered trademark of IBM. This site is not affiliated with IBM or Lotus.
 News

 Google Box
 Sponsor
ClearCase, Subversion, WebSphere Consulting
 Best in the Industry
Lotus Notes & Domino FAQ