PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
1050 98/03/26 17:56:57 RE(13)::複数ファイル処理です By てとらぽっと
1047 98/03/26 10:26:10 RE(12):複数ファイル処理です By nari
1046 98/03/26 10:22:49 RE(11):なんとかできました&サンプルスクリプト By nari
1042 98/03/25 16:59:36 RE(10):複数ファイル処理です By てとらぽっと
1040 98/03/25 16:40:01 RE(9):おめでとうございます!!! By Taka
1039 98/03/25 16:10:31 RE(8):なんとかできました&サンプルスクリプト By てとらぽっと
1024 98/03/24 22:15:40 RE(7):pbm_dropfiles がアヤシイと思う By Taka
1018 98/03/24 18:25:02 RE(6):MDIフレームにファイルをドロップしたい(APIの質問) By nari
1017 98/03/24 18:22:33 RE(5):MDIフレームにファイルをドロップしたい(APIの質問) By nari
1006 98/03/24 12:20:36 RE(4):コールできました、あ、エラー? By てとらぽっと
992 98/03/23 18:56:28 RE(3):コールできました、あ、エラー? By Taka
987 98/03/23 18:26:45 RE(2):コールできました、あ、エラー? By てとらぽっと
970 98/03/23 13:01:28 RE(1):ムム、やってますね? By Taka
967 98/03/23 12:09:31 MDIフレームにファイルをドロップしたい(APIの質問) By てとらぽっと

カテゴリ:旧電子会議室
日付:1998年03月25日 16:10 発信者:てとらぽっと
題名:RE(8):なんとかできました&サンプルスクリプト

なんとかできました! Takaさん、nariさん、ありがとうございました。

間違い1.
ファイルのインデックス(第2引数)ですが、よく考えると配列の始まりは 0 かな、と与えてみますと正解でした。

間違い2.
正体が判らない HDROP(第1引数)に Handle を与えていたのですが、正解は Message.WordParm でした。
DropFileイベントの引数にもなっているし、てっきりこれだと思い込んでいました。

Takaさんの発言>でも、肝心の Handle パラメータが、常にゼロじゃありません?

これも早いうちに気づいていたのですが、結果的に因果関係はなかったですね。(^^;

???3.
プロトタイプ宣言が UINT DragQueryFile(HDROP hDrop, UINT iFile, LPTSTR lpszFile, UINT cch) 
だったため、UINTを Unsigned Long にしていたのですが、Win32 APIリファレンス(ASCII)を立ち読みしますと、
VBの宣言では As Long となっていました。試してみたら Long でも Unsigned Long でも動いてしまった。


以下にサンプルを挙げておきます。
スクリプトが長くなるので、複数ファイルをつかんで落とす処理は書いていません。

-- 外部関数の宣言 -------------------------------------------------------------
Function long DragAcceptFiles(long handle, boolean fAccept) library \"SHELL32.DLL\"
Function long DragQueryFileA( long hDrop, long iFileIndex, ref string szFileName, long cch) library \"SHELL32.DLL\"
SUBROUTINE DragFinish(long hDrop) library \"SHELL32.DLL\"

-- Open(等、初期化)のイベント --------------------------------------------------
DragAcceptFiles(Handle(This),  True)

-- イベントID pbm_dropfiles ------------------------------------------------------
string ls_FileName
long ll_hDrop
long ll_BufSize
long ll_FileIndex

ll_hDrop = Message.WordParm
ll_FileIndex = 0
ll_BufSize = 255
ls_FileName = Space(ll_BufSize)

DragQueryFileA(ll_hDrop, ll_FileIndex, ls_FileName, ll_BufSize)
DragFinish(ll_hdrop)

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS (記載なし)
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.