v7.2 [Dec 6, 2011]
Changed C++ classes to support methods that reference CString (CStringT) types if ATL is being used. Note that when using ATL, there are several macros which can affect how the CString class is defined and it depends on whether MFC is also being used. For more information, refer to the CStringT class documentation in the MSDN Library.
Updated several C++ class methods to use more appropriate default values for optional parameters. There were also a number of macros that were defined and used by the SocketTools class wrappers which have been renamed to avoid potential conflicts.
Corrected a problem where a component may return a "network not initialized" error when the real problem was an invalid runtime license key.
Corrected a problem where an ActiveX control would not initialize correctly if the Initialize method was called after another method, rather than being the first method called.
Corrected a problem in .NET components where errorInvalidHandle could be thrown rather than errorOperationNotSupported.
Changed the Initialize method to throw System.ObjectDisposedException if it is called after the the Dispose method, rather than simply failing silently.
Corrected a problem in the Dialer ActiveX control where setting the ThrowError property could throw an "invalid property value" exception.
Corrected a problem where the Initialize method would not actually validate a runtime license key if it previously validated a development license on the current system. This would prevent developers from detecting a problem with the license key until they deployed the application to another system.
Updated .NET components to throw System.IndexOutOfRangeException and System.ArgumentNullException rather than errorInvalidParameter where appropriate for various properties and methods.
Updated .NET components to handle errors more consistently across all components. Invalid property values should always throw an exception and never fire the OnError event. Methods should only throw exceptions if the ThrowError property is true.
The HostAddress property in the ActiveX controls and .NET components should always attempt to return the IP address associated with the HostName property if a connection has been established. This is independent of the value of the AutoResolve property.
The undocumented cData member of the SECURITYCREDENTIALS structure has been removed. This should have no impact on existing applications because this structure member should never have been referenced. The functions that use this structure only check for a minimum structure size, and will not return an error if actual structure size is larger. This ensures backwards compatibility with previous versions of the library.
Support for The PCT security protocol has been removed from all components. This security protocol has not been widely used, contains several known security vulnerabilities and is not being actively developed by Microsoft.
Support for TLS 1.1 and TLS 1.2 has been added, this requires Windows 7 or later versions. Clients will automatically negotiate for the highest version of TLS supported by the server. Windows XP and Windows Server 2003 will only support TLS 1.0.
Added the InetIsProtocolAvailable function that can be used to determine if a specific address family and socket type can be created.
Changed the InternetServer ClientHandle property array to accept a client name as well as a numeric index value.
Changed the InetRead, InetReadEx, InetWrite and InetWriteEx functions to support data buffers larger than 16K for secure connections.
Updated the documentation to be more consistent across the different editions of SocketTools and corrected many errors and omissions.