SocketTools 12 Upgrade Information  
 

This section will help you upgrade an application written using a previous version of the SocketTools ActiveX Edition. In most cases, the modifications required will be minimal and may only require a few edits and recompiling the program. However, it is recommended that you review this entire guide so that you understand what changes were made and how those changes can be implemented in your software.

Supported Platforms

SocketTools 12 is supported on Windows 7, Windows Server 2008 R2 and later versions. Earlier versions of the operating system, including Windows XP and Windows Vista are no longer supported by Microsoft and cannot be used with SocketTools. We recommend using the current release of Windows 11 or Windows Server 2025.

Developers who are redistributing applications which target Windows 11 or Windows Server 2025 should upgrade to ensure compatibility with the platform and current development tools. Secure connections require TLS 1.2 or later and most services will no longer accept connections from a client using TLS 1.0 or TLS 1.1.

Development Tools

The SocketTools 12 ActiveX controls may be used with any programming language that supports the Component Object Model (COM) and ActiveX control interface. This includes languages such as Visual Basic 6.0, Visual FoxPro and PowerBuilder.

The Visual Basic 6.0 runtime is supported on Windows 11, however the IDE is no longer supported by Microsoft. To use the Visual Basic 6.0 IDE in Windows 11, you will need to run it with elevated privileges. Visual Studio 2026 supports the use of ActiveX controls, although there can be significant limitations and performance implications when using ActiveX components in .NET. If you are migrating an existing legacy project to a modern version of .NET, we recommend you also switch to the SocketTools .NET Edition which provides native .NET components.

Upgrading Projects

If you are upgrading from SocketTools 10 or 11, most applications will be source code compatible with the SocketTools 12 ActiveX controls. In many cases, all you will need to do is install the current version, update the control references in your project and recompile your application. It is important to note that the control file names, class IDs and interfaces have changed and are not binary compatible with previous versions.

If you are upgrading from an earlier version of SocketTools, you should find that most projects which have used SocketTools 8 or later will require minimal code changes. If you have used hard-coded values instead of constant names for options, then you should review those values and update them appropriately. Some option values will have changed over the versions as new features have been added. If you are upgrading from a very early version of SocketTools, you may find that there have been changes to method names and parameters which will need to be updated.

The runtime license key has changed for SocketTools 12, which may require you to redefine the value in your application when calling the control's Initialize method. As with previous versions of SocketTools, you can use the License Manager utility to generate a file which contains the runtime key you should use. The SocketTools 11 and earlier runtime license keys are not valid for the SocketTools 12 controls and an error will be returned if an invalid runtime key is specified.

Your application should not attempt to reference the current version of a control and an earlier version of the control within the same application. When upgrading to SocketTools 12, first remove all references to the earlier version of the control, save the project and reload it. Then add the reference to the version 12 control, ensuring that the same object name is used. If you are creating an instance of the control dynamically by specifying its ProgID, such as using the CreateObject function, then it is recommended that you specify the version number as part of the ID. For example, to create an instance of the FTP control, use "SocketTools.FtpClient.12" and not simply "SocketTools.FtpClient". If the major version number is omitted, the latest version of the control will always be loaded.

With SocketTools 12, secure connections will use TLS 1.2 or later. By default, the controls will not support connections to servers which use older, less secure versions of TLS or any version of SSL. They will also no longer use weaker cipher suites that incorporate insecure algorithms, such as RC4 or MD5. For applications that require secure connections, it is recommended you use the current build of Windows 10 or Windows 11 with all security updates applied.

It is possible to force the controls to use earlier versions of TLS for backwards compatibility with older servers. This is done by explicitly setting the SecureProtocol property to specify the protocol version required. However, this is not generally recommended because using TLS 1.0 may cause servers to immediately reject the connection attempt.

Most of the networking APIs have an option to force the controls to establish an IPv6 network connection. By default, the controls will still give preference to using IPv4 for backwards compatibility. Using options which only establish connections using IPv6 may prevent applications from working correctly on older versions of Windows.

Control File Names

The file names of the ActiveX controls and their IDs have changed with the new version. The following table lists the new values which should be used in your application. For more information, refer to the Redistribution section.

File Name ProgID Description
csdnsx12.ocx SocketTools.DnsClient.12 Domain Name Service Control
csftpx12.ocx SocketTools.FtpClient.12 File Transfer Protocol Control
csftsx12.ocx SocketTools.FtpServer.12 File Transfer Server Control
cshtmx12.ocx SocketTools.WebView.12 WebView Browser Control
cshtpx12.ocx SocketTools.HttpClient.12 Hypertext Transfer Protocol Control
cshtsx12.ocx SocketTools.HttpServer.12 Hypertext Transfer Server Control
csicmx12.ocx SocketTools.IcmpClient.12 Internet Control Message Protocol Control
csllmx12.ocx SocketTools.LlmClient.12 Large Language Model Client Control
csmapx12.ocx SocketTools.ImapClient.12 Internet Message Access Protocol Control
csmsgx12.ocx SocketTools.MailMessage.12 Mail Message Control
csmtpx12.ocx SocketTools.SmtpClient.12 Simple Mail Transfer Protocol Control
csncdx12.ocx SocketTools.FileEncoder.12 File Encoding Control
csnvtx12.ocx SocketTools.Terminal.12 Terminal Emulation Control
csnwsx12.ocx SocketTools.NntpClient.12 Network News Transfer Protocol Control
cspopx12.ocx SocketTools.PopClient.12 Post Office Protocol Control
csrasx12.ocx SocketTools.Dialer.12 Remote Access Services Dialer Control
csrshx12.ocx SocketTools.RshClient.12 Remote Command Protocol Control
csrssx12.ocx SocketTools.NewsFeed.12 Syndicated News Feed Control
cstimx12.ocx SocketTools.TimeClient.12 Network Time Protocol Control
cstntx12.ocx SocketTools.TelnetClient.12 Telnet Protocol Control
cstshx12.ocx SocketTools.SshClient.12 Secure Shell Protocol Control
cstxtx12.ocx SocketTools.TextMessage.12 Text Messaging Control
cswebx12.ocx SocketTools.WebStorage.12 Web Storage Control
cswhox12.ocx SocketTools.WhoisClient.12 Whois Protocol Control
cswipx12.ocx SocketTools.WebLocation.12 Web Location Control
cswskx12.ocx SocketTools.SocketWrench.12 Windows Sockets (SocketWrench) Control
cswsvx12.ocx SocketTools.InternetServer.12 Windows Sockets Server Control