BigSpeed Peer-to-Peer SDK
API Documentation
Please click on a topic in the left panel.

Introduction
BigSpeed Peer-to-Peer SDK is a set of two ActiveX controls (Agent and Hub) that lets you set up a virtual private peer-to-peer (P2P) network for secure file sharing and messaging. The transfered data are scrambled using on-the-fly 128-bit AES encryption, without need of SSL certificates. The security is provided in two different modes: symmetric encryption with shared secret key and asymmetric encryption with 1024-bit public/private keys.

The hub is responsible for keeping information on and authentication of online peers. All peers connected to a particular hub build a single private community.

Each agent acts as both a client and a server at the same time. Fine grained access control is realized by a group user-oriented permissions. They grant access control privileges to system resources and services in a flexible and secure manner.

Two different kind of instant information can be exchanged between peers: alert and chat messages.

In addition to standard FTP operations, such as upload, download, rename, delete, etc., the SDK also offers several advanced features.

The broken file transfers are resumed automatically (if enabled), with MD5 integrity checking.

The agent is able to run search operation on the peers. The searching criteria may include file name masks (wildcards), text strings inside the files, or both of them. The found items are reported in real-time, while the operation is running.

The server module is able to perform file compression and decompression by a request from the remote client module. During zipping or unzipping detailed progress information is provided back to the client about the current and total file and byte counts.

BigSpeed Peer-to-Peer SDK utilizes an elegant event-driven paradigm for easy integration into Windows applications. A special attention is paid to provide responsive user interface while avoiding multithreading problems and maintaining maximum bandwidth efficiency.

Carefully designed set of properties, methods, and events offers great flexibility to develop peer-to-peer applications quickly and easily.

Sample applications are included in Visual Basic .NET, VB 2005 and Delphi 7.




Installation

The BigSpeed Peer-to-Peer SDK setup utility will copy all the necessary files into the installation directory you selected and will register the ActiveX controls on your Windows system. There are some additional steps you must take to complete the installation, based on which development language you are using.


Installation instructions for Visual Basic 6.0
  • Start Visual Basic 6.0
  • Create a new project or open an existing one.
  • Select Components… from the Project menu.
  • Entries named "BigSpeed File Client" and "BigSpeed File Server" should appear in the components list.
  • In the Components dialog, make sure the "BigSpeed File Client" and "BigSpeed File Server" items are checked in the components list. This will make them available for use in your applications.
  • Click the OK button. The BigSpeed File Sharing Client/Server icon should now appear in the components toolbox.



Installation instructions for Delphi 7
  • Start Delphi
  • Open an existing project or create a new project
  • From the Component menu, select the Import ActiveX control item
  • Select the "BigSpeed File Client" or "BigSpeed File Server" item from the list of installed ActiveX controls
  • Click on the Install button that's on the Import ActiveX dialog
  • The Install dialog will appear. Click on the "Into new package" tab.
  • Enter a filename and path for the new package in the "File Name" field.
  • Click OK in the Install dialog
  • Delphi will then ask you to confirm the rebuild – click Yes in the Confirm dialog.
  • If everything was successful, you should get a message that the package has been updated and that the new components have been registered.
  • Close the package dialog
  • Click Yes when you are prompted to confirm the changes
  • The component should appear in your component toolbar (ActiveX tab).



Installation instructions for Visual Basic .NET
  • Start Visual Basic .NET
  • Create a new project or open an existing one.
  • Select Toolbox view, Components tab.
  • Right-click the tab and choose "Add/Remove Items..."
  • In the Customize Toolbox dialog, click the tab named "COM Components" .
  • Entries named "BigSpeed File Client" and "BigSpeed File Server" should appear in the components list.
  • In the Components dialog, make sure the "BigSpeed File Client" and "BigSpeed File Server" are checked in the components list. This will make them available for use in your applications.
  • Click the OK button. The BigSpeed File Sharing Client/Server icons should now appear in the components toolbox.



Installation instructions for Visual C++ .NET
  • Start Visual C++ .NET
  • Create a new project or open an existing one.
  • Click the ResourceView tab to choose the resource edit.
  • Double-click the dialog's name to edit the dialog.
  • Right-click the dialog and choose Insert ActiveX Control from the pop-up menu.
  • Choose "BigSpeed File Client" or "BigSpeed File Server" from the ActiveX control list and click OK.



LastError property


Data type

Integer    (Read-only)


Default value

None


Description

LastError property returns the error code for the last method invocation. Zero indicates no error (success).


SecurityMode property


Data type

Integer


Default value

Zero


Description

SecurityMode property specifies what security mode to be used for the next connectuon sessions.
There are three possible values:

0 - Plain mode. No encryption is used.

1 - Symmetric encryption. The SecretKey property will be used by the component to calculate a unique session key for each connection. The incomming connections will be limited only to the peers which have assigned the same SecretKey.

2 - Asymmetric encryption. The PublicKey/PrivateKey properties will be used by the component to calculate a unique session key for each connection. The incomming connections can be limited only to a predefined list of peers by assigning the correct digital fingerprints to the property Fingerprints.



SecretKey property


Data type

String


Default value

Empty


Description

SecretKey property holds the cryptographic key used to calculate the session key when a symmetric encyption is used. Only peers with the same secret key will be able to communicate to each other.


PublicKey property


Data type

String


Default value

Empty


Description

PublicKey property holds the public key used to calculate the session key in the asymmetric encryption mode. It should be previously generated by the method GenerateKeypair.


PrivateKey property


Data type

String


Default value

Empty


Description

PrivateKey property holds the private key used to calculate the session key in the asymmetric encryption mode. It should be previously generated by the method GenerateKeypair.


Fingerprints property


Data type

String


Default value

Empty


Description

Fingerprints property optionally can be used to restrict the incomming connection only to certain peers. The expected format is a comma-delimited list of digital fingerprints, as calculated by the method TakeFingerprint.


BindAddress property


Data type

String


Default value

Empty


Description

If the local machine has multiple network interfaces, this property can specify which one to be used. If the value is empty, the default IP address will be used.
SessionCall property


Data type

Boolean (Read-only)


Default value

False


Description

