Unit FTP4W

Classes

Functions

InitFTP4WDLL - Check to see if we have right version of DLL.

Types

TFtpMGetCallback
TFtpMtInitCallback

Constants

FTP4W_FWPROXY
FTP4W_FWSITE
FTP4W_FWUSERNOLOGON
FTP4W_FWUSERWITHLOGON
FTP4W_Loaded
FTP4W_RightVersion
FTPERR_ACCOUNTNEEDED
FTPERR_ASYNCMODE
FTPERR_CANCELBYUSER
FTPERR_CANNOTCHANGETYPE
FTPERR_CANTBINDSOCKET
FTPERR_CANTCLOSE
FTPERR_CANTCONNECT
FTPERR_CANTCREATESOCKET
FTPERR_CANTCREATEWINDOW
FTPERR_CANTOPENFILE
FTPERR_CANTWRITE
FTPERR_CMDNOTIMPLEMENTED
FTPERR_CONNECTREJECTED
FTPERR_DATACONNECTION
FTPERR_ENDOFDATA
FTPERR_ENTERACCOUNT
FTPERR_ENTERPASSWORD
FTPERR_FILELOCKED
FTPERR_FWCANTCONNECT
FTPERR_FWCONNECTREJECTED
FTPERR_FWLOGINREFUSED
FTPERR_INSMEMORY
FTPERR_INVALIDPARAMETER
FTPERR_LOGINREFUSED
FTPERR_NOACTIVESESSION
FTPERR_NOREMOTEFILE
FTPERR_NOREPLY
FTPERR_NOTCONNECTED
FTPERR_NOTINITIALIZED
FTPERR_OK
FTPERR_PASVCMDNOTIMPL
FTPERR_PWDBADFMT
FTPERR_RESTARTOK
FTPERR_SENDREFUSED
FTPERR_SERVERCANTEXECUTE
FTPERR_SESSIONUSED
FTPERR_STILLCONNECTED
FTPERR_SYSTUNKNOWN
FTPERR_TIMEOUT
FTPERR_TRANSFERREFUSED
FTPERR_UNEXPECTEDANSWER
FTPERR_UNKNOWNHOST
FTPERR_WINSOCKNOTUSABLE
FTP_APPEND_ON_SERVER
FTP_GET_FROM_SERVER
FTP_STORE_ON_SERVER
TYPE_A
TYPE_DEFAULT
TYPE_I
TYPE_L8

Variables

Ftp4wVer
FtpAbort
FtpAppendToLocalFile
FtpAppendToRemoteFile
FtpBufferPtr
FtpBytesToBeTransferred
FtpBytesTransferred
FtpCDUP
FtpCloseConnection
FtpCloseDataConnection
FtpCWD
FtpDeleteFile
FtpDir
FtpErrorString
FtpFirewallLogin
FtpFlush
FtpGetFileSize
FtpHelp
FtpInit
FtpIsAsynchronousMode
FtpLocalClose
FtpLogin
FtpLogTo
FtpMGet
FtpMKD
FtpMtInit
FtpOpenConnection
FtpOpenDataConnection
FtpPWD
FtpQuote
FtpRecvFile
FtpRecvThroughDataConnection
FtpRelease
FtpRenameFile
FtpRestart
FtpRestartRecvFile
FtpRestartSendFile
FtpRMD
FtpSendAccount
FtpSendFile
FtpSendPasswd
FtpSendThroughDataConnection
FtpSendUserName
FtpSetAsynchronousMode
FtpSetDefaultPort
FtpSetDefaultTimeOut
FtpSetNewDelay
FtpSetNewSlices
FtpSetPassiveMode
FtpSetSynchronousMode
FtpSetType
FtpSetVerboseMode
FtpSyst
InitFtpGetAnswerCode


Functions


procedure InitFTP4WDLL;

Check to see if we have right version of DLL. } // Must call this before doing anything else.

Unload the DLL.


Types


TFtpMGetCallback = function (szRemFile, szLocalFile: PChar; Rc: integer): bool
FtpMGet callback function type.
TFtpMtInitCallback = function: DWORD
FtpMtInit callback function type.

Constants

FTP4W_FWPROXY = 103

FTP4W_FWSITE = 100

Firewall Types, for when Philippe gets firewall done.

FTP4W_FWUSERNOLOGON = 109

FTP4W_FWUSERWITHLOGON = 106

FTP4W_Loaded = FALSE

