アットウィキロゴ

ウィンドウにドロップされたファイルの名前を取得する


; <<<< HSP 3.0 サンプル >>>>
;
;   ウィンドウにドロップされたファイルの名前を取得する
;
 
#uselib "shell32.dll"
#func DragAcceptFiles "DragAcceptFiles" int,int
#func DragQueryFile   "DragQueryFileA"  int,int,int,int
#func DragQueryPoint  "DragQueryPoint"  int,int
#func DragFinish      "DragFinish"      int

#define WM_DROPFILES    0x0233

; WM_DROPFILES メッセージハンドラを設定
oncmd gosub *OnDropFiles, WM_DROPFILES
 
; ファイルをドラッグ&ドロップできるように設定
DragAcceptFiles hwnd, 1
 
title "ウィンドウにファイルをドロップしてください"
stop
 
*OnDropFiles
; --- ファイルがドロップされたとき ---
 
; ドロップされたファイルの数を取得する
hdrop = wParam                  ; ドロップファイル情報のハンドル
DragQueryFile hdrop, -1, 0, 0
ndrop = stat                    ; ファイルの数
 
; 画面をクリア
syscolor 5 : boxf
syscolor 8 : pos 0,0
 
; ファイル名を取得して表示
sdim filename, 260
repeat ndrop
        DragQueryFile hdrop, cnt, varptr(filename), 260
        mes filename
loop
 
; ドロップファイル情報をクリア (これをしないとメモリリークになる)
DragFinish hdrop
return

最終更新:2009年11月02日 17:15