************************* 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:     APR96 C C++ Windows NT multithreading dynamic arrays

Description:  The code listings for the April 1996 issue of Windows
              Developer's Journal include source code to Dan Shappir's C++
              template for dynamically allocated arrays (using
              VirtualAlloc()), Robert Mashlan's code to allow 16-bit software
              to access long filenames when running under Win95, and Paula
              Tomlinson's code for making Win32 error codes readable with
              FormatMessage().


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

The following files are included in the disk:

FILENAME        AUTHOR-NAME             TITLE                           PAGES
=============================================================================

shappir.zip     Dan Shappir             A C++ Template for Dynamically
                                        Allocated Arrays                 6-20
includes:
bug.cpp         Listing 4:  Problems with Visual C++.
darray.cpp      Listing 2:  Definitions for dynamically allocated array class.
darrah.h        Listing 1:  Declarations for dynamically allocated array class.
test.cpp        Listing 3:  Demonstration of dynamically allocated array class.

-----------------------------------------------------------------------------

burk.zip        Ron Burk                Don't Use Memory-Mapped Files   21-28
includes:
cpuspeed.c
gendat.c
mysort.c
qsort.c         Listing 1:  Using qsort() with memory-mapped files.

----------------------------------------------------------------------------

zolman.zip      Leor Zolman             Tech Tips                       29-34
includes:
childfrm.cpp
childfrm.h
ctorfail.cpp    Listing 2.
mainfrm.cpp
mainfrm.h
newchild.cpp
newchild.h
readme.txt
resource.h
stdafx.cpp
stdafx.h
sysmsg.cpp      Listing 1.
toolbar.bmp
toolbar1.bmp
toolbars.clw
toolbars.cpp
toolbars.doc
toolbars.h
toolbars.ico
toolbars.mak
toolbars.rc
toolbars.rc2
toolba~1.cpp
toolba~1.h
toolba~1.ico
toolba~2.cpp
toolba~2.h
toolba~2.ico
toolba~3.cpp
toolba~3.h
toolba~4.cpp
toolba~4.h

-----------------------------------------------------------------------------

nelson.zip      Mark Nelson             Bug++ of the Month              41-43
includes:
bug0496.cpp     Listing 1:  Demonstrating a Borland C++ loop optimization bug.

-----------------------------------------------------------------------------

mashlan.zip     Robert Mashlan          Using Long Filenames from
                                        16-Bit Code                     50-58
includes:
lfnames.c       Listing 2:  Implementation of long filename functions.
lfnames.h       Listing 1:  Declaration for long filename functions.

-----------------------------------------------------------------------------

sdkann.zip
includes:
anntater.exe
sdkann.txt:  An up-to-date collection of SDK annotations.

-----------------------------------------------------------------------------

order.frm  -- This file contains an order form which can be used to
order books reviewed in the "Books in Brief" column or advertised in the
Windows Developer's Bookshelf. You can complete the form and fax,
mail, or email it to us, or use it as the basis for a phone order. 

******************************************************************************

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

------------------------------------------------------------------------------
                           Miller Freeman, Inc.
                        1601 W. 23rd St. Suite 200
                            Lawrence, KS 66046
                              (913) 841-1631
------------------------------------------------------------------------------
