To redistribute an application created using one or more SocketTools components, the application must initialize each component with a runtime license key. This is discussed in several places in the help, including the Licensing Information section, the Initialization section in the Developer's Guide and the initialization functions and/or methods in the Technical Reference. It is important to note that your serial number and the runtime license key are not the same, and cannot be used interchangeably.
The runtime license key is automatically generated for you when you install SocketTools with a valid serial number. However, in some cases the key may not be defined if the product is installed as an evaluation and then a license is purchased. Depending on the programming language being used, you may also need to generate the license key and include it in your application so that it can be deployed to another system.
To generate the runtime license key for your copy of SocketTools, you can use the License Manager utility. On Windows 7 and earlier versions, this is found under Start | All Programs and the edition of SocketTools that you're using. On Windows 10, it's found under the list of installed applications. Once you have started the License Manager, select the menu option License | Validate, which should display a dialog which displays the current version, your serial number and a license expiration of "Never". If no serial number is displayed or the license has an expiration date, then this means that an evaluation license has been installed for this product. You will need to install the product with a serial number in order to create a runtime license key.
Next, select License | Runtime Key from the menu and it will display your serial number and the corresponding runtime license key. You can copy that key to your clipboard. Alternatively, you can use the License | Header File menu option to have the License Manager create a file that contains the license key. This is typically used by developers programming in C/C++, however a variety of programming languages are supported. Remember that this key is specific to your license and should not be shared with anyone outside of your organization.
After you have generated your runtime license key, you must provide it to the SocketTools components that your application is using. The method for doing this varies, depending on which edition you are using. It is only necessary to initialize a component or library once, typically when the application starts.
SocketTools .NET Edition
Each .NET component has an Initialize method that accepts an optional parameter. If you do not call this method, or you call the Initialize method without any arguments, your application will only work on your development system. To deploy your application to another system, you must call the Initialize method and pass it the runtime license key that you have generated. This should be done immediately after creating an instance of the class, and before you call any other methods or set any properties. For more information, refer to the Initialize method in the Technical Reference documentation for the class that you are using.
SocketTools ActiveX Edition
When you reference an ActiveX control in your project, the programming language that you're using may handle the licensing information automatically. However, in some cases you must explicitly initialize the control, providing a runtime license key to the Initialize method. This can be required if an instance of the control is created dynamically, using a method like CreateObject in Visual Basic, using the COM API in C++ or referencing the control in a managed (.NET) language such as Visual Basic .NET or C#. For more information, refer to the Initialize method in the Technical Reference documentation for the control that you are using.
SocketTools Library Edition
An application that uses a SocketTools library must call the initialization function for the API prior to calling any other functions. The actual name of the function varies depending on the API that is being used. For example, the initialization function for the FTP API is FtpInitialize, while the function for the HTTP API is HttpInitialize.
All of the API initialization functions accept two parameters, a pointer to a null-terminated string that specifies the runtime license key, and a pointer to an initialization data structure (in most cases, you would pass a NULL pointer value as the second parameter). The initialization function validates the license key and loads the various Windows libraries that are used by the API. If you are using the C++ classes in your application, this initialization is done for you when the class instance is created; otherwise, you must explicitly call the initialization function to begin using the API.