File "DragnDrop.inc"
Path: /MyWebradios/inc/DragnDrop.inc
File size: 1.56 KB
MIME-type:
Charset: utf-8
' Change the 2 following constants when including this file, following your needs:
%ACTIVATE_DRAGNDROP_AT_DIALOG_CREATION = %TRUE
%ALLOW_ONLY_SINGLE_FILE_DRAGNDROP = %TRUE
' Then implement the following Sub:
DECLARE SUB FileDropped(BYVAL myfile AS STRING)
' And finally call CB_DRAGNDROP at the very beginning of your Dialog CALLBACK
GLOBAL oDropFile AS DropFileI
MACRO CB_DRAGNDROP
MACROTEMP i, fileCount, szFile
SELECT CASE AS LONG CB.MSG
CASE %WM_INITDIALOG
oDropFile = CLASS "DropFileC"
IF %ACTIVATE_DRAGNDROP_AT_DIALOG_CREATION THEN DragAcceptFiles CB.HNDL, %TRUE
CASE %WM_DROPFILES
DIM i AS LONG
DIM fileCount AS LONG
DIM szFile AS ASCIIZ * %MAX_PATH
fileCount = DragQueryFile(CB.WPARAM, -1, BYVAL 0, 0)
IF %ALLOW_ONLY_SINGLE_FILE_DRAGNDROP AND fileCount > 1 THEN
MessageBox CB.HNDL,"Please drag and drop only 1 .mrw file","Error",%MB_ICONWARNING
EXIT FUNCTION
END IF
FOR i = 0 TO fileCount - 1
DragQueryFile CB.WPARAM, i, szFile, SIZEOF(szFile)
oDropFile.OnDropFile(CB.HNDL, szFile)
NEXT i
DragFinish CB.WPARAM
CASE %WM_DESTROY
IF %ACTIVATE_DRAGNDROP_AT_DIALOG_CREATION THEN DragAcceptFiles CB.HNDL, %FALSE
END SELECT
END MACRO
CLASS DropFileC
INTERFACE DropFileI : INHERIT IUNKNOWN
METHOD OnDropFile(BYVAL hDlg AS DWORD, BYVAL myfile AS STRING)
FileDropped myfile
END METHOD
END INTERFACE
END CLASS