This property indicates if the agent is in a connecting state. There are three possible states: closed (the default), connecting, and connected. The component stays in a connecting state after the method OpenSession is called until either of the events OnSessionOpen or OnSessionRejected is fired.
SessionOpen property


Data type

Boolean (Read-only)


Default value

False


Description

This property indicates if the agent is in a connected state. There are three possible states: closed (the default), connecting, and connected. The component stays in a connected state after the event OnSessionOpen is fired until the event OnSessionClosed is fired.
Username property


Data type

String


Default value

Empty


Description

Username property specifies the sign-in ID of the user. If it's empty, a default (Guest) user will be used from the peers when they determine the access rights for local agent.
ResumeDownload property


Data type

Boolean


Default value

True


Description

If set to True, the method "Download" will check automatically for available partially downloaded file from previous operation. If it's found, the existing part will be verified by calculating MD5 control sum, and duplicated transfer will be avoided.
ResumeUpload property


Data type

Boolean


Default value

Empty


Description

If set to True, the method "Upload" will check automatically for available partially downloaded file from previous operation. If it's found, the existing part will be verified by calculating MD5 control sum, and duplicated transfer will be avoided.
HubAddress property


Data type

String


Default value

Empty


Description

This property holds the IP address of the hub, when the session is open.
HubPort property


Data type

Integer


Default value

0


Description

This property holds the port of the hub, when the session is open.
SocksVersion property


Data type

Integer


Default value

4


Description

This property specifies the version of the SOCKS protocol to be used. Valid values are "4" and "5".
SocksServer property


Data type

String


Default value

Empty


Description

SocksServer property sets the address of the proxy server. It accepts dotted decimal format or domain name.
SocksPort property


Data type

Long


Default value

0


Description

SocksPort property indicates the port of the proxy server.
SocksUsername property


Data type

String


Default value

Empty


Description

SocksUsername property specifies the user name to be used for proxy server authentication.
SocksPassword property


Data type

String


Default value

Empty


Description

SocksPassword property specifies the password to be used for proxy server authentication.
TransferSuffix property


Data type

String


Default value

"_bsfilelib_transfer"


Description

TransferSuffix property holds the string constant to be appended to the name of the transferred upload files during the operation is in progress.
GenerateKeypair method


Declaration

GenerateKeypair( ByRef aPublicKey As String, ByRef aPrivateKey As String ) As Boolean


Description

This method generates a new random key pair of public and private keys. They can be used for the properties PublicKey and PrivateKey.


Parameters

aPublicKeyThe Base64 encoded value of the generated public key is returned here
aPublicKeyThe Base64 encoded value of the generated private key is returned here


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.


Example

Ok = GenerateKeypair( PubKey, PvtKey )
TakeFingerprint method


Declaration

TakeFingerprint( aPublicKey As String ) As String


Description

This method calculates a digital fingerprint (MD5 checksum) of a public key.


Parameters

aPublicKeyBase64 encode value of the public key.


Return

The return value is the Base64 encoded MD5 checksum. It can be used in the property Fingerprints on the remote peers.


Example

FP = TakeFingerprint( PubKey )
GetMoniker method


Declaration

GetMoniker( ByVal aHandle As Long ) As Long


Description

GetMoniker method provides the moniker ID associated with the peer object. It should be previously set with SetMoniker method.


Parameters

aHandleHandle of the desired peer object.


Return

Integer value representing the moniker ID.
SetMoniker method


Declaration

SetMoniker( ByVal aHandle As Long ,ByVal aMoniker As Long )


Description

SetMoniker method assigns a moniker ID (4 byte integer) to a peer object. This could be helpful for easy reference to some application data associated with the client.


Parameters

aHandleHandle of the desired peer object.
aMonikerThe moniker ID value


Return

None.
OpenSession method


Declaration

OpenSession( ByVal aAddr As String , ByVal aPort As Long , ByVal aUsername As String , ByVal aPassword As String ) As Boolean


Description

OpenSession method issues a request to establish a connection to the hub. The agent moves from closed to the connecting state. The application will be notified later on for the result of the operation. If the agent is connected successfully the event OnSessionOpen will be fired, otherwise the event OnSessionRejected will be fired.


Parameters

aPortThe address of the hub. It can be in dotted decimal format or domain name.
aPortThe listening port number of the hub.
aUsernameThe username for logging in to the hub. If it's empty, the default (Guest) account will be used
aPasswordThe password needed for the login operation. Should be empty for Guest login.


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.


Example

Ok = P2pAgent.OpenSession(edHost.Text, Val(edHubPort.Text), edUsername.Text, edPassword.Text)
CloseSession method


Declaration

CloseSession As Boolean


Description

CloseSession method issues a reguest to the agent to break the connection with the hub. The event OnSessionClosed will notify the application about the result of the operation.


Parameters

None


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
GetSessionStatus method


Declaration

GetSessionStatus() As Long


Description

GetSessionStatus method provides information about the current status of the connection to the server.


Parameters

None


Return

An integer code with the following meaning:
0Disconnected
1Connecting
2Connected
DisconnectPeer method


Declaration

DisconnectPeer( ByVal aHandle As Long ) As Boolean


Description

DisconnectPeer method disconnects and destroys a peer object.


Parameters

aHandleHandle of the desired peer object.


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
GetPeerName method


Declaration

GetPeerName( ByVal aHandle As Long ) As String


Description

GetPeerName method provides the user name associated with a peer object.


Parameters

aHandleHandle of the desired peer object.


Return

Name of the logged in user.
GetIncomingBandwidth method


Declaration

GetIncomingBandwidth( ) As Long


Description

GetIncomingBandwidth method gives the maiximum bandwidth for incoming traffic.


Return

The maximum bandwidth in bytes per second. Zero means unlimited.
SetIncomingBandwidth method


Declaration

SetIncomingBandwidth( ByVal aValue As Long )


Description

SetIncomingBandwidth method sets the maiximum bandwidth for incoming traffic.


Parameters

aValueThe desired maximum bandwidth in bytes per second.


Return

N/A
GetOutgoingBandwidth method


Declaration

GetOutgoingBandwidth( ) As Long


Description

GetOutgoingBandwidth method gives the maiximum bandwidth for Outgoing traffic.


Return

