************************* 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: Aug97 C C+ Windows callback pipes reference multithreading I/O The code listings for the August 1997 issue of C/C++ Users Journal include source code for Brian Danilko's named pipes under Windows 95, Tim Duggan's method of using member functions as callbacks in Win32, Jan Kristofferson's article on portable I/O drivers, Panos Kougiouris' portable multithreading framework, Benjamin Kuo's class wrappers for Microsoft's Internet SDK, and Kenneth Ngai's reference counting template class. Also included is source code from Bobby Schmidt's column, The Learning C/C++urve, and P.J. Plauger's column, Standard C/C++. ************************* FILE DESCRIPTION ********************************** The following files are included in the disk: FILENAME AUTHOR-NAME TITLE (Zip archive/ subdirectory name) ------------------------------------------------------------------------------- danilko Brian Danilko Named Pipes Under Windows 95 channel.hpp - listing 1, CommsChannel definition channel.cpp - listing 2, CommsChannel implementation logger.cpp - listing 3, A logging example using CommsChannel duggan Tim Duggan Member Functions as Callbacks in Win32 example.cpp - listing 1, Callback wrapper example kristoff Jan Kristofferson Portable I/O Drivers singleio.h - listing 1, I/O functions for operation on a single register multiio.h - listing 2, I/O functions for operation on I/O circuitry with buffers or multiple registers. Ex. a peripheral chip with linear hardware buffers exampimp.c - listing 3, Example of how to implement and use SG functions with a processor architecture which has only a single linear address space def8051.c - listing 4, CPU family 8051, Compiler IAR. Compiler- dependent definements in iohw.h def8086.c - listing 5, CPU family 8086, Compiler Borland C/C++. Compiler-dependent definements in iohw.h kougiour Panos A Portable Multithreading Framework Kougiouris & Marco Framba kfthread.h - listing 1, Defines thread and mutex classes kfrefere.h - listing 2, Reference counting class definition posixref.cpp - listing 3, POSIX reference count implementation ntrefco.cpp - listing 4, NT reference count implementation main.cpp - listing 5, Example of test program Complete source code listings in five subdirectories: common, example, header, posix, and win32 kuo Benjamin Kuo Make Internet-Aware Apps with the Internet SDK wrapper.cpp - listing 1, A class wrapper for the Internet SDK ngai Kenneth Ngai A Template for Reference Counting refcount.h - listing 1, Reference count template test.cpp - listing 2, Implementation of Company using reference- count template schmidt Bobby Schmidt The Learning C/C++urve: Me and My Arrow auto_ptr.h - listing 1, The standard C++ auto_ptr auto_pt2.h - listing 2, Revised auto_ptr plauger P.J. Plauger Standard C/C++: The Header valarray - listing 1, Template class valarray sampleop.h - listing 2, Sample valarray operators slice.h - listing 3, Class slice slcarray.h - listing 4, Template class slice_array gslice.h - listing 5, Class gslice gslarray.h - listing 6, Template class gslice_array mskarray.h - listing 7, Template class mask_array indarray.h - listing 8, Template class indirect_array assign.cpp - listing 9, Assignment and subscripting ******************************************************************************* 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 -----------------------------------------------------------------------------