Back to product page

Progress64 method


Called during file sending or receiving.

Type

None

Syntax

  • Basic
object.Progress64 Owner, PositionLo, PositionHi, TotalLo, TotalHi
The Progress64(object,Owner,PositionLo,PositionHi,TotalLo,TotalHi) syntax has these parts:
objectAn expression evaluating to an object of type IwodFtpNotify.
OwnerRequired. A wodFtpDLXCom object.
PositionLoRequired. A Long value. Lower long value of 64bit integer for current transfer position.
PositionHiRequired. A Long value. Higher long value of 64bit integer for current transfer position.
TotalLoRequired. A Long value. Lower long value of 64bit integer for total number of bytes that should be transferred.
TotalHiRequired. A Long value. Higher long value of 64bit integer for total number of bytes that should be transferred.

Remarks

This method is called only if you implemented IwodFtpNotify interface in your application, and wodFtpDLX.Notification property has received reference to instance of your implementation.

This notification method can be used for monitoring file transfers. It is called during file transfer started by GetFile or PutFile methods. It will be called several times, depending on your network speed (thus length of packets sent/received), file size, or something else. There is no default rule on exact number of times it will be called. Once transfer is finished, Position argument will have the same value as Total argument.

Once transfer is finished, Position argument will have the same value as Total argument. As long as file size does fit in 32bit long integer, Progress notification will be called instead of this one. If position or total arguments does not fit anymore in 32bit long integer, Progress64 notification will be called. Depending on the programming language you use, you will need to convert these values to appropriate int64 integer.

Also, once file transfer is finished Done notification method will be called.

NOTE: it is possible that Position or Total values become negative - it is because unsigned values are used, but VB (and other environments) expect to see signed values. If this happens, we suggest you use following code (VB example):
 
Private Const MAX_UNSIGNED = 4294967296# ' HEX 1,0000,0000

Private Sub IwodFtpNotify_Progress(ByVal Owner As wodFtpDLXComLib.IwodFtpDLXCom, ByVal Position As Long, ByVal Total As Long)
  Ftp1_Progress64 Position, 0, Total, 0
End Sub
 
Private Sub IwodFtpNotify_Progress64(ByVal Owner As wodFtpDLXComLib.IwodFtpDLXCom, ByVal PositionLo As Long, ByVal PositionHi As Long, ByVal TotalLo As Long, ByVal TotalHi As Long)
  If TotalLo <> 0 And TotalHi <> 0 Then
     Dim pos As Double
     Dim tot As Double
 
     pos = PositionLo
     If (pos < 0) Then pos = pos + MAX_UNSIGNED
     tot = TotalLo
     If tot < 0 Then tot = tot + MAX_UNSIGNED

     If TotalHi <> 0 Then
        pos = pos + PositionHi * MAX_UNSIGNED
        tot = tot + TotalHi * MAX_UNSIGNED
     End If
 
     Debug.Print "Progress " & pos & "/" & tot
  Else
     Debug.Print "Progress " & PositionLo & "/" & TotalLo
  End If
End Sub
 


Platforms

Windows