VTSocket - Windows Socket Control for Visual Basic and Visual C++  
           Version 1.0i

Copyright (C) 1993 by Visual Technology Products

This is a shareware distribution of VTSocket.  VTSocket is a custom 
control for use with Microsoft Visual Basic and Visual C++.  With this
control you may create applications using the visual products ONLY that 
can communicate as clients and/or servers on the Internet or other TCP/IP 
based networks.  This custom control DOES REQUIRE that you have a TCP/IP 
product installed on your computer system that supports the Windows Sockets
Application Programming Interface.  If your TCP/IP product includes a 
WINSOCK.DLL module, then this custom control should work.  Some vendors 
that provide TCP/IP products with Windows Sockets support include:  

   Microsoft      FTP Software     Lanera       NetManage      
   Frontier       Distinct         Novell

The following files are included with this distribution:

    VTSOCKET.TXT  - This file
    
    VTSOCKET.VBX  - The VTSocket custom control
    VTSOCKET.HLP  - The online VTSocket User Manual
    VTSOCKET.INC  - An include file for VB that documents error 
                    codes returned by VT Sockets
    
    CLIENT.MAK    - A very simple Visual Basic client application
    CLIENT.FRM
    
    SERVER.MAK    - A very simple Visual Basic server application
    SERVER.FRM      that will communicate with the above client
    
    VTTELNET.MAK  - A simple, but complete Telnet VT100 terminal 
    TELNET.FRM      emulator
    CONNECT.FRM

    VTFTP.MAK     - A simple, but complete drag-and-drap File
    FTP_FORM.FRM    Transfer application  
    FTP_CONN.FRM
    FTPGLBL.BAS
    FTP_FORM.FRX
    PAGE.ICO
    TRASH.BMP
    INFO.BMP
    
    THREED.VBX    - 3D custom control used by VTTelnet and VTFTP
    KEYSTAT.VBX   - Key status custom control used by VTTelnet
    MSOUTLIN.VBX  - Outline custom control used by VTFTP

To install VTSocket copy the .VBX and .HLP files to your 
\WINDOWS\SYSTEM directory.  The .VBX file is included for use by an 
application in the same way that other custom controls are included.  
You may peruse the online help file by including a copy of the control 
in an application, selecting the control, and then pressing the Help (F1) 
key.  You may also review the Users Manual by entering the following 
command from the Program Manager file/run command line:

    WINHELP VTSOCKET

This Visual Product Control is NOT free.  You are authorized to test 
the control for 30 days.  At the end of this test period you may either 
register the control by sending your name, organization (if any), 
address, and $50 to:         

    Visual Technology Products         
    4317 Olley Lane         
    Fairfax, VA 22032         

or you should discontinue using the control.  Please note that a license  
is required for development only.  Applications that are compiled using
a licensed development system do not need to be registered.  In other
words, there are no run time license fees.

In exchange for registration, you will receive a license module 
(VTPROD.LIC), full written documentation, and the latest version of VT 
Socket and sample programs.  You will also be registered to receive 
notification of new products, such as the upcoming 32 bit version of 
VTSocket for Windows NT.         

Please feel free to fax any comments or questions to (703) 978-7389, or
send Internet mail to vtprod@access.digex.com.

Product History

V1.0i   1. Added event management code to several internal functions to  
        prevent WSAEINPROGRESS errors.  These errors were only known to
        occur with Trumpet TCP.
        2. Changed several routines to collect information from the MODEL 
        structure for subsequent use, rather than using entries in the 
        MODEL structure directly.  This prevents errors that occur when 
        the location of MODEL changes during a winsock function call that  
        relinquishes control to VB, with the result that the MODEL 
        location is sometimes invalid on return from a winsock function.

V1.0h   1. Changed recv() function to issue yield() and then retry in 
        response to a WOULDBLOCK error. 
        2. Changed send() function to issue yield() and then retry in 
        response to an INPROGRESS error. 
        3. Corrected the display of the days left on evaluation in the 
        shareware dialog box.

V1.0g   1. Changed call to WSAStartup() to remove presentation of a 
        Dialog Box when a startup error occurs.  Any subsequent use  
        of VT Socket will then return a NOTINITIALIZED error.  This 
        allows the VB developer to determine the proper recovery action.
        2. Added yield() function to send() and recv() routines.  Some 
        winsock implementations seem to expect the application to yield
        between calls to allow the winsock to process previous requests.

V1.0f - 1. Added logic to closesocket routines to first reset the socket
        to blocking mode.  
        2. Added additional error checking logic to getsockopt(), 
        setsockopt(), and WSAAsyncSelect() routines.

V1.0e - 1. Added logic to fire connect/disconnect events for all client 
        sessions and for server sessions other than the listener 
        (server and index = 0).  Previously, only connect/disconnect 
        from a remote host produced these events.  
        2. Suppressed the shareware dialog box presentation when the
        VT Socket control is loaded for a server with index > 0.  This
        prevents the display of the dialog box for each new connection
        to a server.

V1.0d - 1. Added the MyIP property.  This property returns the local
        host's ip number as an unsigned long integer.
        2. Modified the Send property to test for buffer availability 
        prior to sending a message.  This prevents WOULDBLOCK errors.  
        3. Changed error routines to leave the socket open when a 
        WOULDBLOCK error occurs.  Prior versions close the session
        when this error is encountered.

V1.0c - 1. Added support for Visual Basic format strings.  Binary zeroes
        may now be passed via winsock.Send and winsock.Recv for VB 
        versions 2.0 and higher.  VB 1.0 and VC++ remain restricted to 
        the use of zero terminated strings.

V1.0b - 1. Fixed a problem with name resolution. 
        2. Added (undocumented) function winsock.SendZero.  This is an 
        integer field that sends n number of binary zeroes when assigned 
        a value.  Example:  "winsock1.SendZero = 5" will send 5 binary
        zeroes to the remote host.

V1.0a - Initial release
