WM_DROPFILES = &233
*SYS 1
MaxDroppedFiles% = 100
DIM DroppedFile$(MaxDroppedFiles%-1), DroppedAt{x%,y%}
Dropped% = 0
ON SYS PROCsys(@msg%, @wparam%, @lparam%) : RETURN
SYS "DragAcceptFiles", @hwnd%, 1
REPEAT
WAIT 1
IF Dropped% THEN
PRINT "Number of objects dropped: ";Dropped%
PRINT "Objects dropped at x=";DroppedAt.x%;", y=";DroppedAt.y%
FOR I% = 0 TO Dropped%-1
IF I% >= MaxDroppedFiles% THEN EXIT FOR
PRINT "Object ";I%;": ";
SYS"GetFileAttributes", DroppedFile$(I%) TO sh%
IF sh% AND 16 THEN PRINT"Dir. "; ELSE PRINT"File ";
PRINT DroppedFile$(I%)
ch%=OPENIN(DroppedFile$(I%)+".inf")
IF ch% THEN
LD$="":EX$="":AT$=""
A$=GET$#ch%:CLOSE#ch%
A$=MID$(A$,INSTR(A$," ")+1)
WHILE LEFT$(A$,1)=" ":A$=MID$(A$,2):ENDWHILE
A%=INSTR(A$+" "," "):LD$=LEFT$(A$,A%-1):A$=MID$(A$,A%+1)
WHILE LEFT$(A$,1)=" ":A$=MID$(A$,2):ENDWHILE
A%=INSTR(A$+" "," "):EX$=LEFT$(A$,A%-1):A$=MID$(A$,A%+1)
WHILE LEFT$(A$,1)=" ":A$=MID$(A$,2):ENDWHILE
A%=INSTR(A$+" "," "):SZ$=LEFT$(A$,A%-1):A$=MID$(A$,A%+1)
WHILE LEFT$(A$,1)=" ":A$=MID$(A$,2):ENDWHILE
A%=INSTR(A$+" "," "):AT$=LEFT$(A$,A%-1):A$=MID$(A$,A%+1)
IF LEFT$(AT$,1)="L":A$="08"
PRINT"BBC info: ";LD$;" ";EX$;" ";SZ$;" ";AT$
ENDIF
NEXT I%
Dropped% = 0
ENDIF
UNTIL FALSE
END
DEFPROCsys(M%,W%,L%)
CASE M% OF
WHEN WM_DROPFILES:
LOCAL B%, I%
DIM B% LOCAL 260
SYS "DragQueryFile", W%, -1, 0, 0 TO Dropped%
IF Dropped% <> 0 THEN
FOR I% = 0 TO Dropped%-1
IF I% >= MaxDroppedFiles% THEN EXIT FOR
SYS "DragQueryFile", W%, I%, B%, 260
DroppedFile$(I%) = $$B%
NEXT I%
ENDIF
SYS "DragQueryPoint", W%, DroppedAt{}
SYS "DragFinish", W%
ENDCASE
ENDPROC