|
Summary
Notifies that more data, during event based transfer, has been received as binary.
Description
The OnReceiveB event occurs during an event based transfer of a remote file to the local machine. An event driven get operation is started by calling the GetFile method (or by setting the
FileAction property to FILE_ACTION_GET) following a call to the EnentMode method (or with the TransferMode property set to TRANSFER_MODE_EVENT). The remote file must be specified with the RemoteFile
property, but the LocalFile property is ignored and can be left blank. The UseVariant property must be set to True. If the UseVariant property is False, then the OnReceive event will be received
instead.
Instead of writing incoming data from the remote file directly to a local file, an event based get operation notifies the application with one or more OnReceiveB events. The event notifies the
application how many bytes of data are ready to be retrieved. It is up to the application to call the ReceiveB method to retrieve and process the data. The buffer could, for example, be written to a
disk file or sent to another application using DDE.
If the application does not want to receive any more OnReceiveB events, then the transfer can be aborted by setting the FileAction property to FILE_ACTION_ABORT (or by calling the AbortFile method)
during the OnReceiveB event.
While handling the OnReceiveB 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. A substantial delay
could cause the application to not receive subsequent OnReceiveB events.
Example
Sub FTPGet ()
FTPClient.UseVariant = True
FTPClient.EventMode()
FTPClient.GetFile ("test.exe", "")
End Sub
' OnReceiveB event fired to deliver data
Sub FTPClient_OnReceiveB (Bytes As Long) Dim Buffer() As Byte Dim Siz As Long Dim i As Integer Siz =
FTPClient.ReceiveB (Buffer, Bytes) If Siz > 0 Then Open "c:\abc.exe" For Binary Access Write As #1 For i = 1 To Siz Put
#1, i, Buffer (i) Next i Close #1 Else MsgBox "Cannot receive binary data", 64, "Sample Program" End If
End Sub
|