>スレ主さん
NO.29799で紹介しました
コールバック関数実装プラグイン hscallbk.dll for HSP3
を使ってサンプルを書きましたので載せておきます
#include "User32.as"
#include "Shell32.as"
#include "hscallbk.as"
// コールバック関数の関数形式を定義
// ( DLL名および関数名はダミー (空文字列) )
#uselib ""
#func InpWndProc "" int,int,int,int
// コールバック関数の登録
setcallbk Proc, InpWndProc, *MyInpWndProc
#define GWL_WNDPROC (-4)
#define WM_DROPFILES 0x0233
sdim inp,262
objmode 2
pos 5,5
input inp,600,25
inpid=stat
//入力ボックスにドラッグアンドドロップされたファイルを受け取るように設定
DragAcceptFiles objinfo(inpid,2),1
//入力ボックスのウィンドウプロシージャを
//自前の物に変える
SetWindowLong objinfo(inpid,2),GWL_WNDPROC,varptr(Proc)
//変更前のウィンドウプロシージャのアドレスを取っておく
OldWndProc=stat
sdim FileAdd,261
stop
*MyInpWndProc
if callbkarg(1)==WM_DROPFILES{
//1番最初のファイルのアドレスを取得
DragQueryFile callbkarg(2),0,varptr(FileAdd),261
//ドロップファイル用のメモリを解放
DragFinish callbkarg(2)
//入力ボックスに1番最初のファイルのアドレスを表示
objprm inpid,FileAdd
}else{
//WM_DROPFILES以外のメッセージは元々のウィンドウプロシージャに任せる
CallWindowProc OldWndProc,callbkarg(0),callbkarg(1),callbkarg(2),callbkarg(3)
}
return
尚このサンプルを実行するには
コールバック関数実装プラグイン hscallbk.dll for HSP3
が必要になります
http://hsp.tv/make/tool1.html
から コールバック関数実装プラグイン hscallbk.dll for HSP3
のダウンロードのページに行くことができますのでご自身で導入してください