ll_libload ole, "ole32.dll"
ll_getproc CoTaskMemFree, "CoTaskMemFree", ole
ll_libload shell, "shell32.dll"
ll_getproc SHBrowseForFolder, "SHBrowseForFolder", shell
ll_getproc SHGetPathFromIDList, "SHGetPathFromIDList", shell
#module
#deffunc dirdlg val, str
mref dirpath, 24 : mref ttl, 33 : mref stt, 64
mref bmscr, 67
prm = bmscr.13, 0, 0, 0, 0x0001, 0, 0, 0
ll_getptr dirpath : ll_ret prm.2
ll_getptr ttl : ll_ret prm.3
ll_getptr prm : ll_ret prm.7
ll_callfunc prm.7, 1, SHBrowseForFolder@
ll_ret h
if h {
prm = h, prm.2
ll_callfunc prm, 2, SHGetPathFromIDList@
ll_callfunc h, 1, CoTaskMemFree@
}
stt = h ! 0
return
#global
sdim dir, 260
dirdlg dir, "フォルダを選択してください"
if stat {
dialog dir, , "選択フォルダ"
} else {
dialog "フォルダは選択されませんでした"
}
end
|