The maximum bandwidth in bytes per second. Zero means unlimited.
SetOutgoingBandwidth method


Declaration

SetOutgoingBandwidth( ByVal aValue As Long )


Description

SetOutgoingBandwidth method sets the maiximum bandwidth for outgoing traffic.


Parameters

aValueThe desired maximum bandwidth in bytes per second.


Return

N/A
SendAlertMessage method


Declaration

SendAlertMessage( ByVal aHandle As Long , ByVal aMessage As String ) As Boolean


Description

SendAlertMessage method sends an alert message to a connected peer.


Parameters

aHandleHandle of the desired peer object.
aMessageText of the message to be sent


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
SendChatMessage method


Declaration

SendChatMessage( ByVal aHandle As Long , ByVal aMessage As String ) As Boolean


Description

SendChatMessage method sends a chat message to a connected peer.


Parameters

aHandleHandle of the desired peer object.
aMessageText of the message to be sent


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
SendBinaryMessage method


Declaration

SendBinaryMessage( ByVal aHandle As Long , ByRef aMessage As Variant ) As Boolean


Description

SendBinaryMessage method sends a binary message (byte array) to a peer or the hub.


Parameters

aHandleHandle of the desired peer object. If it's zero, the message is sent to the hub.
aMessageVariant array of bytes holding the message data


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
ListFiles method


Declaration

ListFiles( ByVal aHandle As Long , ByVal aFolder As String ) As Boolean


Description

ListFiles method sends a request for a folder content. The response will be delivered via the events OnHaveFileItem and OnListFolderDone.


Parameters

aHandleHandle of the desired peer object.
aFolderPath to the remote folder which content is requested


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
CreateFolder method


Declaration

CreateFolder( ByVal aHandle As Long , ByVal aFolder As String ) As Boolean


Description

CreateFolder method sends a request for folder creation. The response will be delivered with the event OnCreateFolderDone.


Parameters

aHandleHandle of the desired peer object.
aFolderPath to the remote folder which content is requested


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
DeleteFolder method


Declaration

DeleteFolder( ByVal aHandle As Long , ByVal aFolder As String ) As Boolean


Description

DeleteFolder method sends a request for folder deletion. The response will be delivered with the event OnDeleteFolderDone.


Parameters

aHandleHandle of the desired peer object.
aFolderPath to the remote folder


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
DeleteFile method


Declaration

DeleteFile( ByVal aHandle As Long , ByVal aFile As String ) As Boolean


Description

DeleteFile method sends a request for file deletion. The response will be delivered with the event OnDeleteFileDone.


Parameters

aHandleHandle of the desired peer object.
aFilePath to the remote File


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
RenameFolder method


Declaration

RenameFolder( ByVal aHandle As Long , ByVal aFolder As String ) As Boolean


Description

RenameFolder method sends a request for folder renaming. The response will be delivered with the event OnRenameFolderDone.


Parameters

aHandleHandle of the desired peer object.
aFolderPath to the remote folder


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
RenameFile method


Declaration

RenameFile( ByVal aHandle As Long , ByVal aFile As String ) As Boolean


Description

RenameFile method sends a request for file renaming. The response will be delivered with the event OnRenameFileDone.


Parameters

aHandleHandle of the desired peer object.
aFilePath to the remote file


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
Download method


Declaration

Download( ByVal aHandle As Long ,ByVal aFile As String ,ByVal aFolder As String ) As Boolean


Description

Download method starts a download operation. The event OnDownloadProgress will provide progress information. The event OnClientDownloadDone will report the completion status.


Parameters

aHandleHandle of the desired peer object.
aFilePathname of an existing file on the peer.
aFolderPathname of a folder on the local system, where the downloaded file will be placed.


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
CancelClientDownload method


Declaration

CancelClientDownload( ByVal aHandle As Long ) As Boolean


Description

CancelClientDownload method aborts the currently running download operation (client module).


Parameters

aHandleHandle of the desired peer object.


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
Upload method


Declaration

Upload( ByVal aHandle As Long ,ByVal aFile As String ,ByVal aFolder As String ) As Boolean


Description

Upload method starts an upload operation. The event OnUploadProgress will provide progress information. The event OnClientUploadDone will report the completion status.


Parameters

aHandleHandle of the desired peer object.
aFilePathname of an existing file on local system.
aFolderPathname of a folder on the remote system, where the uploaded file will be placed.


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
CancelClientUpload method


Declaration

CancelClientUpload( ByVal aHandle As Long ) As Boolean


Description

CancelClientUpload method aborts the currently running upload operation (client module).


Parameters

aHandleHandle of the desired peer object.


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
Search method


Declaration

Search( ByVal aHandle As Long ,ByVal aFolder As String ,ByVal aFiles As String ,ByVal aText As String ) As Boolean


Description

Search method starts a search operation. The event OnHaveFindFile will report the found items. The event OnSearchProgress will provide progress information. The event OnClientSearchDone will notify about the completion status.


Parameters

aHandleHandle of the desired peer object.
aFolderPathname of start folder on the server.
aFilesA file name mask (wildcards *.*) to be applied
aTextA word or phrase contained in the file


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
StopSearch method


Declaration

StopSearch( ByVal aHandle As Long ) As Boolean


Description

StopSearch method aborts the currently running search operation (client module)


Parameters

aHandleHandle of the desired peer object.


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
Zip method


Declaration

Zip( ByVal aHandle As Long ,ByVal aArchive As String ,ByVal aFiles As String ) As Boolean


Description

Zip method starts a compression operation. The event OnZipProgress will provide progress information. The event onZipDone will report the completion status.


Parameters

aHandleHandle of the desired peer object.
aArchivePathname of an existing zip file on the server.
aFilesPathname and file name mask (wildcard) of the files to be archived.


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
Example

Zip(Peer, "DestDir\archive.zip", "SrcDir\*.txt")
CancelZip method


Declaration

CancelZip( ByVal aHandle As Long ) As Boolean


Description

CancelZip method aborts the currently running zip operation (client module).


Parameters

aHandleHandle of the desired peer object.


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
Unzip method


Declaration

Unzip( ByVal aHandle As Long ,ByVal aArchive As String ,ByVal aFolder As String ) As Boolean


Description

