/*====================================================================
Drag And Drop モジュール2号 HSP3.0β5? 1号作成 HSP3.22 2011.04.04 新規作成 ---------------------------------------------------------------------- 現在のウィンドウにDandDを受け入れる DandD_SetWindow flag flag = 0(受け入れ拒否) or 1(受け入れ許可) DandD割り込み実行指定(#defineで定義) DandD_SetSubLabel ジャンプ先ラベル(*xxx) ユーザーがDandDした時にサブルーチンジャンプを実行する(return必須) ラベル省略で割り込み無効 DandDを受け取った時の情報を取得する関数 DandD_GetInfo( flag ) flag = 0(ファイル数) or 1(X座標) or 2(Y座標) or 3(WinID) 複数回DandDした場合は最後の状態を取得する DandDで受け取ったファイルの一覧を取得する DandD_GetList 一覧を受け取る変数 メモリーノート形式で代入する 複数回DandDした場合は最後のDandDで受け取ったファイルの一覧 DandDで受け取ったファイルパスを取得する関数(メモリーノート+1) DandD_GetPath( Index ) Index = 0〜(一覧のインデックス) ====================================================================*/ #ifndef DragAndDropModuleIncluded #define DragAndDropModuleIncluded #module DragAndDropModule #uselib "shell32.dll" ; ★ドラッグ&ドロップをするAPI #func DragAcceptFiles "DragAcceptFiles" int, int #func DragQueryFile "DragQueryFileA" int, int, var, int #func DragQueryPoint "DragQueryPoint" int, var #func DragFinish "DragFinish" int #define WM_DROPFILES $0233 ; DragAndDrop #define global DandD_SetSubLabel(%1=0) DadmLabel@DragAndDropModule=%1 #deffunc DandD_SetWindow int f if f { oncmd gosub *DadmGetMessageL, WM_DROPFILES DragAcceptFiles hwnd, 1 ; On } else { DragAcceptFiles hwnd, 0 ; Off } return #deffunc DandD_GetList var s s = DadmList return #defcfunc DandD_GetPath int i notesel DadmList : noteget sb, i : noteunsel return sb #defcfunc DandD_GetInfo int f return DadmInfo(f) *DadmGetMessageL ; メッセージ到着 hDrop = wParam ; 内部ハンドル DadmInfo(3) = ginfo_intid ; 対象のウィンドウID DragQueryPoint hDrop, DadmInfo(1) ; 座標 DragQueryFile hDrop, -1, DadmInfo, 0 ; 変数はダミー DadmInfo = stat ; ファイル数 DadmList = "" repeat DadmInfo DragQueryFile hDrop, cnt, sb, 0 ; 文字数は? if sbleng <= stat : sbleng = stat + 1 : sdim sb, sbleng DragQueryFile hDrop, cnt, sb, sbleng ; 取得 DadmList += sb + "\n" loop DragFinish hDrop ; 内部ハンドル解放 if vartype(DadmLabel) == 1 : gosub DadmLabel ; サブルーチン return 0 ; メッセージ処理完了 ; http://www.tvg.ne.jp/menyukko/ ; Copyright(C) 2011 衣日和 All rights reserved. #global #endif
昔どこかで拾ったモジュールなんですが
DandD_GetInfoのx座標、y座標の関数が上手くいってないようなんです
直そうにもAPIとかグローバル命令とかさっぱりなので…
どこがどうおかしいのか教えてもらえないでしょうか?