Restored from previous forum. Originally posted by fred.
Code: Select all
; Original source code by James L.Boyd
Procedure DropFiles()
ProcedureReturn EventwParam()
EndProcedure
Procedure GetNumDropFiles(*dropFiles)
ProcedureReturn DragQueryFile_(*dropFiles, $FFFFFFFF, temp$, 0)
EndProcedure
Procedure.s GetDropFile(*dropFiles, index)
bufferNeeded = DragQueryFile_(*dropFiles, index, 0, 0)
buffer$ = Space(bufferNeeded)
DragQueryFile_(*dropFiles, index, buffer$, bufferNeeded + 1)
ProcedureReturn buffer$
EndProcedure
Procedure FreeDropFiles(*dropFiles)
DragFinish_(*dropFiles)
EndProcedure
If OpenWindow (0, 100, 100, 300, 100, "Drag'n'drop files",
#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TextGadget(0, 10, 10, 280, 30,
"Drag && drop files from file explorer into this window...")
DragAcceptFiles_(WindowID(0), 1)
Repeat
Select WaitWindowEvent()
Case #WM_DROPFILES
*dropped = DropFiles()
num = DragQueryFile_(*dropped, $FFFFFFFF, temp$, 0)
f$ = ""
For files = 0 To num - 1
f$ + GetDropFile(*dropped, files) + Chr(13)
Next
MessageRequester("Drag'n'drop files", Str(num) + " file (s) dropped:" +
Chr(13) + Chr(13) + f$ + Chr(13))
FreeDropFiles(*dropped)
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
EndIf