Unzip method starts a decompression operation. The event OnUnzipProgress will provide progress information. The event OnClientUnzipDone will report the completion status.


Parameters

aHandleHandle of the desired peer object.
aArchivePathname of an existing zip file on the server.
aFolderPathname of an existing folder on the server, where the content of the zip archive will be extracted.


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
CancelUnzip method


Declaration

CancelUnzip( ByVal aHandle As Long ) As Boolean


Description

CancelUnzip method aborts the currently running unzip operation (client module).


Parameters

aHandleHandle of the desired peer object.


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
OnSessionOpen event


Declaration

OnSessionOpen


Description

OnSessionOpen event is generated when the agent has just been connected to the hub after a call to "OpenSession()". At this moment the agent is ready to accept connections from other peers. The component moves from connecting to connected state.


Parameters

None
OnSessionClosed event


Declaration

OnSessionClosed()


Description

This event is generated when the connection to the hub has just been broken. All currently connected peers are automatically disconnected. The agent moves from connected to the closed state.


Parameters

None
OnSessionRejected event


Declaration

OnSessionRejected


Description

OnSessionRejected event is generated when a connection attempt to the hub (call to OpenSession() method) has been failed. The agent moves from connecting to the closed state. The LastError property holds the error code.


Parameters

None
OnPeerConnected event


Declaration

OnPeerConnected(ByVal aHandle As Long)


Description

OnPeerConnected event is generated when a new peer object has just been created. It is fired when the peer information is received from the server.


Parameters

aHandle The handle of the newly created peer. It should be stored for future references.
OnPeerDisconnected event


Declaration

OnPeerDisconnected(ByVal aHandle As Long)


Description

OnPeerDisconnected event is generated when a connected peer has just been disconnected from the agent.


Parameters

aHandleThe handle of the peer firing the event
OnlertMessage event


Declaration

OnAlertMessage( ByVal aHandle As Long ,ByVal aMessage As String )


Description

OnAlertMessage event delivers an alert message from a peer.


Parameters

aHandleThe handle of the peer firing the event
aMessageThe text of the message
OnChatMessage event


Declaration

OnChatMessage( ByVal aHandle As Long ,ByVal aMessage As String )


Description

OnChatMessage event delivers a chat message from a peer.


Parameters

aHandleThe handle of the peer firing the event
aMessageThe text of the message
OnBinaryMessage event


Declaration

OnBinaryMessage( ByVal aHandle As Long ,ByRef aMessage As Variant)


Description

OnBinaryMessage event delivers binary message received from a peer or the hub.


Parameters

aHandleThe handle of the peer firing the event. If it's zero, sender is the hub
aMessageByte array holding the message data
OnNeedListFolder event


Declaration

OnNeedListFolder( ByVal aHandle As Long ,ByVal aPath As String ,ByRef aOkay As Boolean ,ByRef aRoot As String )


Description

OnNeedListFolder event notifies about a peer's request and asks for permission to start a list operation. The application should check the user's access rights here and needs to take a decision whether to permit the operation or not.


Parameters

aHandleHandle of the peer object firing the event.
aPathRelative pathname of the starting folder.
aOkayIf the operation may be performed, the aplication must set this variable to TRUE
aRootIf there is a permission for the operation, the application must write here the root folder assigned to the signed-in user.
OnListFolderDone event


Declaration

OnListFolderDone( ByVal aHandle As Long ,ByVal aCode As Long )


Description

OnListFolderDone event reports the completion status of the operation previously signaled by the event OnNeedListFolder.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnHaveFileItem event


Declaration

OnHaveFileItem( ByVal aHandle As Long ,ByVal aName As String ,ByVal aSizeLo As Long ,ByVal aSizeHi As Long ,ByVal aTimeLo As Long ,ByVal aTimeHi As Long )


Description

OnHaveFileItem event reports an idividual file or folder produced by a list operation started with the method ListFiles.


Parameters

aHandleHandle of the peer object firing the event.
aNamePathname of the file/folder.
aFolderIndicates if the item is a file or folder.
aSizeLoThe low 32 bits of the file size.
aSizeHiThe high 32 bits of the file size.
aTimeLoThe low 32 bits of the file time.
aTimeHiThe high 32 bits of the file time.
OnNeedCreateFolder event


Declaration

OnNeedCreateFolder( ByVal aHandle As Long ,ByVal aPath As String ,ByRef aOkay As Boolean ,ByRef aRoot As String )


Description

OnNeedCreateFolder event notifies about a peer's request and asks for permission to create a new folder. The application should check the user's access rights here and needs to take a decision whether to permit the operation or not.


Parameters

aHandleHandle of the peer object firing the event.
aPathRelative pathname of the requested folder.
aOkayIf the operation may be performed, the aplication must set this variable to TRUE
aRootIf there is a permission for the operation, the application must write here the root folder assigned to the signed-in user.
OnCreateFolderDone event


Declaration

OnCreateFolderDone( ByVal aHandle As Long ,ByVal aCode As Long)


Description

OnCreateFolderDone event reports the result of the operation previously started with the method CreateFolder.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnNeedRenameFolder event


Declaration

OnNeedRenameFolder( ByVal aHandle As Long ,ByVal aPath As String ,ByRef aOkay As Boolean ,ByRef aRoot As String )


Description

OnNeedRenameFolder event notifies about a peer's request and asks for permission to rename a folder. The application should check the user's access rights here and needs to take a decision whether to permit the operation or not.


Parameters

aHandleHandle of the peer object firing the event.
aPathRelative pathname of the requested folder.
aOkayIf the operation may be performed, the aplication must set this variable to TRUE
aRootIf there is a permission for the operation, the application must write here the root folder assigned to the signed-in user.
OnRenameFolderDone event


Declaration

OnRenameFolderDone( ByVal aHandle As Long ,ByVal aCode As Long) )


Description

OnRenameFolderDone event reports the result of the operation previously started with the method RenameFolder.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnNeedRenameFile event


Declaration

OnNeedRenameFile( ByVal aHandle As Long ,ByVal aPath As String ,ByRef aOkay As Boolean ,ByRef aRoot As String )


Description

OnNeedRenameFile event notifies about a peer's request and asks for permission to rename a file. The application should check the user's access rights here and needs to take a decision whether to permit the operation or not.


