_README.TXT
by Mark R. Szamrej
(315) 891-3340
CompuServe 75730,2257

	Welcome. If you are reading this then you must have the code
disk or have downloaded the files from a BBS. If all went well then
you should now have the following files:

	_Readme.txt - The file you are now reading

[Article Source files]
	CTimer.cpp - Source to the CTimer class
	CTimer.h - Header file for CTimer.cpp
	Timerdll.c - Source for the timerdll
	Timerdll.h - Header file for timerdll
	Timerdll.def - Def. file for the DLL
	Timerdll.mak - Generic makefile for the DLL

[Article Binary files]
	Timerdll.dll - Pre-built version of the Timerdll
	Timerdll.lib - Import library for the Timerdll

[New Binary files]
	Generic.exe - CTimer test program

[New Source files]
	Generic.cpp - Source code for a 'generic' test program
	Generic.h -   Header file for Generic.cpp
	Generic.def - Def file for the sample program
	Generic.ico - Icon for the program
	Icon1.ico   - Another icon
	Generic.rc -  RC file for the sample program
	Generic.mak - MSC compatible make file

	Timerdlg.cpp - Dialog box to test a CTimer object
	Timerdlg.h -   Header file for Timerdlg.cpp
	
	Ticker.cpp -   Dialog box for the 'Tick Test'
	Ticker.h -     Header file for Ticker.cpp

	SuperT.cpp -   Dialog box for the 64 bit timer
	SuperT.h -     Header file for SuperT.cpp

	Resource.h -   Header file for various resources
	Resrc1.h -     Header file for various resources

===============================================================
		      What is different
===============================================================

	The article source files are the same as what was printed in
the Windows/DOS Developers Journal. The primary difference is that I
was not limited in space and therefore the source code contains 
additional comments that were stripped from the printed listings.

	I also used "single line" comments '//' which should not be a
problem for 99.44% of the users. Other users may want to change the
single line comments to the /* .... */ type.

	I prefer to work with a 'Tab' setting of 4. If your code has
funny alignment then you can either set your Tab settings to 4 or
reformat the code.


=================================================================
		      What we have
=================================================================

***     Generic.cpp - Creates an application. The application has a
dialog box for it's main window. The dialog box has a menu and
three push buttons. The code handles creating the dialog box and
handling the basic messages for it. The three buttons correspond to
the three items found in the "Options" menu. 

	Selecting "New Timer" creates a modeless dialog box which
is handled by Timerdlg.cpp. Selecting 'Tick Test' brings up a modal
dialog box which is handled by Ticker.cpp. When "Super Time" is
selected the code in SuperT.cpp handles the modal dialog box.
InitDialog() checks for Windows 3.1 (or better) and enhanced mode
Windows and disables the "Super Time" options if need be.

***     Timerdlg.cpp - Implements a modeless dialog box. This dialog
box has a CTimer object associated with it. From here you can create
and test a CTimer. The dialog box is split into two sections. One
half is for timing (stopwatch) functions and the other half is for
event functions. Whenever you do something meaningful it will be
displayed in the status box. The status box is just a listbox which
displays what is going on. The stopwatch is controlled by the push
buttons. The buttons have a one-to-one correspondence with the CTimer
API calls. To create an event you must first enter a value in the
edit box. The value is in milliseconds. Pressing either the one-shot
or periodic buttons will create the event for you. As the event(s)
are processed, you will see the notification messages in the status
(list) box. Events are created which generate "messages". "Callback"
events were not used in the sample program.

***     Ticker.cpp - This modal dialog compares the count obtained
from GetTickCount() with the value from a CTimer. Differences are
displayed. Invoke the dialog box and read what it says for more
information on what this does.

***     SuperT.cpp - This allow you to get the 64-bit system time
directly from the VTD. This menu item for this dialog box will be
grayed unless your system is at least a 386 running Windows 3.1.
The dialog box has two buttons (Address and Time). The 'Time' button
is initially disabled. Press 'Address' to get the address of the VTD
entry point. Once you have the address you can press 'Time' to read
and display the 64-bit time.


=================================================================
		      (FAR) return;
=================================================================
	The makefile for the test program (Generic.mak) is a
MSVC 1.0 compatable file. If you are using C7/PWB you can try
to read this as an "external" makefile or generate a new one.
Borland users can run the executable but will not be able to
compile the sample since it requires the Microsoft Foundation
Classes (MFC). 

	I hope that this helps to get you up and running. If you
have any questions or problems then feel free to contact me. I can
be reached at the above numbers.
				      
					- Mark S. -

**** Final Notice *****

	When using the test program (Generic.exe) to test CTimer
objects, be careful. It is easy to create several timers each of
which creates fast (less than 5 mSec) periodic events. This will
load down your system in a big way. The events will be happening
so quickly that virtually everything else will stop. What was
once a fast 386/486 system will bog down to XT speeds. Have fun.


