************************* MASTER CODE ***************************************

The name of the first file in this disk's directory identifies the volume,
issue number and revision of the disk. The format of this filename is:

    !CDmvvii.rrr

where

    ! = the '!' character
    m =   C for C Users Journal, W for Windows Developer's Journal
    vv =  volume
    ii =  issue
    rrr = revision (001 for initial release, 002 for next update, etc.)

The file UPDATE.DOC contains information about any additions or
corrections to material on the disk since the original magazine
publication.

If you have obtained this code from a floppy diskette or from CompuServe, the 
headings under the column "FILENAME" represent the names of .ZIP files.  All 
files listed under the filename are archived in the .ZIP file.

Keywords: Jan97 C C+ CGI Templates GUI Skip List Console Printing

The code listings for the January 1997 issue of C/C++ Users Journal
include source code for Richard B. Lam's C++ CGI framework, Jamie
Guinan's wxWindows sample code, Michael Martinka's template
implementation of skip lists, and David Tamashiro's console printing
techniques for Windows 95.  Also included is source code from P.J.
Plauger's column, Standard C/C++, an update to Harry H. Cheng's code
from his November 1996 article on CGI Programming in C and a listing
from our Letters to the Editor (We Have Mail) section.

*************************  FILE DESCRIPTION **********************************

The following files are included in the disk:

FILENAME		AUTHOR-NAME	TITLE			       PAGE
(Zip archive/
subdirectory name)
-------------------------------------------------------------------------------

lam			Richard B. Lam	A C++ Framework

    form.htm	 - listing 1, HTML code for a simple form
    mimehead.htm - listing 2, An output string for CGI programs that
			      specifies the MIME type of the data that
			      follows
    helpfrag.c	 - listing 3, Code fragment demonstrating cgiHTMLHelper
			      methods
    main.c	 - listing 4, The main program for a CGIFramework
			      application
    myproc.h	 - listing 5, A derived class for constructing a
			      complete CGI program
    myproc.c	 - listing 6, A generic HTML form processor that returns
			      the list of name-value pairs to the browser
    myproc.htm	 - listing 7, HTML source output from the program in
			      Listing 6
    myproc2.c	 - listing 8, More advanced form processor

    Full source code for CGI framework:

    env.dsw
    env.c
    env.ide
    noparse.c
    noparse.ide
    noparse.dsw
    parse.c
    parse.dsw
    parse.ide
    cgifwork.lib
    process.h
    tappl.h
    parser.h
    environ.h
    xcpt.h
    defs.h
    htmlhelp.h
    process.c
    cgifwork.ide
    parser.c
    environ.c
    htmlhelp.c
    cgifwork.dsw
    readme.txt


guinan			Jamie Guinan	Platform-Independent C++ GUI
					Toolkits

    oninit.cpp		listing 1, Startup method for Tetris game
    trisfiel.h		listing 2, Definition of Trisfield class
    notify.cpp		listing 3, Handling timer messages
    triscell.h		listing 4, Defines a Tetris cell
    triscell.cpp	listing 5, TriscCell methods

martinka		Michael		A Template Implementation of
			Martinka	Skip Lists

    skiplist.h		listing 1, Classes SLPosition and Skiplist
    slpositi.cpp	listing 2, SLPosition constructors
    skiplist.cpp	listing 3, Skiplist constructor
    find.cpp		listing 4, Skiplist search function
    insert.cpp		listing 5, Skiplist insertion function
    remove.cpp		listing 6, Skiplist deletion function
    test.cpp		listing 7, Skiplist test function

tamashir		David Tamashiro	Three Printing Techniques for
					Windows 95 Console Applications

    exam1.cpp	 - not listed, Technique for writing to the printer
			       as though it were a file
    exam2.cpp	 - not listed, Technique for printing through the GDI
    exam3.cpp	 - not listed, Technique for printing using traditional
			       GDI drawing
    exam4.cpp	 - listing 1, Printing using the generic class
			      BasePrinter
    printers.hpp - not listed, Defines class BasePrinter
    printers.cpp - not listed, Implements class BasePrinter
    readme	 - not listed, Instructions for building print programs
    pdemo.mak	 - not listed, Makefile for print programs
    exam1.exe	 - not listed, Executable resulting from exam1.cpp
    exam2.exe	 - not listed, Executable resulting from exam2.cpp
    exam3.exe	 - not listed, Executable resulting from exam3.cpp
    exam4.exe	 - not listed, Executable resulting from exam4.cpp

plauger			P.J. Plauger	Standard C/C++: The Header <vector>

    vector	 - listing 1, Template class vector
    vectorb.h	 - listing 2, vector<bool>

cheng			Harry H. Cheng	CGI Programming in C (from
                                        November 1996 issue)

    The following files constitute an update to the code supplied with
    Harry Cheng's article in the November 1996 issue of CUJ.  This
    update corrects some bugs in the original version, as described in
    this month's We Have Mail section.

    copyrigh
    makefile
    readme
    change-p.c
    count.c
    env.c
    form.c
    form1.c
    imagemap.c
    util.c
    www.h

letters			P.J. Plauger	We Have Mail

    lopez.c	 - listing 1, Failed attempt to read a large file
    
    
*******************************************************************************

If you have questions regarding to the disk, please call or write us.

-----------------------------------------------------------------------------
			   Miller Freeman Inc.
			1601 W. 23rd St. Suite 200
			    Lawrence, KS 66046
	              1-800-444-4881 or 913-841-1631
-----------------------------------------------------------------------------