Parameters

aHandleHandle of the peer object firing the event.
aPathRelative pathname of the requested file.
aOkayIf the operation may be performed, the aplication must set this variable to TRUE
aRootIf there is a permission for the operation, the application must write here the root folder assigned to the signed-in user.
OnRenameFileDone event


Declaration

OnRenameFileDone( ByVal aHandle As Long ,ByVal aCode As Long) )


Description

OnRenameFileDone event reports the result of the operation previously started with the method RenameFile.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnNeedDeleteFolder event


Declaration

OnNeedDeleteFolder( ByVal aHandle As Long ,ByVal aPath As String ,ByRef aOkay As Boolean ,ByRef aRoot As String )


Description

OnNeedDeleteFolder event notifies about a peer's request and asks for permission to delete a folder. The application should check the user's access rights here and needs to take a decision whether to permit the operation or not.


Parameters

aHandleHandle of the peer object firing the event.
aPathRelative pathname of the requested folder.
aOkayIf the operation may be performed, the aplication must set this variable to TRUE
aRootIf there is a permission for the operation, the application must write here the root folder assigned to the signed-in user.
OnDeleteFolderDone event


Declaration

OnDeleteFolderDone( ByVal aHandle As Long ,ByVal aCode As Long) )


Description

OnDeleteFolderDone event reports the result of the operation previosly started with the method DeleteFolder.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnNeedDeleteFile event


Declaration

OnNeedDeleteFile( ByVal aHandle As Long ,ByVal aPath As String ,ByRef aOkay As Boolean ,ByRef aRoot As String )


Description

OnNeedDeleteFile event notifies about a peer's request and asks for permission to delete a file. The application should check the user's access rights here and needs to take a decision whether to permit the operation or not.


Parameters

aHandleHandle of the peer object firing the event.
aPathRelative pathname of the requested file.
aOkayIf the operation may be performed, the aplication must set this variable to TRUE
aRootIf there is a permission for the operation, the application must write here the root folder assigned to the signed-in user.
OnDeleteFileDone event


Declaration

OnDeleteFileDone( ByVal aHandle As Long ,ByVal aCode As Long) )


Description

OnDeleteFileDone event reports the result of the operation previously started with the method DeleteFile.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnNeedDownload event


Declaration

OnNeedDownload( ByVal aHandle As Long ,ByVal aPath As String ,ByRef aOkay As Boolean ,ByRef aRoot As String )


Description

OnNeedDownload event notifies about a peer's request and asks for permission to start a download operation. The application should check the user's access rights here and needs to take a decision whether to permit the operation or not.


Parameters

aHandleHandle of the peer object firing the event.
aPathRelative pathname of the downloaded file.
aOkayIf the operation may be performed, the aplication must set this variable to TRUE
aRootIf there is a permission for the operation, the application must write here the root folder assigned to the signed-in user.
OnServerDownloadDone event


Declaration

OnServerDownloadDone( ByVal aHandle As Long ,ByVal aCode As Long) )


Description

OnServerDownloadDone event reports the result of the download operation (in server module) previously signaled with the event OnNeedDownload.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnDownloadProgress event


Declaration

OnDownloadProgress( ByVal aCountLo As Long ,ByVal aCountHi As Long ,ByVal aSizeLo As Long ,ByVal aSizeHi As Long )


Description

OnDownloadProgress provides progress information (in client module) during download operation previously started with the method Download.


Parameters

aCountLoThe low 32 bits of the current byte count.
aCountHiThe high 32 bits of the current byte count.
aSizeLoThe low 32 bits of the total byte size.
aSizeHiThe high 32 bits of the total byte size.
OnClientDownloadDone event


Declaration

OnClientDownloadDone( ByVal aHandle As Long ,ByVal aCode As Long) )


Description

OnClientDownloadDone event reports the result of the download operation (in client module) previously started with the method Download.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnNeedUpload event


Declaration

OnNeedUpload( ByVal aHandle As Long ,ByVal aPath As String ,ByRef aOkay As Boolean ,ByRef aRoot As String )


Description

OnNeedUpload event notifies about a peer's request and asks for permission to start a Upload operation. The application should check the user's access rights here and needs to take a decision whether to permit the operation or not.


Parameters

aHandleHandle of the peer object firing the event.
aPathRelative pathname of the Uploaded file.
aOkayIf the operation may be performed, the aplication must set this variable to TRUE
aRootIf there is a permission for the operation, the application must write here the root folder assigned to the signed-in user.
OnServerUploadDone event


Declaration

OnServerUploadDone( ByVal aHandle As Long ,ByVal aCode As Long) )


Description

OnServerUploadDone event reports the result of the Upload operation (in server module) previously signaled with the event OnNeedUpload.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnUploadProgress event


Declaration

OnUploadProgress( ByVal aCountLo As Long ,ByVal aCountHi As Long ,ByVal aSizeLo As Long ,ByVal aSizeHi As Long )


Description

OnUploadProgress provides progress information (in client module) during Upload operation previously started with the method Upload.


Parameters

aCountLoThe low 32 bits of the current byte count.
aCountHiThe high 32 bits of the current byte count.
aSizeLoThe low 32 bits of the total byte size.
aSizeHiThe high 32 bits of the total byte size.
OnClientUploadDone event


Declaration

OnClientUploadDone( ByVal aHandle As Long ,ByVal aCode As Long) )


Description

OnClientUploadDone event reports the result of the Upload operation (in client module) previously started with the method Upload.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnNeedZip event


Declaration

OnNeedZip( ByVal aHandle As Long ,ByVal aPath As String ,ByRef aOkay As Boolean ,ByRef aRoot As String )


Description

OnNeedZip event notifies about a peer's request and asks for permission to start a compression operation. The application should check the user's access rights here and needs to take a decision whether to permit the operation or not.


Parameters

aHandleHandle of the peer object firing the event.
aPathRelative pathname of the zip archive.
aOkayIf the operation may be performed, the aplication must set this variable to TRUE
aRootIf there is a permission for the operation, the application must write here the root folder assigned to the signed-in user.
OnZipDone event


Declaration

OnZipDone( ByVal aHandle As Long ,ByVal aCode As Long) )