Updated Mar 3. 1997 by Brad Stowers (bstowers@pobox.com) for use with FTP4W } { v3.0. Modified to add new functions, fix some errors, make it "cleaner", and } { work with Delphi 2. I do not use Delphi 1 at all, so it is extremely likely } { that this won't work with Delphi 1, i.e. 'stdcall' won't compile. If you need } { to use with Delphi 1, use the Pascal 'UseFTP4W.pas' sample file, or try } { deleting all the 'stdcall' directives. } { This code based on previous work as credited below: } {by Barbara Tikart Polarwolf Hard & Software, D-63906 Erlenbach am Main} {and AStA Uni Konstanz (AStA = Allgemeiner Studierenden Ausschuss)} {eMail to Andreas.Tikart@uni-konstanz.de or AStA@uni-konstanz.de} {Declarations for FTP module to use with 'FTP4W' Version 2.2g or higher} {Released into Public Domain} {Get the newest version via http://www.uni-konstanz.de/studis/asta/software/index.html

FTP4W_RightVersion = FALSE

Check to see if the DLL was loaded.

FTPERR_ACCOUNTNEEDED = 2

user/pass OK but account required

FTPERR_ASYNCMODE = 1016

Firewallrejects usrid/passwd

FTPERR_CANCELBYUSER = -1

server has closed the data-conn

FTPERR_CANNOTCHANGETYPE = 3002

answer was not expected

FTPERR_CANTBINDSOCKET = 5005

no more socket

FTPERR_CANTCLOSE = 1013

A winsock.DLL ver 1.1 is required

FTPERR_CANTCONNECT = 2003

host does not send an answer

FTPERR_CANTCREATESOCKET = 5004

Insufficient Heap memory

FTPERR_CANTCREATEWINDOW = 5002

Server don't support passive mode } { Resource errors

FTPERR_CANTOPENFILE = 1004

User is not connected to a server

FTPERR_CANTWRITE = 1005

can not open specified file

FTPERR_CMDNOTIMPLEMENTED = 3003

host rejects the TYPE command

FTPERR_CONNECTREJECTED = 2004

Error during connection

FTPERR_DATACONNECTION = 2006

can't send data (network down)

FTPERR_ENDOFDATA = 4

Restart command successful

FTPERR_ENTERACCOUNT = 2

userid need a password

FTPERR_ENTERPASSWORD = 1

succesful function

FTPERR_FILELOCKED = 1014

close failed (cmd is in progress)

FTPERR_FWCANTCONNECT = 2008

timeout occurred

FTPERR_FWCONNECTREJECTED = 2009

Error during connection with FW

FTPERR_FWLOGINREFUSED = 1015

temporary error during FtpDelete

FTPERR_INSMEMORY = 5003

Insufficent free resources

FTPERR_INVALIDPARAMETER = 1000

Transfer aborted by user FtpAbort} { User's or programmer's errors

FTPERR_LOGINREFUSED = 1009

file action not taken

FTPERR_NOACTIVESESSION = 1006

can't write into file (disk full?)

FTPERR_NOREMOTEFILE = 1010

Server rejects usrid/passwd

FTPERR_NOREPLY = 2002

can not resolve host adress

FTPERR_NOTCONNECTED = 1003

FtpInit has not been call

FTPERR_NOTINITIALIZED = 1002

User has already a FTP session

FTPERR_OK = 0

Return codes of FTP functions

FTPERR_PASVCMDNOTIMPL = 3005

PWD cmd OK, but answer has no "

FTPERR_PWDBADFMT = 3004

host recognize but can't exec cmd

FTPERR_RESTARTOK = 3

user/pass OK but account required

FTPERR_SENDREFUSED = 2005

host has no FTP server

FTPERR_SERVERCANTEXECUTE = 1008

FtpRelease without any Close

FTPERR_SESSIONUSED = 1001

Error in parameters

FTPERR_STILLCONNECTED = 1007

FtpRelease without FtpInit

FTPERR_SYSTUNKNOWN = 5006

bind is not succesful

FTPERR_TIMEOUT = 2007

connection on data-port failed

FTPERR_TRANSFERREFUSED = 1011

server can not open file

FTPERR_UNEXPECTEDANSWER = 3001

Firewall has no FTP server } { FTP errors

FTPERR_UNKNOWNHOST = 2001

FtpMGet only in synchronous mode } { TCP errors

FTPERR_WINSOCKNOTUSABLE = 1012

Host refused the transfer

FTP_APPEND_ON_SERVER = 87

FTP_GET_FROM_SERVER = 223

FTP_STORE_ON_SERVER = 65

Whatever server thinks it is. } { Actions requested by user.... What are these?

TYPE_A = 'A'

Transfer modes.

TYPE_DEFAULT = #0

Local 8

TYPE_I = 'I'

ASCII

TYPE_L8 = 'L'

Image (Bin)

Variables

Ftp4wVer : function(szVerStr: PChar; nStrSize: integer): Integer

FtpAbort : function: Integer

file transfer

FtpAppendToLocalFile : function(Remote, Lcl: PChar; cType: char; Notify: Bool; hWindow: hWnd; wMSG: UINT): Integer

FtpAppendToRemoteFile : function(Local, Remote: PChar; cType: char; Notify: Bool; hWindow: hWnd; wMSG: UINT): Integer

FtpBufferPtr : function: PChar

Utilities functions

FtpBytesToBeTransferred : function: LongInt

FtpBytesTransferred : function: LongInt

FtpCDUP : function: Integer

FtpCloseConnection : function: Integer

FtpCloseDataConnection : function: integer

FtpCWD : function(Path: PChar): Integer

FtpDeleteFile : function(szRemoteFile: PChar): Integer

FtpDir : function (Def, LocalFile: PChar; LongDir: Bool; hWindow: hWnd; wMSG: UINT): Integer

Directory

FtpErrorString : function(Rc: integer): PChar

FtpFirewallLogin : function (szFWHost, szFWUser, szFWPass, szRemHost, szRemUser, szRemPass: PChar; nFirewallType: integer; hParentWnd: hWnd; wMsg: UINT): integer

Firewall

FtpFlush : function: Integer

FtpGetFileSize : function: DWORD

FtpHelp : function(Arg, Buf: PChar; BufSize: UINT): Integer

Commands

FtpInit : function(hWindow: hWnd): Integer

FtpIsAsynchronousMode : function: Bool

FtpLocalClose : function: Integer

FtpLogin : function(Host, User, Password: PChar; hWindow: hWnd; wMSG: UINT): Integer

Connection

FtpLogTo : procedure(hLogFile: HFile)

FtpMGet : function(szFilter: PChar; cType: char; bNotify: bool; Callback: TFtpMGetCallback): integer

FtpMKD : function(szPath, szFullDir: PChar; uBufSize: UINT): Integer

FtpMtInit : function(hWindow: hWnd; CallBack: TFtpMtInitCallback): integer

FtpOpenConnection : function(Host: PChar): Integer

FtpOpenDataConnection : function(szRemote: pchar; nAction: integer; cType: char): integer

Advanced

FtpPWD : function(szBuf: PChar; uBufSize: UINT): Integer

FtpQuote : function(Cmd, ReplyBuf: PChar; BufSize: UINT): Integer

FtpRecvFile : function(Remote, Lcl: PChar; cType: char; Notify: Bool; hWindow: hWnd; wMSG: UINT): Integer

FtpRecvThroughDataConnection : function(szBuf: Pchar; var BufSize: UINT): integer

FtpRelease : function: Integer

Init functions

FtpRenameFile : function(szFrom, szTo: PChar): Integer

FtpRestart : function(ByteCount: longint): integer

FtpRestartRecvFile : function(szRemote: PChar; hLocal: HFile; cType: char; bNotify: bool; ByteCount: Longint; hWindow: hWnd; wMsg: UINT): integer

FtpRestartSendFile : function(hLocal: HFile; szRemote: PChar; cType: char; bNotify: bool; ByteCount: Longint; hWindow: hWnd; wMsg: UINT): integer

FtpRMD : function(szPath: PChar): Integer

FtpSendAccount : function(Acct: PChar): integer

FtpSendFile : function(Local, Remote: PChar; cType: char; Notify: Bool; hWindow: hWnd; wMSG: UINT): Integer

FtpSendPasswd : function(Passwd: PChar): Integer

FtpSendThroughDataConnection : function(szBuf: PChar; BufSize: UINT): integer

FtpSendUserName : function(UserName: PChar): Integer

Authentification

FtpSetAsynchronousMode : procedure

FtpSetDefaultPort : procedure(nDefPort: Integer)

FtpSetDefaultTimeOut : procedure(nTo_in_sec: Integer)

FtpSetNewDelay : procedure(X: Integer)

FtpSetNewSlices : procedure(X, Y: Integer)

FtpSetPassiveMode : procedure(bPassive: Bool)

FtpSetSynchronousMode : procedure

FtpSetType : function(cType: char): Integer

FtpSetVerboseMode : function(bVerboseMode: bool; hWindow: hWnd; wMsg: UINT): Integer

Change default parameters

FtpSyst : function(szSystemStr: PChar): Integer

InitFtpGetAnswerCode : function: integer

Misc