SocketWrench ActiveX Control  
 

A general purpose TCP/IP networking component for developing client and server applications.

Reference

Control Information

Object Name SocketWrenchCtl.SocketWrench
File Name CSWSKX12.OCX
Version 12.0.3024.1286
ProgID SocketTools.SocketWrench.12
ClassID FA174594-F986-428D-8E8B-25E7C61A16D1
Threading Model Apartment
Help File CSW12HLP.CHM
Dependencies None
Standards RFC 768, RFC 791, RFC 793

Overview

The SocketWrench control provides a simplified interface for the standard Windows Sockets API used to develop Internet and intranet applications using the TCP/IP protocol. With SocketWrench, you can create both client and server applications, as well as send and receive UDP datagrams. SocketWrench also supports secure connections using the standard Transport Layer Security (TLS) protocol. Enabling the security features of the control is done by setting a single property, and all of the data that is exchanged between your application and the remote host will be encrypted.

Instead of using complex API calls, virtually all network functions can be performed by setting the control's properties and responding to events. For developers who are not familiar with the details of Internet programming, SocketWrench can also insulate them from many of the common pitfalls, without sacrificing functionality or flexibility.

Each instance of the control that you use corresponds to one socket which may or may not be currently connected to a remote host. If you need access to multiple sockets, you simply create multiple instances of the control. This is most commonly needed when your application acts a server and must be able to handle several connections at one time.

Requirements

The SocketWrench control is self-registering and compatible with any programming language that supports the Component Object Model (COM) and the ActiveX control specification. If you are using Visual Basic 6.0, Service Pack 6 (SP6) is required. We recommend installing all available updates for your development tools. Although the Visual Basic 6.0 runtime is supported on Windows 11, the IDE itself is no longer officially supported by Microsoft. Legacy IDEs and compilers may also require elevated (administrator) privileges to run properly.

The control is supported on Windows 7, Windows Server 2008 R2, and later versions of both desktop and server editions of Windows. For Windows 7, Service Pack 1 (SP1) is the minimum requirement. For Windows 8 systems, the 8.1 update must be installed. On ARM-based platforms, the minimum supported version is Windows 10 build 1709.

SocketWrench includes components for both 32-bit (x86) and 64-bit (x64) Windows platforms. All modern versions of Windows are 64-bit, but we continue to include 32-bit components for compatibility with legacy development tools such as Visual Basic 6.0. We also provide native ARM64 ActiveX controls for systems running Windows on ARM. Note that 32-bit applications on ARM run using x86 emulation, and Microsoft no longer supports native ARM32 applications.

If you are using VBScript, Visual Basic for Applications (VBA), or another scripting environment on an ARM-based system, be aware that 64-bit hosts will require ARM64 components, while 32-bit hosts will use x86 components under emulation. This includes applications created with Visual Basic 6.0. To reduce deployment complexity and avoid confusion, SocketWrench does not include ARM32 ActiveX controls in its standard redistribution packages but they are available on request for legacy or specialized scenarios.

Distribution

When you distribute an application that uses this control, you can either install the file in the same folder as your application executable or as a shared component in the appropriate system folder. If you install the control in the system folder, it is important that you distribute the correct version for the target platform and it must be registered. If you install the control in the same folder as your executable, it is recommended that you use registration-free activation or COM redirection to ensure that the correct version of the control is loaded by the application.