#INCLUDE SHFileOperation.h > >LPARAMETERS tcSource, tcDestination, tcAction, tlCanceled >LOCAL lcSourceString, lcDestString, nStringBase, lcFileOpStruct, lnFlag, lnStringBase , lcProgressTitle >LOCAL oHeap, lcAction, lcActionText, lcOpt, lnRetCode > >DECLARE INTEGER SHFileOperation IN SHELL32.DLL STRING @ LPSHFILEOPSTRUCT >SET PROCEDURE TO CLSHEAP ADDITIVE >oHeap = CREATEOBJ('Heap') > >lcAction = UPPER(IIF( Empty( tcAction) Or VarType(tcAction) <> "C", "COPY", tcAction)) > >DO CASE >CASE lcAction = "COPY" > lcActionText = PROPER("COPY") > lnAction = FO_COPY >CASE lcAction = "MOVE" > lcActionText = PROPER("MOVE") > lnAction = FO_MOVE >CASE lcAction = "DELETE" > lcActionText = PROPER("DELETE") > lnAction = FO_DELETE >CASE lcAction = "RENAME" > lcActionText = PROPER("RENAME") > lnAction = FO_RENAME >OTHERWISE > RETURN Null >ENDCASE > >lcOpt = "" > >lcSourceString = tcSource + CHR(0) + CHR(0) >lcDestString = tcDestination + CHR(0) + CHR(0) >lnStringBase = oHeap.AllocBlob(lcSourceString+lcDestString) >lcProgressTitle = lcActionText + " File '" + tcSource + "'" + "" + ; > IIF(lcAction="DELETE", "", " to '" + tcDestination + "'") + CHR(0)+ CHR(0) >lnProgressTitle = oHeap.AllocBlob(lcProgressTitle) > >lnFlag = FOF_NOCONFIRMATION + FOF_NOCONFIRMMKDIR + FOF_NOERRORUI > >IF NOT ("*" $ tcSource OR "?" $ tcSource ) > *lnFlag = lnFlag + FOF_SIMPLEPROGRESS >ENDIF > >lcFileOpStruct = NumToLONG(_screen.hWnd) + ; > NumToLONG(lnAction) + ; > NumToLONG(lnStringBase) + ; > NumToLONG(lnStringBase + LEN(lcSourceString)) + ; > NumToWORD(lnFlag) + ; > NumToLONG(0) + ; > NumToLONG(0) + ; > NumToLONG(lnProgressTitle ) > >lnRetCode = SHFileOperation(@lcFileOpStruct) > >* Did user canceled operation? >tlCanceled = ( SUBSTR(lcFileOpStruct, 19, 4) <> NumToLONG(0) ) > >RETURN (lnRetCode = 0) >>>Hi everybody,
>>lcFile = forceext(alltrim(.list(m.lnI,1)),"*") >> if CopyFiles(m.dir_Download+ m.lcFile, ; >> m.dir_Lookups+ m.lcFile,'Copy') >> erase (m.dir_Download+ m.lcFile) >> endif>>