Description

OnZipDone event reports the result of the operation previously started with the method Zip.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnServerZipDone event


Declaration

OnServerZipDone( ByVal aHandle As Long ,ByVal aCode As Long) )


Description

OnServerZipDone event reports the result of the zip operation (in server module) previously signaled with the event OnNeedZip.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnZipProgress event


Declaration

OnZipProgress( ByVal aHandle As Long ,ByVal aFileCount As Long ,ByVal aFileTotal As Long ,ByVal aByteCountLo As Long ,ByVal aByteCountHi As Long ,ByVal aByteTotalLo As Long ,ByVal aByteTotalHi As Long )


Description

OnZipProgress provides progress information during compression operation previously started with the method Zip.


Parameters

aHandleHandle of the peer object firing the event.
aFileCountNumber of the files processed so far.
aFileTotalTotal number of the requested files.
aByteCountLoThe low 32 bits of the amount of bytes processed so far.
aByteCountHiThe high 32 bits of the amount of bytes processed so far.
aByteTotalLoThe low 32 bits of the total requested amount of bytes.
aByteTotalHiThe high 32 bits of the total requested amount of bytes.
OnClientZipDone event


Declaration

OnClientZipDone( ByVal aHandle As Long ,ByVal aCode As Long) )


Description

OnClientZipDone event reports the result of the zip operation (in client module) previously started with the method Zip.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnNeedUnzip event


Declaration

OnNeedUnzip( ByVal aHandle As Long ,ByVal aPath As String ,ByRef aOkay As Boolean ,ByRef aRoot As String )


Description

OnNeedUnzip event notifies about a peer's request and asks for permission to start a decompression information. The application should check the user's access rights here and needs to take a decision whether to permit the operation or not.


Parameters

aHandleHandle of the peer object firing the event.
aPathRelative pathname of the zip archive.
aOkayIf the operation may be performed, the aplication must set this variable to TRUE
aRootIf there is a permission for the operation, the application must write here the root folder assigned to the signed-in user.
OnServerUnzipDone event


Declaration

OnServerUnzipDone( ByVal aHandle As Long ,ByVal aCode As Long) )


Description

OnServerUnzipDone event reports the result of the unzip operation (in the server module) previously signaled with the event OnNeedUnzip


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnUnzipProgress event


Declaration

OnUnzipProgress( ByVal aHandle As Long ,ByVal aFileCount As Long ,ByVal aFileTotal As Long ,ByVal aByteCountLo As Long ,ByVal aByteCountHi As Long ,ByVal aByteTotalLo As Long ,ByVal aByteTotalHi As Long )


Description

OnUnzipProgress provides progress information (in the client module) during decompression operation previously started with the method Unzip.


Parameters

aHandleHandle of the peer object firing the event.
aFileCountNumber of the files processed so far.
aFileTotalTotal number of the requested files.
aByteCountLoThe low 32 bits of the amount of bytes processed so far.
aByteCountHiThe high 32 bits of the amount of bytes processed so far.
aByteTotalLoThe low 32 bits of the total requested amount of bytes.
aByteTotalHiThe high 32 bits of the total requested amount of bytes.
OnClientUnzipDone event


Declaration

OnClientUnzipDone( ByVal aHandle As Long ,ByVal aCode As Long) )


Description

OnClientUnzipDone event reports the result of the operation (in the client module) previously started with the method Unzip.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnNeedSearch event


Declaration

OnNeedSearch( ByVal aHandle As Long ,ByVal aPath As String ,ByRef aOkay As Boolean ,ByRef aRoot As String )


Description

OnNeedSearch event notifies about a peer's request and asks for permission to start a search operation. The application should check the user's access rights here and needs to take a decision whether to permit the operation or not.


Parameters

aHandleHandle of the peer object firing the event.
aPathRelative pathname of the starting folder.
aOkayIf the operation may be performed, the aplication must set this variable to TRUE
aRootIf there is a permission for the operation, the application must write here the root folder assigned to the signed-in user.
OnServerSearchDone event


Declaration

OnServerSearchDone( ByVal aHandle As Long ,ByVal aCode As Long )


Description

OnServerSearchDone event reports the completion status of the search operation previously signaled by the event OnNeedSearch.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The error description is given in the LastError property specification.
OnSearchProgress event


Declaration

OnSearchProgress( ByVal aHandle As Long ,ByVal aCount As Long )


Description

OnSearchProgress provides progress information during search operation previously started with the method Search.


Parameters

aHandleHandle of the peer object firing the event.
aCode Number of the files which are examined so far.
OnHaveFindFile event


Declaration

OnHaveFindFile( ByVal aHandle As Long ,ByVal aName As String ,ByVal aSizeLo As Long ,ByVal aSizeHi As Long ,ByVal aTimeLo As Long ,ByVal aTimeHi As Long )


Description

OnHaveFindFile event reports an idividual file item found by the search operation started with the method Search.


Parameters

aHandleHandle of the peer object firing the event.
aNamePathname of the file.
aSizeLoThe low 32 bits of the file size.
aSizeHiThe high 32 bits of the file size.
aTimeLoThe low 32 bits of the file time.
aTimeHiThe high 32 bits of the file time.
OnClientSearchDone event


Declaration

OnClientSearchDone( ByVal aHandle As Long ,ByVal aCode As Long )


Description

OnClientSearchDone event reports the completion status of the search operation previously started with the method Search.


Parameters

aHandleHandle of the peer object firing the event.
aCode If the value is 0, the operation is completed successfully. If the value is greater than 0, it indicates an error code. The text description is given in the LastError property specification.
LocalIPList property


Data type

String    (Read-only)


Default value

N/A


Description

Returns a comma-delimited list of available IP addresses on the local machine.

LastError property


Data type

Integer    (Read-only)


Default value

None


Description

LastError property returns the error code for the last method invocation. Zero indicates no error (success).




Error codes

