I\'ve started writing an ActiveX control that makes use of sockets.
Applications that use this control may or may not also use sockets. Is it possible for my control
No, it is not possible to tell if WSAStartup() has already been called.
Yes, WSAStartup() can be called multiple times in a single process, as long as the requested version is supported by the WinSock DLL. Calls to WSAStartup() and WSACleanup() must be balanced.
WinSock initialization is a negotiated process; you are responsible for validating the info that WSAStartup() returns to make sure it meets your app's requirements.
Existing sockets are not affected by subsequent WSAStartup() calls.
Multiple sockets using different WinSock versions is allowed.
See the WSAStartup() documentation for more information.