Back to product page
- Introduction
- Overview
- License agreement
- Getting Started
- Objects
- Enumerations
- wodFTPD
- Methods
- Properties
- Authentication
- BindIP
- BindIPType
- Certificate
- DirFormat
- Encryption
- EncryptionList
- FileLocking
- FIPS
- ForceUTF8
- GoodbyeMessage
- GreetingMessage
- HMacList
- HostKeyList
- KeyExchangeList
- MaxDataPort
- MinDataPort
- MonitorTransfers
- MyHostname
- MyIP
- Notification
- PasvPort
- Port
- Protocol
- Secure
- ServerName
- SFTPVersion
- Status
- StrictDataIP
- Threads
- Timeout
- UseIPv6
- Users
- Version
- VirtualFiles
- VirtualFolders
- Events
- wodFTPDNotify
- FtpUser
- FtpUsers
- VirtualFile
- VirtualFiles
- VirtualFolder
- VirtualFolders
- How to get support?
- Technical information
- Fast notifications interface
- Error list
Fast notifications interface
Basic information
As you might have read so far, wodFTPServer (only its COM/DLL version) can use fast notification interface instead of firing events. This means that each time wodFTPD needs to fire an event, it will call your implementation of the event instead. Notifications can be 30 times faster than events - meaning it is advised to be used if speed is needed in your applications.
wodFTPD ActiveX DOES NOT support notifications - only wodFTPDCom component does!
You must declare ALL notification methods if you want to implement IwodFTPDNotify, no matter if you need them or not. For example, many users don't need LoginCertificate event, but at least empty body for this event MUST exist when notifications are used.
You can read below steps required to implement your own IwodFTPDNotify interface. As an example, we will put it on the main form. You can also put it into separate VB class, in which case instead of 'Me' keyword, you will use name of the class.
Steps needed to implement IwodFTPDNotify:
Method declarations
Private Sub IwodFTPDNotify_ChangeDir(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ResolvedPath As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_Command(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, CmdLine As String)
End Sub
Private Sub IwodFTPDNotify_Connected(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_Connecting(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_CryptoInformation(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal Protocol As String, ByVal RemoteName As String, ByVal SCcipher As String, ByVal CScipher As String, ByVal Keys As String, Accept As Boolean)
End Sub
Private Sub IwodFTPDNotify_DeleteFile(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ResolvedPath As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_Disconnected(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser)
End Sub
Private Sub IwodFTPDNotify_DownloadFile(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ResolvedPath As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_FileTransferData(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, FileData() As Byte)
End Sub
Private Sub IwodFTPDNotify_ListDir(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ResolvedPath As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_ListDirData(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, DirData() As Byte, ByVal NamesOnly As Boolean)
End Sub
Private Sub IwodFTPDNotify_LoginCertificate(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal ErrorText As String, ByVal Certificate As wodFTPDComLib.ICertificate, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_LoginPassword(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal Login As String, ByVal Password As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_MakeDir(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ResolvedPath As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_Progress(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal Position As Long, ByVal Total As Long)
End Sub
Private Sub IwodFTPDNotify_Progress64(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal PositionLo As Long, ByVal PositionHi As Long, ByVal TotalLo As Long, ByVal TotalHi As Long)
End Sub
Private Sub IwodFTPDNotify_RemoveDir(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ResolvedPath As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_Rename(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ByVal ResolvedPath As String, NewName As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_Response(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, RespLine As String)
End Sub
Private Sub IwodFTPDNotify_Site(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal Command As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_StateChanged(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal NewState As wodFTPDComLib.StatesEnum, ByVal OldState As wodFTPDComLib.StatesEnum)
End Sub
Private Sub IwodFTPDNotify_TransferComplete(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal Successful As Boolean)
End Sub
Private Sub IwodFTPDNotify_TransferStatus(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_UploadFile(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ResolvedPath As String, Action As wodFTPDComLib.FtpActions)
End Sub
As you might have read so far, wodFTPServer (only its COM/DLL version) can use fast notification interface instead of firing events. This means that each time wodFTPD needs to fire an event, it will call your implementation of the event instead. Notifications can be 30 times faster than events - meaning it is advised to be used if speed is needed in your applications.
wodFTPD ActiveX DOES NOT support notifications - only wodFTPDCom component does!
You must declare ALL notification methods if you want to implement IwodFTPDNotify, no matter if you need them or not. For example, many users don't need LoginCertificate event, but at least empty body for this event MUST exist when notifications are used.
You can read below steps required to implement your own IwodFTPDNotify interface. As an example, we will put it on the main form. You can also put it into separate VB class, in which case instead of 'Me' keyword, you will use name of the class.
Steps needed to implement IwodFTPDNotify:
- Add Reference to wodFTPDCom COM Object to your application
- Instead of declaring wodFTPD like this:
Dim WithEvents FTPD1 as wodFTPDCom
you should do this:
Dim FTPD1 as wodFTPDCom
Implements IwodFTPDNotify
- In Form_Load, create new instance for FTPD1, and pass reference of our IwodFTPDNotify to it
Set FTPD1 = new wodFTPDCom
Set FTPD1.Notification = Me
- Implement ALL methods, or at least declare their empty bodies. You can do it automatically if you locate 'IwodFTPDNotify' object in the list of all objects existing on your form (combo box in upper left corner of your code view), or just can do it by hand.
- All done. Now put breakpoints to your methods. You will see that instead of fired event, your methods will be called instead.
Method declarations
Private Sub IwodFTPDNotify_ChangeDir(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ResolvedPath As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_Command(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, CmdLine As String)
End Sub
Private Sub IwodFTPDNotify_Connected(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_Connecting(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_CryptoInformation(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal Protocol As String, ByVal RemoteName As String, ByVal SCcipher As String, ByVal CScipher As String, ByVal Keys As String, Accept As Boolean)
End Sub
Private Sub IwodFTPDNotify_DeleteFile(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ResolvedPath As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_Disconnected(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser)
End Sub
Private Sub IwodFTPDNotify_DownloadFile(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ResolvedPath As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_FileTransferData(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, FileData() As Byte)
End Sub
Private Sub IwodFTPDNotify_ListDir(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ResolvedPath As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_ListDirData(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, DirData() As Byte, ByVal NamesOnly As Boolean)
End Sub
Private Sub IwodFTPDNotify_LoginCertificate(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal ErrorText As String, ByVal Certificate As wodFTPDComLib.ICertificate, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_LoginPassword(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal Login As String, ByVal Password As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_MakeDir(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ResolvedPath As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_Progress(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal Position As Long, ByVal Total As Long)
End Sub
Private Sub IwodFTPDNotify_Progress64(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal PositionLo As Long, ByVal PositionHi As Long, ByVal TotalLo As Long, ByVal TotalHi As Long)
End Sub
Private Sub IwodFTPDNotify_RemoveDir(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ResolvedPath As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_Rename(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ByVal ResolvedPath As String, NewName As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_Response(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, RespLine As String)
End Sub
Private Sub IwodFTPDNotify_Site(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal Command As String, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_StateChanged(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal NewState As wodFTPDComLib.StatesEnum, ByVal OldState As wodFTPDComLib.StatesEnum)
End Sub
Private Sub IwodFTPDNotify_TransferComplete(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal Successful As Boolean)
End Sub
Private Sub IwodFTPDNotify_TransferStatus(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, Action As wodFTPDComLib.FtpActions)
End Sub
Private Sub IwodFTPDNotify_UploadFile(ByVal Owner As wodFTPDComLib.IwodFTPDCom, ByVal User As wodFTPDComLib.IFtpUser, ByVal RelativePath As String, ResolvedPath As String, Action As wodFTPDComLib.FtpActions)
End Sub