Francois PIETTE wrote:
>>>> I'm going to look at how to implement IPv6 in ICS and wonder
>>>> if support for winsock below v2.2 was actually required in
>>>> ICS v7?
>>> No, I don't believe ICS v6 and v7 need to support any OSs earlier
>>> than Windows 2000, since they are long out of support and there is
>>> no need for them to support new applications.  v5 is fine for legacy
>>> applications and compilers.
>> There's an option to dynamically load a different winsock version at
>> runtime (see properties ReqVerHigh and ReqVerLow).
>> However loading v2.x requires winsock2 headers, and if we want IPv6
>> we must use winsock2 API. I think I'll keep these two properties as
>> dummies, they would no longer work, what do you think?
> Just an idea:
> I don't think anyone ever changed the value of those properties. So
> changing their default value to the value required to support IPv6
> wouldn't break any existing code and yet allow to trigger an
> exception if the winsock level is not reached. 

In this case IPv6 may require to load another, the third library 
"wship6.dll" if under the W2K technical preview. Also in Winsock2 
some used constants got different values, winsock.pas can therefore
IMO no longer be used, and an option for switching back winsock level 
won't work (C++Builder also has to include winsock2.h and wship6.h). 
ICS v7 requires W2K and later anyway (mainly due to Unicode support) so
abandon winsock1 won't break anything and make things easier. 

> The setter of any
> other property specifying IPv6 would check the version properties and
> trigger an exception if the required version is not there. The idea
> is that it is better to trigger the exception when the IPv6 values
> are set to the properties than later when they are refused by the
> system calls.

Indeed this is a problem in current code as well.
However checking the WSAData is possible only after a call to WSAStartup().
It's IMO easier to simply check whether GetProcAddress with handle to 
ws2_32.dll returns something and if not load second library "wship6.dll" 
which should be only ever required in W2K. 

Arno Garrels
To unsubscribe or change your settings for TWSocket mailing list
please goto
Visit our website at

Reply via email to