Class TCustomFtpCli (unit Ftpcli)

Inherits from

TComponent

Constructors


constructor Create(AOwner: TComponent);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} {* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} {* * * *} {* * TCustomFtpCli * *} {* * * *} {* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} {* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


Functions

procedure AbortAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure AppendAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure AppendFileAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure CDupAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure ConnectAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure CwdAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DeleAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DeleteAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

destructor Destroy;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DirAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DirectoryAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DoQuoteAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure ExecAppendAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure ExecDirAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure ExecGetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure ExecLsAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure ExecPutAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure FileSizeAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure GetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure ListAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure LsAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure MkdAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure MkdirAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure OpenAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure PassAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure PutAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure PwdAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure QuitAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure QuoteAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure ReceiveAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure RenameAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure RenAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure RenFromAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure RenToAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure RestartGetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure RestAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure RestGetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure RmdAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure RmdirAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure SizeAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure SystAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure SystemAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure TransmitAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure TypeAsciiAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure TypeBinaryAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure TypeSetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure UserAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure CheckReady;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure ControlSocketDataAvailable(Sender: TObject; Error: Word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure ControlSocketDnsLookupDone(Sender: TObject; Error: Word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure ControlSocketSessionClosed(Sender: TObject; Error: Word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure ControlSocketSessionConnected(Sender: TObject; Error: Word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DataSocketGetDataAvailable(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DataSocketGetSessionAvailable(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DataSocketGetSessionClosed(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DataSocketGetSessionConnected(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DataSocketPutDataAvailable(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DataSocketPutDataSent(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DataSocketPutSessionAvailable(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DataSocketPutSessionClosed(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DataSocketPutSessionConnected(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DisplayLastResponse;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DoGetAsync(RqType : TFtpRequest);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { Receive a file or a directory list of a file list

procedure DoHighLevelAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DoneQuitAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure DoPutAppendAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure ExecAsync(RqType : TFtpRequest; Cmd : String; OkResponses : array of Word; DoneAsync : TFtpNextProc);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure ExtractMoreResults;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

function GetBinary : Boolean;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

function GetConnected : Boolean;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

function GetShareMode : TFtpShareMode;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure HighLevelAsync(RqType : TFtpRequest; Fcts : TFtpFctSet);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure Next1GetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { We comes here when receiving the response for the RETR command we sent

procedure Next1PutAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { We comes here when receiving the response for the STOR command we sent

procedure Next2GetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { We comes here when the FTP server has sent the file we asked to GET

procedure Next2PutAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { We comes here when the FTP server has received the file we sent (STOR)

procedure Next3GetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { We comes here either if the file has been received of the FTP server has } { his response.

procedure Next3PutAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { We comes here when the file has been sent or when the FTP server tell us } { he recived the file.

procedure NextExecAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure Notification(AComponent: TComponent; Operation: TOperation);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure PortAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

function Progress : Boolean;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure SendCommand(Cmd : String);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure SetBinary(Value : Boolean);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure SetErrorMessage;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure SetShareMode(newValue : TFtpShareMode);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure StateChange(NewState : TFtpState);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure TransfertStats;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure TriggerDisplay(Msg : String);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure TriggerReadyToTransmit(var bCancel : Boolean);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure TriggerRequestDone(Error: Word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure TriggerStateChange;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure WMFtpCloseData(var msg: TMessage);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure WMFtpRequestDone(var msg: TMessage);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

procedure WndProc(var MsgRec: TMessage);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Properties

property Binary : Boolean


property ByteCount : LongInt


property Connected : Boolean


property ControlSocket : TWSocket


property DataSocket : TWSocket


property DirResult : String


property DisplayFlag : Boolean


property ErrorMessage : String


property Handle : HWND


property HostDirName : String


property HostFileName : String


property HostName : String


property LastResponse : String


property LocalFileName : String


property Passive : Boolean


property PassWord : String


property Port : String


property RequestType : TFtpRequest


property ResumeAt : LongInt


property ShareMode : TFtpShareMode


property SizeResult : LongInt


property State : TFtpState


property StatusCode : LongInt


property UserName : String


Events

event OnCommand : TFtpCommand


event OnDisplay : TFtpDisplay


event OnProgress : TFtpProgress


event OnReadyToTransmit : TFtpReadyToTransmit


event OnRequestDone : TFtpRequestDone


event OnResponse : TNotifyEvent


event OnSessionClosed : TSessionClosed


event OnSessionConnected : TSessionConnected


event OnStateChange : TNotifyEvent


Variables

FAppendFlag : Boolean;


FByteCount : LongInt;


FConnected : Boolean;


FControlSocket : TWSocket;


FDataSocket : TWSocket;


FDirResult : String;


FDisplayFlag : Boolean;


FDoneAsync : TFtpNextProc;


FError : Word;


FErrorMessage : String;

To save FStatusCode when quitting

FFctPrv : TFtpFct;


FFctSet : TFtpFctSet;


FFileReceived : Boolean;


FFileSent : Boolean;


FGetCommand : String;

To save Error when data connection closed

FHighLevelFlag : Boolean;


FHighLevelResult : Integer;


FHostDirName : String;


FHostFileName : String;


FHostName : String;


FLastResponse : String;


FLastResponseSave : String;


FLocalFileName : String;


FLocalStream : TStream;


FNext : TFtpNextProc;


FNextRequest : TFtpNextProc;


FOkResponses : array [0..15] of Integer;


FOnCommand : TFtpCommand;


FOnDisplay : TFtpDisplay;


FOnProgress : TFtpProgress;


FOnReadyToTransmit : TFtpReadyToTransmit;


FOnRequestDone : TFtpRequestDone;


FOnResponse : TNotifyEvent;


FOnSessionClosed : TSessionClosed;


FOnSessionConnected : TSessionConnected;


FOnStateChange : TNotifyEvent;


FPassive : Boolean;


FPassWord : String;


FPort : String;


FReceiveBuffer : array [0..FTP_RCV_BUF_SIZE - 1] of char;


FReceiveLen : Integer;


FRequestDoneFlag : Boolean;


FRequestResult : Integer;


FRequestType : TFtpRequest;


FRestartFlag : Boolean;


FResumeAt : LongInt;


FSendBuffer : array [0..BLOCK_SIZE - 1] of char;


FServerSaidDone : Boolean;


FShareMode : Word;


FSizeResult : LongInt;


FStartTime : LongInt;


FState : TFtpState;


FStatusCode : LongInt;


FStatusCodeSave : LongInt;

To save FLastResponse when quitting

FStopTime : LongInt;


FType : Char;


FUserName : String;


FWhenConnected : TFtpNextProc;


FWindowHandle : HWND;



Constructors


constructor Create(AOwner: TComponent);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} {* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} {* * * *} {* * TCustomFtpCli * *} {* * * *} {* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} {* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


Functions


procedure AbortAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure AppendAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure AppendFileAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure CDupAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure ConnectAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure CwdAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DeleAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DeleteAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


destructor Destroy;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DirAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DirectoryAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DoQuoteAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure ExecAppendAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure ExecDirAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure ExecGetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure ExecLsAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure ExecPutAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure FileSizeAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure GetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure ListAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure LsAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure MkdAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure MkdirAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure OpenAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure PassAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure PutAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure PwdAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure QuitAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure QuoteAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure ReceiveAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure RenameAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure RenAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure RenFromAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure RenToAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure RestartGetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure RestAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure RestGetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure RmdAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure RmdirAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure SizeAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure SystAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure SystemAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure TransmitAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure TypeAsciiAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure TypeBinaryAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure TypeSetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure UserAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure CheckReady;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure ControlSocketDataAvailable(Sender: TObject; Error: Word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure ControlSocketDnsLookupDone(Sender: TObject; Error: Word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure ControlSocketSessionClosed(Sender: TObject; Error: Word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure ControlSocketSessionConnected(Sender: TObject; Error: Word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DataSocketGetDataAvailable(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DataSocketGetSessionAvailable(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DataSocketGetSessionClosed(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DataSocketGetSessionConnected(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DataSocketPutDataAvailable(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DataSocketPutDataSent(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DataSocketPutSessionAvailable(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DataSocketPutSessionClosed(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DataSocketPutSessionConnected(Sender: TObject; Error : word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DisplayLastResponse;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DoGetAsync(RqType : TFtpRequest);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { Receive a file or a directory list of a file list


procedure DoHighLevelAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DoneQuitAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure DoPutAppendAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure ExecAsync(RqType : TFtpRequest; Cmd : String; OkResponses : array of Word; DoneAsync : TFtpNextProc);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure ExtractMoreResults;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


function GetBinary : Boolean;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


function GetConnected : Boolean;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


function GetShareMode : TFtpShareMode;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure HighLevelAsync(RqType : TFtpRequest; Fcts : TFtpFctSet);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure Next1GetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { We comes here when receiving the response for the RETR command we sent


procedure Next1PutAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { We comes here when receiving the response for the STOR command we sent


procedure Next2GetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { We comes here when the FTP server has sent the file we asked to GET


procedure Next2PutAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { We comes here when the FTP server has received the file we sent (STOR)


procedure Next3GetAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { We comes here either if the file has been received of the FTP server has } { his response.


procedure Next3PutAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} { We comes here when the file has been sent or when the FTP server tell us } { he recived the file.


procedure NextExecAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure Notification(AComponent: TComponent; Operation: TOperation);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure PortAsync;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


function Progress : Boolean;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure SendCommand(Cmd : String);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure SetBinary(Value : Boolean);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure SetErrorMessage;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure SetShareMode(newValue : TFtpShareMode);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure StateChange(NewState : TFtpState);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure TransfertStats;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure TriggerDisplay(Msg : String);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure TriggerReadyToTransmit(var bCancel : Boolean);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure TriggerRequestDone(Error: Word);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure TriggerStateChange;

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure WMFtpCloseData(var msg: TMessage);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure WMFtpRequestDone(var msg: TMessage);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


procedure WndProc(var MsgRec: TMessage);

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *


Properties


property Binary : Boolean


property ByteCount : LongInt


property Connected : Boolean


property ControlSocket : TWSocket


property DataSocket : TWSocket


property DirResult : String


property DisplayFlag : Boolean


property ErrorMessage : String


property Handle : HWND


property HostDirName : String


property HostFileName : String


property HostName : String


property LastResponse : String


property LocalFileName : String


property Passive : Boolean


property PassWord : String


property Port : String


property RequestType : TFtpRequest


property ResumeAt : LongInt


property ShareMode : TFtpShareMode


property SizeResult : LongInt


property State : TFtpState


property StatusCode : LongInt


property UserName : String


Events


event OnCommand : TFtpCommand


event OnDisplay : TFtpDisplay


event OnProgress : TFtpProgress


event OnReadyToTransmit : TFtpReadyToTransmit


event OnRequestDone : TFtpRequestDone


event OnResponse : TNotifyEvent


event OnSessionClosed : TSessionClosed


event OnSessionConnected : TSessionConnected


event OnStateChange : TNotifyEvent


Variables


FAppendFlag : Boolean;


FByteCount : LongInt;


FConnected : Boolean;


FControlSocket : TWSocket;


FDataSocket : TWSocket;


FDirResult : String;


FDisplayFlag : Boolean;


FDoneAsync : TFtpNextProc;


FError : Word;


FErrorMessage : String;

To save FStatusCode when quitting


FFctPrv : TFtpFct;


FFctSet : TFtpFctSet;


FFileReceived : Boolean;


FFileSent : Boolean;


FGetCommand : String;

To save Error when data connection closed


FHighLevelFlag : Boolean;


FHighLevelResult : Integer;


FHostDirName : String;


FHostFileName : String;


FHostName : String;


FLastResponse : String;


FLastResponseSave : String;


FLocalFileName : String;


FLocalStream : TStream;


FNext : TFtpNextProc;


FNextRequest : TFtpNextProc;


FOkResponses : array [0..15] of Integer;


FOnCommand : TFtpCommand;


FOnDisplay : TFtpDisplay;


FOnProgress : TFtpProgress;


FOnReadyToTransmit : TFtpReadyToTransmit;


FOnRequestDone : TFtpRequestDone;


FOnResponse : TNotifyEvent;


FOnSessionClosed : TSessionClosed;


FOnSessionConnected : TSessionConnected;


FOnStateChange : TNotifyEvent;


FPassive : Boolean;


FPassWord : String;


FPort : String;


FReceiveBuffer : array [0..FTP_RCV_BUF_SIZE - 1] of char;


FReceiveLen : Integer;


FRequestDoneFlag : Boolean;


FRequestResult : Integer;


FRequestType : TFtpRequest;


FRestartFlag : Boolean;


FResumeAt : LongInt;


FSendBuffer : array [0..BLOCK_SIZE - 1] of char;


FServerSaidDone : Boolean;


FShareMode : Word;


FSizeResult : LongInt;


FStartTime : LongInt;


FState : TFtpState;


FStatusCode : LongInt;


FStatusCodeSave : LongInt;

To save FLastResponse when quitting


FStopTime : LongInt;


FType : Char;


FUserName : String;


FWhenConnected : TFtpNextProc;


FWindowHandle : HWND;