うむ?uさん投稿を消してしまわれたのですか?
あまり、投稿を消さないほうがいいですよ。
ここを参考にしながら、サンプルを組んでみました。
http://hspdev-wiki.net/?%BC%AB%C6%B0%A5%D5%A5%A1%A5%A4%A5%EB%A5%C9%A5%ED%A5%C3%A5%D7
メモ帳を起動させてから実行してみてください。
#uselib "kernel32.dll"
#func global GlobalAlloc "GlobalAlloc" sptr, sptr
#func global GlobalLock "GlobalLock" sptr
#func global GlobalUnlock "GlobalUnlock" sptr
#func global GlobalFree "GlobalFree" sptr
#uselib "user32.dll"
#func global PostMessage "PostMessageA" sptr, sptr, sptr, sptr
#func global FindWindowEx "FindWindowExA" sptr, sptr, sptr, sptr
#define global GPTR 0x040 //固定の0で初期化した共有メモリを割り当てる。
#define global WM_DROPFILES 0x233 //D&Dしたときに発生するメッセージ。
#define DROPFILES_SIZE 20 //DROPFILES構造体のサイズ。
//-----ここから-----------
onexit *exit
dialog "*", 16, "ドラッグアンドドロップするファイル。"
fname = refstr //ファイルパス
FindWindowEx 0, 0, "Notepad", 0 //メモ帳のハンドルを取得
hTarget = stat //ターゲットウィンドウのハンドル
mx = 50 //ドロップする座標
my = 50 // 〃
//共有メモリを確保する。
//ここに格納するデータは、パスとDROPDILES構造体なので、二つ分確保。
GlobalAlloc GPTR, (strlen(fname)*4) +DROPFILES_SIZE
//GlobalAllocはハンドルを返します。
hMem = stat
//ハンドルだけあってもしょうがないので、メモリのポインタに変換します。
GlobalLock hMem
pMem = stat
//ポインタだけあってもしょうがないので、HSPの変数に割り当てます。
//DROPFILES構造体
dupptr df, pMem, DROPFILES_SIZE
//ファイルのパス
dupptr path, pMem +DROPFILES_SIZE, strlen(fname)
df(0) = 20 //構造体の全体のサイズを指定します。構造体は大体ここにサイズを指定する必要があります。
df(1) = mx //ドロップ先のX座標を指定します。
df(2) = my //ドロップ先のY座標を指定します。
df(3) = 1 //ここが1だと、ターゲットウィンドウのクライアント座標となります。多分。
df(4) = 1 //ここが1だと、unicodeを使用します。多分。
cnvstow path, fname //ファイル名をunicodeに変換して書き込みます。
//最後に、WM_DROPFILESメッセージをターゲットにポストします。
PostMessage hTarget, WM_DROPFILES, hMem, 0
stop
*exit
//共有メモリの開放。
GlobalUnlock hMem
GlobalFree hMem
end