0 No error
1 Unknown error
2 Invalid handle
3 Invalid data
4 There is no assigned event handler
5 Illegal operation
6 Event handler error
7 Bad encryption key
10 Connection is refused
11 Connection timeout
12 Broken connection
13 Not connected
14 Too many connections
20 Cannot start server
21 Cannot connect to SOCKS server
22 Wrong username or password
23 Access is denied
24 Client is not signed-in
30 User break
31 Operation is already running
32 Operation is not running
100 Cannot create folder
101 Cannot delete folder
102 Cannot delete file
103 Cannot rename folder
104 Cannot rename file
105 Cannot open file
106 Cannot create file
107 Cannot read from file
108 Cannot write to file
109 Cannot rename temporary file
110 Non-supported format
111 Error searching file
112 Wrong checksum
SecurityMode property


Data type

Integer


Default value

Zero


Description

SecurityMode property specifies what security mode to be used for the next connectuon sessions.
There are three possible values:

0 - Plain mode. No encryption is used.

1 - Symmetric encryption. The SecretKey property will be used by the component to calculate a unique session key for each connection. The incomming connections will be limited only to the peers which have assigned the same SecretKey.

2 - Asymmetric encryption. The PublicKey/PrivateKey properties will be used by the component to calculate a unique session key for each connection. The incomming connections can be limited only to a predefined list of peers by assigning the correct digital fingerprints to the property Fingerprints.



SecretKey property


Data type

String


Default value

Empty


Description

SecretKey property holds the cryptographic key used to calculate the session key when a symmetric encyption is used. Only peers with the same secret key will be able to communicate to each other.


PublicKey property


Data type

String


Default value

Empty


Description

PublicKey property holds the public key used to calculate the session key in the asymmetric encryption mode. It should be previously generated by the method GenerateKeypair.


PrivateKey property


Data type

String


Default value

Empty


Description

PrivateKey property holds the private key used to calculate the session key in the asymmetric encryption mode. It should be previously generated by the method GenerateKeypair.


Fingerprints property


Data type

String


Default value

Empty


Description

Fingerprints property optionally can be used to restrict the incomming connection only to certain peers. The expected format is a comma-delimited list of digital fingerprints, as calculated by the method TakeFingerprint.


BindAddress property


Data type

String


Default value

Empty


Description

If the local machine has multiple network interfaces, this property can specify which one to be used. If the value is empty, the default IP address will be used.
ListeningPort property


Data type

Long


Default value

0


Description

ListeningPort property holds the port number on which the hub is listening for incoming connections. If it's set to 0, the Hub will use a random value. If the PC is behind a firewall/NAT/router, you need to forward/open this port. The website www.portforward.com may help in that case.
LocalIPList property


Data type

String    (Read-only)


Default value

Empty


Description

LocalIPList property holds a comma-delimited list of available IP addresses of the local machine.
Running property


Data type

Boolean (Read-only)


Default value

False


Description

Running property indicates if the hub is currently listening for incoming connections.
Start method


Declaration

Start( ) As Boolean


Description

Start method instructs the hub to start listening for incoming connections.


Parameters

None.


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
Stop method


Declaration

Stop( ) As Boolean


Description

Stop method instructs the hub to stop listening for incoming connections. All currently connected clients will be disconnected as well.


Parameters

None.


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
GetMoniker method


Declaration

GetMoniker( ByVal aHandle As Long ) As Long


Description

GetMoniker method provides the moniker ID associated with the client object. It should be previously set with SetMoniker method.


Parameters

aHandleHandle of the desired client object.


Return

Integer value representing the moniker ID.
SetMoniker method


Declaration

SetMoniker( ByVal aHandle As Long ,ByVal aMoniker As Long )


Description

SetMoniker method assigns a moniker ID (4 byte integer) to a client object. This could be helpful for easy reference to some application data associated with the client.


Parameters

aHandleHandle of the desired client object.
aMonikerThe moniker ID value


Return

None.
GenerateKeypair method


Declaration

GenerateKeypair( ByRef aPublicKey As String, ByRef aPrivateKey As String ) As Boolean


Description

This method generates a new random key pair of public and private keys. They can be used for the properties PublicKey and PrivateKey.


Parameters

aPublicKeyThe Base64 encoded value of the generated public key is returned here
aPublicKeyThe Base64 encoded value of the generated private key is returned here


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.


Example

Ok = GenerateKeypair( PubKey, PvtKey )
TakeFingerprint method


Declaration

TakeFingerprint( aPublicKey As String ) As String


Description

This method calculates a digital fingerprint (MD5 checksum) of a public key.


Parameters

aPublicKeyBase64 encode value of the public key.


Return

The return value is the Base64 encoded MD5 checksum. It can be used in the property Fingerprints on the remote peers.


Example

FP = TakeFingerprint( PubKey )
DisconnectPeer method


Declaration

DisconnectPeer( ByVal aHandle As Long )


Description

DisconnectPeer method disconnects and destroys a peer object.


Parameters

aHandleHandle of the desired peer object.


Return

None.
GetPeerAddress method


Declaration

GetPeerAddress( ByVal aHandle As Long ) As String


Description

GetPeerAddress gives the peer IP address.


Parameters

aHandleHandle of the desired peer object.


Return

Peer address in IP dotted format.
GetPeerPort method


Declaration

GetPeerPort( ByVal aHandle As Long ) As String


Description

GetPeerPort method gives the peer's port number.


Parameters

aHandleHandle of the desired peer object.


Return

Peer's port number.
GetPeerName method


Declaration

GetPeerName( ByVal aHandle As Long ) As String


Description

GetPeerName method provides the user name associated with a peer object.


Parameters

aHandleHandle of the desired peer object.


Return

Name of the signed-in user.
SendBinaryMessage method


Declaration

SendBinaryMessage( ByVal aHandle As Long , ByRef aMessage As Variant ) As Boolean


Description

SendBinaryMessage method sends a binary message (byte array) to a peer.


Parameters

aHandleHandle of the desired peer object.
aMessageVariant array of bytes holding the message data


Return

If the return value is TRUE the method invocation is successful. Otherwise the property LastError can be used to retrieve the error code.
OnConnectionRequest event


Declaration

OnConnectionRequest( ByVal aHandle As Long ,ByVal aUsername As String ,ByRef aPassword As String ,ByRef aAccept As Boolean )


Description

OnConnectionRequest event notifies about a login request from a peer. The application should check the user profile and return the value of the password.


Parameters

