|
Summary
The OnSendB is fired during an event-based put or append to get the next block of binary data.
Description
The OnSendB event occurs during an event based transfer of data from the local machine to a remote file. An event driven put or append operation is started by calling the PutFile or
AppendFile method (or by setting the FileAction property to FILE_ACTION_PUT or FILE_ACTION_APPEND) with the call to the EventMode method (or with the TransferMode property set to
TRANSFER_MODE_EVENT). The remote file must be specified with the RemoteFile parameter, but the LocalFile parameter is ignored and can be left blank. The UseVariant property must be set to True to
receive this event. If the UseVariant property is False, then the OnSend event will be received instead. The Byte argument passed to this event indicates the maximum number of bytes of data that can
be sent at that moment.
With each event, the application must call the SendB method and pass the data and the size. The data could, for example, be read from a disk file, received from another application using DDE or
copied from the clipboard.
To indicate that no more data is available to send, the application should pass 0 as the number of bytes to send to the SendB method. After passing 0 bytes to the SendB method, no more OnSendB events
will be generated. The application can also terminate an event based transfer by setting the FileAction property to FILE_ACTION_ABORT (or by calling the AbortFile method can also be used) during the
OnSendB event. In this case, the returned string buffer is ignored by the control.
While handling the OnSendB event, an application should not perform tasks, which have the potential of requiring a lot of time to complete, such as generating a message box.
Example
Sub FTPClient_OnSendB (Bytes As Long) Dim Buffer(1 to Bytes) As Byte Dim i As Integer If (Siz >
Bytes) Then For i = 1 to Bytes Get #1, , Buffer(i) Next i Result = FTPClient.SendB(Buffer, Bytes)
' send message Siz = Siz - Bytes ElseIf (Siz > 0) Then For i = 1 to Siz Get #1, , Buffer(i)
Next i Result = FTPClient.SendB(Buffer, Siz) ' send message Siz = 0 Else Result = FTPClient.SendB (Buffer, 0) '
end of message End If End Sub
|