dim fs{lStructSize%, hwndOwner%, hInstance%, lpstrFilter%, \
\ lpstrCustomFilter%, nMaxCustFilter%, nFilterIndex%, \
\ lpstrFile%, nMaxFile%, lpstrFileTitle%, \
\ nMaxFileTitle%, lpstrInitialDir%, lpstrTitle%, \
\ flags%, nFileOffset{l&,h&}, nFileExtension{l&,h&}, \
\ lpstrDefExt%, lCustData%, lpfnHook%, lpTemplateName%}
dim fp{t&(260)}
rem ff$ = "BMP files"+chr$0+"*.dat"+chr$0+chr$0
fs.lStructSize% = dim(fs{})
fs.hwndOwner% = @hwnd%
fs.lpstrFilter% = !^ff$
fs.lpstrFile% = fp{}
fs.nMaxFile% = 260
fs.flags% = 6
ff$ = "PDF"+chr$0+"*.pdf"+chr$0+"txt files"+chr$0+"*.txt"+chr$0+chr$0
rem ff$ = "data files"+chr$0+"*.BMP;*.GIF;*.JPG"+chr$0+chr$0
sys "GetOpenFileName", fs{} to result%
if result% filename$ = $$fp{}