aHandleHandle of the peer object firing the event.
aUsernameName of the desired user.
aPasswordThis is an out parameter. If the username is found in user profile, the application must pass here the password value set for the asked username previously by the administrator.
aAcceptIf the aplication wants to grant an access to the peer, this value must be set to True
OnPeerConnected event


Declaration

OnPeerConnected( ByVal aHandle As Long )


Description

OnPeerConnected event is generated when a new peer has just been connected to the hub. The application should store the handle to the newly created peer object for later use.


Parameters

aHandleHandle of the peer object firing the event.
OnPeerDisconnected event


Declaration

OnPeerDisconnected( ByVal aHandle As Long ,ByVal aCode As Long )


Description

OnPeerDisconnected event is generated when a connected peer has just been disconnected from the Server. The handle of the peer is no more valid for future references.


Parameters

aHandleThe handle of the peer firing the event
aCodeIndicates the error code.
OnPeerRejected event


Declaration

OnPeerRejected( ByVal aUsername As String ,ByVal aAddress As String ,ByVal aPort As Long ,ByVal aCode As Long )


Description

OnPeerRejected event is generated when a peer connection has just been refused.


Parameters

aUsernameThe username of the peer.
aAddressThe IP address of the peer.
aPortThe peer port.
aCodeIndicates the error code.
OnBinaryMessage event


Declaration

OnBinaryMessage( ByVal aHandle As Long ,ByRef aMessage As Variant)


Description

OnBinaryMessage event delivers binary message received from a peer.


Parameters

aHandleHandle of the peer firing the event
aMessageByte array holding the message data

Error codes


0 No error
1 User break
2 Unknown error
3 Invalid handle
4 Invalid data
5 There is no assigned event handler
6 Illegal operation
7 Event handler error
8 Bad encryption key
10 Connection is refused
11 Connection timeout
12 Broken connection
13 Not connected
14 Too many connections
20 Cannot start server
21 Cannot connect to SOCKS server
22 Wrong username or password
23 Access is denied
24 Client is not signed-in
30 Operation is already running
31 Operation is not running
100 Cannot create folder
101 Cannot delete folder
102 Cannot delete file
103 Cannot rename folder
104 Cannot rename file
105 Cannot open file
106 Cannot create file
107 Cannot read from file
108 Cannot write to file
109 Cannot rename temporary file
110 Non-supported format
111 Error searching file
112 Wrong checksum




Description

If the error code is negative, the cause is on the remote side.





License Agreement


License for using BigSpeed Peer-to-Peer SDK (hereinafter referred to as this Software) from BigSpeed Computing Inc.

By using the information contained in this document you agree to be and are hereby bound by the terms of this License Agreement. If you do not agree to the terms of this Agreement, do not use the information contained in this document.



Licensing

BigSpeed Computing grants Licensee the non-exclusive license to use this Software on a single computer at any given time for the sole purpose of developing any number of end user applications, providing that each application adheres to the following conditions:
(a) The application may not compete with this Software.
(b) The application may not expose the functionality of this Software through a programmable interface.

It is forbidden to use the library for the production of developer tools, components or libraries.

There are two licensing options available depending on your needs.

If you have not paid for this Software, you are hereby granted a Freeware License to use the Free Edition as described below.

If you have paid the appropriate fee for this Software, you are hereby granted a Registered license to use the Plus Edition as described below.



Freeware License

You may use the Free Edition of BigSpeed Peer-to-Peer SDK for the purpose of developing end user applications, providing that each application shall only be used for purposes that neither directly nor indirectly have any commercial implications. You may redistribute the binary code of the Free Edition with your completed application. The application MUST acknowledge this Software in a reasonable place (Help file, About box etc).

If this Software is to be used in a commercial product, or incorporated into anything that is to be sold to a third party, then a Registered License must be purchased from BigSpeed Computing.

The Free Edition distribution package may be freely distributed, provided it is not modified in any way. No person or company may charge a fee for the distribution of BigSpeed Peer-to-Peer SDK without written permission from the copyright holder.



Registered License

You may use the Plus Edition of BigSpeed Peer-to-Peer SDK for the purpose of developing end user commercial applications. A Registered License is issued to a specific company or organization, and entitles that organization to incorporate the binary code of this Software into commercial applications under the Licensee's brand name. There is no restriction on the number of products, or product types, incorporating the library binary code.

If Licensee has purchased a "multi-developer" license, this Software may be used on more than one computer at Licensee's premises by the number of software developers associated with the multi-developer license.



Limited warranty

BigSpeed Computing Inc. cannot be held responsible under any circumstances for damages of any character (including, but not limited to, direct or indirect damages resulting from the loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use or inability to use this product.

This software is provided under license on an "AS IS" basis, without warranty of any kind, expressed or implied, including without limitation, implied warranties of merchantability and fitness for a particular purpose. BigSpeed Computing Inc. or any third party involved in the creation, production, or delivery of the program, cannot be held responsible under any circumstances, for any direct or indirect damage, including loss of profits, interruption of business activities, or other, faced by the user of this program, even in the case that BigSpeed Computing Inc. has been advised of such damages.

The user assumes responsibility for the result or performance of the program. BigSpeed Computing Inc. may, at any time, revoke this license by notifying the user of the software. The user may cancel his license to use the product by destroying or erasing all copies of the software.




Export restrictions

You acknowledge that this Software licensed hereunder is subject to the Wassenaar Arrangement regulations, and any amendments thereof. You confirm that with respect to this Software, you will not export or re-export it, directly or indirectly, to any countries that are subject to Wassenaar Arrangement export restrictions. You further acknowledge that this software may include technical data subject to export and re-export restrictions imposed by Wassenaar Arrangement.



Property

BigSpeed Peer-to-Peer SDK, including its code, documentation, appearance, structure, and organization is an exclusive product of BigSpeed Computing Inc., who retains the property rights to the software, its copies, modifications, or merged parts.



System requirements


System requirements
  • Windows 9x, Me, NT4 or Windows 2000, XP or higher version
  • Pentium Processor recommended
  • 16 MB RAM; 32 MB RAM under NT4 or Windows 2000 platforms, 128 MB for XP
  • Any programming language supporting ActiveX controls


(c) BigSpeed Computing Inc. 1998-. Mastering algorithms.