ファイルを一つのみ選択した場合は、正常にファイルのパスを返してくれるのですが、
複数選択した場合、ファイルのパスでなく、フォルダのパスが返ってきてしまいます。
どのようにすれば、正常に返してくれるのでしょうか。
#uselib "Comdlg32.DLL" #func GetOpenFileName "GetOpenFileNameA" int #define BUFSIZE 260 #define FILTERSIZE 512 #define ALLTYPE "ALL files (*.*)@*.*@" #define PICTURE "画像ファイル (*.bmp;*.mag;*.jpg)@*.bmp;*.mag;*.jpg@" #define SOUND "音楽ファイル (*.mid;*.mp3;*.wav)@*.mid;*.mp3;*.wav@" #define DOCUMENT "文書ファイル (*.txt)@*.txt@" #define OFN_FILEMUSTEXIST $00001000 #define OFN_OVERWRITEPROMPT $00000002 #define OFN_ALLOWMULTISELECT $00000200 #define OFN_EXPLORER mref bmscr , 67 dim ofn , 22 sdim aplFilter , FILTERSIZE+1 sdim usrFilter , FILTERSIZE+1 sdim filename , BUFSIZE+1 aplFilter = PICTURE + SOUND + DOCUMENT + ALLTYPE + "@" usrFilter = "ユーザ選択フィルタ (*.*)@*.*@" + "@" repeat await 0 mutch=instr(aplFilter,start,"@") if mutch = -1 : break poke aplFilter , start + mutch , $00 start += mutch + 1 loop start = 0 repeat await 0 mutch=instr(usrFilter,start,"@") if mutch = -1 : break poke usrFilter , start + mutch , $00 start += mutch + 1 loop ofn.0 = 88 ; lStructSize ofn.1 = bmscr.13 ; hwndOwner ofn.2 = bmscr.14 ; hInstance ofn.3=varptr(aplFilter) ; lpstrFilter ofn.4=varptr(usrFilter) ; lpstrCustomFilter ofn.5 = FILTERSIZE ; nMaxCustFilter ofn.6 = 1 ; nFilterIndex ofn.7=varptr(filename) ; lpstrFile ofn.8 = BUFSIZE ; nMaxFile ofn.9 = 0 ; lpstrFileTitle ofn.10 = 0 ; nMaxFileTitle ofn.11 = 0 ; lpstrInitialDir ofn.12 = 0 ; lpstrTitle ofn.13 = OFN_FILEMUSTEXIST|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT|OFN_EXPLORER ; Flags prm=varptr(ofn) GetOpenFileName prm if stat=0{ dialog "失敗",0,"終了確認":end } mes filename stop