Function FTP Parameter lcFTPSite, lcUserID, lcPasswd, lcRemFile, lcLocFile, llDLoad SET PROCEDURE TO wwUtils ADDITIVE SET CLASSLIB TO wwIPStuff ADDITIVE PUBLIC loFTP loFTP=CREATE("myFTP") Wait Window Nowait "FTP: Connecting to " + lcFTPSite + "..." If loFTP.FTPConnect(lcFTPSite, lcUserID, lcPasswd) # 0 Wait Window "FTP ERROR: " + loFTP.cErrorMsg Return .F. Else Wait Window Nowait "Connection established." EndIf On Key Label ALT-X loFTP.lCancelDownload = .T. If llDLoad Wait Window Nowait " Downloading file " + lcRemFile + " to file " + lcLocFile If loFTP.FtpGetFileEx(lcRemFile, lcLocFile) # 0 Wait Window "FTP ERROR: " + loFTP.cErrorMsg llRetVal = .F. Else Wait Window Nowait "Transfer complete." llRetVal = .T. EndIf Else Wait Window Nowait "Uploading file " + lcLocFile + " to file " + lcRemFile If loFTP.FtpSendFileEx(lcLocFile, lcRemFile) # 0 Wait Window "FTP ERROR: " + loFTP.cErrorMsg llRetVal = .F. Else Wait Window Nowait "Transfer complete." llRetVal = .T. EndIf EndIf On Key Label ALT-X Return llRetVal Define class myFtp as wwFTP Function OnFTPBufferUpdate LParameter lnBytesDownloaded,lnBufferReads,lcCurrentChunk Do Case CASE lnBufferReads > 0 Wait Window "Transferred: " + TRANSFORM(lnBytesDownloaded)+ " bytes (Alt-X to abort)" NoWait CASE lnBufferReads = -1 Wait Window "Transfer ended." timeout 2 EndCase Return ENDDEFINE