=============================================================================

****
**** The BITMAP sample can be downloaded from the
**** file 5-1.zip in library section number 5
****


BITMAP: Draws and Manipulates Bitmaps in Menus and in
Client Windows

BITMAP demonstrates creating, loading, and stretching
bitmaps. It also shows how to change the foreground and
background of a bitmap using raster operations, how to
trap mouse messages, and how to display bitmaps in menus.

BITMAP draws a dog, a cat, or a multi-colored box bitmap,
according to the selection on the Bitmap menu. The Pattern
menu updates the background of the client window to black,
white, zigzag pattern, or crosshatch pattern. The Mode
menu sets the foreground and background of the next
displayed bitmap to white-on-black, black-on-white, or
color-on-color.

To display the selected bitmap, click the right mouse
button in the BITMAP main window. To display the bitmap in
a different size, click and drag with the left mouse
button to define a region. The bitmap is stretched or
compressed to fit the region when you release the mouse
button.

BITMAP was built and tested under Microsoft(R) Windows(TM)
version 3.1.

KEYWORDS: outline; bmp; MoveTo; LineTo; CreatBitmap;
LoadBitmap; BitBlt; PatBlt; StretchBlt; SetStretchBltMode;
CreateSolidBrush; CreateCompatibleBitmap;
CreatePatternBrush; CreateCompatibleDC; SelectObject;
GetObject; CreateMenu; GetMenu; AppendMenu; ModifyMenu;
CheckMenuItem; PostQuitMessage; SetRectEmpty;
GetClientRect; WM_ERASEBKGND; WM_LBUTTONUP; WM_RBUTTONUP;
WM_MOUSEMOVE; SetCapture

TAGS:

=============================================================================

=============================================================================

****
**** The BLANDMDI sample can be downloaded from the
**** file 5-2.zip in library section number 5
****


BLANDMDI: Skeleton MDI Sample Application

BLANDMDI demonstrates the minimum amount of source code
required to create a multiple document interface (MDI)
application. (The MULTIPAD sample application demonstrates
a more complex MDI application with editing capabilities.)

BLANDMDI's File New command creates a new document window.
The Window menu provides commands for tiling or cascading
document windows, arranging icons, and closing all
document windows. A list of document windows, with the
active window indicated by a check mark, appears after all
other Window menu items.

BLANDMDI was built and tested under Microsoft(R)
Windows(TM) version 3.1.

KEYWORDS: MDI; DefMDIChildProc; WM_MDITILE; WM_MDICASCADE;
WM_MDIICONARRANGE; WM_MDIDESTROY; MDICREATESTRUCT;
TranslateMDISysAccel; DefFrameProc;

TAGS:

=============================================================================

=============================================================================

****
**** The BOUNCER sample can be downloaded from the
**** file 5-3.zip in library section number 5
****

BOUNCER: Screen Saver that Bounces Bitmaps Across the
Screen with Sound Effects

BOUNCER is a sample screen-saver application that bounces a 
bitmap across the screen and produces a sound when the 
bitmap image is at the bottom of the screen. BOUNCER 
demonstrates loading a device-independent bitmap (DIB) 
image, creating a timer to move the image, moving the image 
across the screen, and reading initial settings from 
WIN.INI.

BOUNCER handles the following command-line switches for 
debugging the screen-saver application:

>  /c, -c, or c:  Display configuration dialog box and 
return.

>  /s, -s, or s:  Start screen saver.

>  Default:  Display configuration dialog box and return.

When BOUNCER starts, it displays a dialog box with default 
values for the time interval, initial x position, initial y 
position, initial x velocity, gravity, bouncing sound, and 
pause at the bottom of the screen. The user can modify 
these options.

BOUNCER was built and tested under Microsoft(R) Windows(TM) 
version 3.1.

=============================================================================

=============================================================================

****
**** The CDDEMO sample can be downloaded from the
**** file 5-4.zip in library section number 5
****

CDDEMO: Illustrates Common Dialog Boxes in COMMDLG.DLL

CDDEMO implements the common dialog boxes: File Open, File 
Save, Find, Find and Replace, Colors, Fonts, and Print. You 
can access each dialog box from the Common Dialogs menu. 
CDDEMO only displays the selected dialog box; it does not 
demonstrate the function of the dialog box. For example, it 
displays the common File Open dialog box, but does not open 
a file.

For more information, see the Microsoft(R) Windows(TM) 
version 3.1 Software Development Kit (SDK) "Programmer's 
Reference, Volume 1: Overview" manual. 

CDDEMO was built and tested under Microsoft Windows version 
3.1.

=============================================================================

=============================================================================

****
**** The CLIDEMO sample can be downloaded from the
**** file 5-5.zip in library section number 5
****

CLIDEMO: Illustrates an OLE Client Application

CLIDEMO is a sample object linking and embedding (OLE) 
client application that works with the SRVRDEMO sample 
server application to demonstrate the use of OLECLI.DLL and 
OLESRV.DLL. The first step in using these applications is 
to run CLIDEMO.

Note: SRVRDEMO does not register itself with the 
registration database. Please see the SRVRDEMO abstract for 
information on registering the server.

For instructions on using CLIDEMO, see the CLIDEMO.TXT 
file. For more information on OLE client applications, see 
the Microsoft(R) Windows(TM) version 3.1 Software 
Development Kit (SDK) "Programmer's Reference, Volume 1: 
Overview" manual.

CLIDEMO was built and tested under Microsoft Windows 
version 3.1.

=============================================================================

=============================================================================

****
**** The CROPDIB sample can be downloaded from the
**** file 5-6.zip in library section number 5
****

CROPDIB: Manipulates DIB Pixel Data and DIB Palette Data

CROPDIB is a Microsoft Microsoft(R) Windows(TM) with 
Multimedia Extensions sample application that crops and 
manipulates a series of device-independent bitmaps (DIBs).

CROPDIB uses the DIB driver, although the DIB driver is the 
only multimedia component that it demonstrates. CROPDIB 
contains many useful functions for manipulating DIB pixel 
data and DIB palette data. It also demonstrates DIB driver 
caching to avoid reloading.

CROPDIB reads a single input file or a series of input 
files containing one or more DIBs. You can brighten a DIB 
by incrementing the palette entries. CROPDIB outputs to a 
single DIB output file or to a series of DIB output files.

CROPDIB was built and tested under Microsoft Windows 
version 3.1.

=============================================================================

=============================================================================

****
**** The DBWIN sample can be downloaded from the
**** file 5-7.zip in library section number 5
****


DBWIN: Traps Debug Strings and RIPs Without Debug Terminal

Revised: November 24, 1992

DBWIN uses TOOLHELP.DLL to trap all calls to the
OutputDebugString function and to all FatalExit events.
Normally, text from these events is sent to the AUX port.
If no device is connected to AUX, the infamous "Can't read
from device AUX" message is displayed. DBWIN traps these
events and either directs the text to a window, to a
secondary monochrome monitor, or to a COMM port or
completely ignores the message, thus eliminating the need
to attach a debugging terminal to the COMM port.

When running the debugging version of the Microsoft(R)
Windows(TM) graphical environment, having DBWIN run all
the time is extremely useful. You can monitor the
diagnostic messages DBWIN traps to see when your
application or the system encounters problems.

DBWIN also demonstrates the use of TOOLHELP to trap
debugging events and messages and includes code that
displays text on a secondary monochrome monitor.

For further information on DBWIN and its functions, see
the DBWIN.TXT and DBAPI.TXT files. For more information on
TOOLHELP, see the Microsoft Windows version 3.1 Software
Development Kit (SDK) "Programmer's Reference, Volume 1:
Overview" manual.

DBWIN was built and tested under Microsoft Windows version
3.1.

KEYWORDS:NotifyRegister;

TAGS:

=============================================================================

=============================================================================

****
**** The DDE sample can be downloaded from the
**** file 5-8.zip in library section number 5
****

DDE CLIENT/SERVER: Illustrates the Use of the Message-Based
DDE System

The DDE CLIENT and SERVER sample applications implement a
dynamic data exchange (DDE) client and server through the
message-based system. You should use the DDE management 
library (DDEML) for all new development work with DDE.

To use the DDE message system, follow the instructions in 
the DDE.TXT file. 

The DDE CLIENT and SERVER applications were built and 
tested under Microsoft(R) Windows(TM) version 3.1.

=============================================================================

=============================================================================

****
**** The DDEMLCL sample can be downloaded from the
**** file 5-9.zip in library section number 5
****

DDEMLCL: DDE Client that Uses the DDE Management Library

DDEMLCL implements a dynamic data exchange (DDE) client 
application using the DDE management library (DDEML).

To see the messages being exchanged in the system, start up 
the Spy application, choose Options, and under Messages, 
click to deselect all check boxes except DDE. Click OK to 
close the dialog box, and choose the All Windows command 
from the Windows menu.

To use DDEMLCL, you must have a DDEML server application 
running so that a DDE conversation can take place. We will 
use the sample DDEMLCLK application as the server. Start 
DDEMLCLK and then start DDEMLCL. In the DDEMLCL window, 
choose Connect from the DDE menu. In the DDE Connect dialog 
box, enter "Clock" as the application and "System" as the 
topic. Click Connect to start a conversation with DDEMLCLK.

For additional information on using DDEMLCL, see the 
DDEMLCL.TXT file.

DDEMLCL was built and tested under Microsoft(R) Windows(TM) 
version 3.1.

=============================================================================

=============================================================================

****
**** The DDEMLCLK sample can be downloaded from the
**** file 5-10.zip in library section number 5
****

DDEMLCLK: DDEML Server That Works with DDEMLCL

DDEMLCLK demonstrates painting in the icon area, placing 
your private data in the RC file, setting up timers, and 
creating a sample dynamic data exchange (DDE) server 
program. The WRAPPER.C module contains all the code 
necessary to handle the server side of a DDE application 
and the System topic.

When you start DDEMLCLK, it displays the current system 
time. To use DDEMLCLK as a DDE server application, you must 
start a conversation with it on the System or Time topic. 
Start the DDEMLCL application. Choose Connect from the DDE 
menu and enter "Clock" as the application and "Timer" as 
the topic. Click Connect to start a conversation with 
DDEMLCLK.

For more information, see the DDEMLCL abstract.

To use DDEMLCLK with Microsoft(R) Excel, enter in the 
following string in any cell:

=Clock|Timer!Now

Microsoft Excel displays the time it receives from 
DDEMLCLK. You may have to choose Number from the Format 
menu and select the "hh:mm:ss" format to see the seconds 
being updated.

DDEMLCLK was built and tested under Microsoft Windows(TM) 
version 3.1.

=============================================================================

=============================================================================

****
**** The DDEMLSVR sample can be downloaded from the
**** file 5-11.zip in library section number 5
****

DDEMLSVR: DDEML Server that Works with DDEMLCL

DDEMLSVR implements a dynamic data exchange (DDE) server 
application using the DDE management library (DDEML). It 
also lets you test your DDEML client application.

DDEMLSVR registers itself with DDEML at startup. After 
starting DDEMLSVR, start a DDE client application such as 
DDEMLCL. From the client application, choose Connect from 
the DDE menu and enter "Server" as the application and 
"Test" as the topic. Click Connect. DDEMLCL displays status 
information in its window. Choose DDE Start Transaction 
from DDEMLCL. Specify "Rand" as the item and "Request" as 
the transaction type. Click OK. The server window displays 
the value it receives.

Choose Change Data from the server's Options menu to change 
the value in Rand. In the client, repeat DDE Start 
Transaction with another Request of Rand. The server window 
now displays new data.

To end the conversation, choose DDE Disconnect for the 
client window or press the DELETE key.

DDEMLSVR was built and tested under Microsoft(R) 
Windows(TM) version 3.1.

=============================================================================

=============================================================================

****
**** The DIBIT sample can be downloaded from the
**** file 5-12.zip in library section number 5
****

DIBIT: Loads, Displays, and Stretches DIBs

DIBIT loads a device-independent bitmap (DIB) from a file, 
displays the DIB in the client area, and saves the DIB to a 
file. DIBIT also stretches the DIB to fit the current 
client area.

DIBIT is easy to use. Use the File menu to load and save 
the DIB. Choose SetDIBits, SetDIBitsToDevice, or 
StretchDIBits from the Options menu to specify how the DIB 
is displayed. Use the Palette menu to display the DIB using 
palette-relative RGBs or palette indexes.

DIBIT was built and tested under Microsoft(R) Windows(TM) 
version 3.1.

=============================================================================

=============================================================================

****
**** The DIBVIEW sample can be downloaded from the
**** file 5-13.zip in library section number 5
****

DIBVIEW: Manipulates DIBs, Illustrates Printing in
Microsoft(R) Windows(TM) Versions 3.0 and 3.1

DIBVIEW provides the same functionality as SHOWDIB, but 
adds multiple document interface (MDI) capabilities, more 
modular functions, and banded printing.

The application manipulates device-independent bitmaps 
(DIBs) by loading a DIB from a file, saving a DIB, 
converting a DIB to a device-dependent bitmap (DDB) and 
vice versa, displaying a DDB or a DIB, and stretching the 
DIB to the screen or to the printer. The application also 
demonstrates extracting, creating, realizing palettes from 
DIB color tables, palette animation, copying and pasting 
from the clipboard, using common dialog boxes, installing a 
Microsoft(R) Windows(TM) hook, and displaying a system 
palette. DIBVIEW demonstrates printing in Windows versions 
3.0 and 3.1, and can toggle between using the version 3.0 
escape functions and the version 3.1 printer functions.

DIBVIEW uses a significant amount of memory. Whereas 
SHOWDIB lets the user have disk-based DIBs and read the DIB 
in small chunks, DIBVIEW keeps two copies of a bitmap in 
memory--a DIB and a DDB--at any one time.

Most menu options are self-explanatory. The Options dialog 
box lets a user change the way the currently selected 
bitmap is displayed.

DIBVIEW was built and tested under Microsoft Windows 
version 3.1.

=============================================================================

=============================================================================

****
**** The DRAGDROP sample can be downloaded from the
**** file 5-14.zip in library section number 5
****

DRAGDROP: Illustrates How to Drag File Names from the File
Manager to an Application

DRAGDROP demonstrates how to drag file names from File 
Manager into an application. To use DRAGDROP, run DRAGDROP 
and File Manager. Arrange the application windows so they 
do not overlap. Click to select a file in File Manager, 
drag the file into the DRAGDROP window, and release. 
DRAGDROP displays the path of the file. Select the 
Information menu to display the number of files dropped and 
the window coordinates of the mouse pointer where the files
were dropped.

DRAGDROP was built and tested under Microsoft(R) 
Windows(TM) version 3.1.

=============================================================================

=============================================================================

****
**** The FONTEST sample can be downloaded from the
**** file 5-15.zip in library section number 5
****


FONTEST: Demonstrates a Common Dialog for Choosing Fonts
Using ChooseFont

Revised: November 24, 1992

FONTEST lets you select fonts based on the destination
device (printer or screen), font style, font size, color,
point size, and font effects (strikeout or underline). The
ChooseFont function invokes the common dialog box for
choosing fonts.

FONTEST demonstrates the ChooseFont function using
predefined constants to set the font selection criteria
and displays current font information in the client area.
You can use the Font and Print menus to change or print
the current font information displayed on the screen.

The Font menu displays a list of initial font selection
criteria. The selected criteria determine the options and
fonts available in the ChooseFont common dialog box.
FONTEST demonstrates the following flags in the ChooseFont
function: CF_INITOLOGFONTSTRUCT, CF_PRINTERFONTS,
CF_FIXEDPITCHONLY, CF_NOSIMULATIONS, CF_LIMITSIZE,
CF_SCREENFONTS, CF_WYSIWYG, CF_EFFECTS, CF_ANSIONLY, and
CF_FORCEFONTEXIST. The Font menu contains commands that
correspond directly to these flags. The Font menu also
contains the following commands:

>  The No Whirl command demonstrates font rotation and
spinning.

>  The Set LogFont command lets you modify the LOGFONT
structure before calling the ChooseFont function.

>  The Choose Font command calls the ChooseFont function
with the combination of selected flags and the current
LOGFONT structure.

FONTEST was built and tested under Microsoft(R)
Windows(TM) version 3.1.

KEYWORDS: ChooseFont; LOGFONT; NEWFRAME; SetBkMode;
CreateFontIndirect; GetCharWidth; GetTextFace;
GetTextMetrics; GetDeviceCaps; LOGPIXELSX; EXTDEVICEMODE;
CreateFont; DM_UPDATE; DM_MODIFY; DM_ORIENTATION;
DMORIENT_PORTRAIT; DMORIENT_LANDSCAPE; DM_COPY; HFONT;
SETABORTPROC; ABORTDOC;

TAGS:

=============================================================================

=============================================================================

****
**** The GDOSMEM sample can be downloaded from the
**** file 5-16.zip in library section number 5
****

GDOSMEM: Demonstrates How a Microsoft(R) Windows(TM)
Application and an MS-DOS(R) TSR Share Global Memory

GDOSMEM communicates with the GTSR program to demonstrate a 
technique for passing data between a Microsoft(R) 
Windows(TM) application and an MS-DOS(R) terminate-and-stay-
resident (TSR) program.

GDOSMEM uses the GlobalDosAlloc and DPMI functions to 
allocate memory that a Windows-based application and an MS-
DOS TSR can both access. GDOSMEM and TDOSMEM show how to 
"sync" up protected mode and Real mode memory access and 
demonstrate protected mode concepts. GTSR is the companion 
TSR for GDOSMEM that hooks INT 60h and waits for requests 
from GDOSMEM. The memory allocated using GlobalDosAlloc is 
local to the Windows virtual machine (VM). Thus, other VMs 
cannot access this memory location. GDOSMEM also 
illustrates in-line assembly in C.

Install the TSR GTSR before loading Windows and before 
running GDOSMEM. Click on Alloc! in the GDOSMEM main window 
to allocate a tiny buffer. The client area displays the 
location of this buffer and its contents (a WORD). Clicking 
on Request! causes GDOSMEM to request the TSR to increment 
the value in the buffer and updates the results on the 
display.

GDOSMEM was built and tested under Microsoft Windows 
version 3.1.

=============================================================================

=============================================================================

****
**** The GWAPI sample can be downloaded from the
**** file 5-17.zip in library section number 5
****

GWAPI: Demonstrates Recognition Without Messages in
Microsoft(R) Windows(TM) for Pen Computing

GWAPI demonstrates how to get recognition results from 
Microsoft(R) Windows(TM) for Pen Computing without 
messages. It also shows how to register a window class in a 
dynamic link library (DLL).

GWAPI traps WM_RCRESULT messages and illustrates how an 
application can receive recognition results through a 
single call without processing random Windows messages such 
as WM_RCRESULT.

To demonstrate GWAPI, a Windows for Pen Computing 
application must create a window with a class of GRWClass.

GWAPI was built and tested under Microsoft Windows version 
3.1.

=============================================================================

=============================================================================

****
**** The HANDLER sample can be downloaded from the
**** file 5-18.zip in library section number 5
****

HANDTEST: Demonstrates Interrupt Handlers in a Microsoft(R)
Windows(TM) DLL

HANDTEST displays the number of keyboard interrupts a 
Microsoft(R) Windows(TM) application receives. HANDTEST 
calls the HANDLER dynamic link library (DLL) which, in 
turn, installs the keyboard interrupt handler.

HANDTEST demonstrates how to interface with the interrupt 
service routine (ISR) in the HANDLER DLL. It also shows how 
to install an interrupt handler, how to post a message to a 
Windows application, and how to deinstall the handler.

Run HANDTEST and press any key to initiate the 
demonstration. The ISR installed from HANDLER reports the 
number of keyboard interrupts it receives to HANDTEST.

HANDTEST was built and tested under Microsoft Windows 
version 3.1.

=============================================================================

=============================================================================

****
**** The HELPEX sample can be downloaded from the
**** file 5-19.zip in library section number 5
****

HELPEX: Illustrates How to Access a Help File from an
Application

HELPEX shows how to bring up a help file from a 
Microsoft(R) Windows(TM) application. HELPEX starts WinHelp 
with your help file, pointing to the topic that you select. 
HELPEX uses the WinHelp function with the context ID value 
and the string name.

The HELPEX.HLP file illustrates a variety of Help features. 
It demonstrates the many ways to load and use a help file.

After starting HELPEX, choose the Index command from the 
Help menu. WinHelp starts with HELPEX.HLP loaded and 
pointing to the index section of the help file. Choose the 
Help Keyboard command from the HELPEX window. WinHelp 
displays the Keyboard topic. Choose the Help Using Help 
command from the HELPEX window. WinHelp now loads the 
WINHELP.HLP file to give you information on using the 
WinHelp program. Click on the green jumps to see what it 
does.

The HC30.EXE utility in the Microsoft Windows version 3.1 
Software Development Kit (SDK) creates help files for 
Windows version 3.0 and later. Compile the HELPEX.HPJ file 
with HC30.EXE. The resulting help (HLP) file works in 
Windows version 3.1. To load the help file, start WinHelp 
from the File Manager and choose File Open.

For more information on help files, see the Microsoft 
Windows version 3.1 SDK "Programming Tools" manual.

HELPEX was built and tested under Microsoft Windows version 
3.1.

=============================================================================

=============================================================================

****
**** The HELPHOOK sample can be downloaded from the
**** file 5-20.zip in library section number 5
****

HELPHOOK: Demonstrates a Function Key Hook from a Dialog
Box

HELPHOOK sets up the F1 key to access help from a dialog 
box. It also lets you bring up a dialog box from another 
dialog box.

HELPHOOK is easy to use: Choose a command from the Dialogs 
menu to display a dialog box. From this dialog box, you can 
choose a command button to bring up another dialog box or 
press F1 to access help.

HELPEX was built and tested under Microsoft(R) Windows(TM) 
version 3.1.

=============================================================================

=============================================================================

****
**** The HFORM sample can be downloaded from the
**** file 5-21.zip in library section number 5
****

HFORM: Demonstrates a Pen Application that Uses Different
Character Sets for Each Field

HFORM is a Microsoft(R) Windows(TM) for Pen Computing 
application that uses different character sets for each 
field. HFORM dynamically detects the presence of the pen 
extensions. If the pen extensions are available, the HFORM 
controls allow handwriting input; otherwise, they default 
to standard edit control behavior. HFORM requires 
PENWIN.DLL contained in either Microsoft Windows for Pen 
Computing or the Microsoft Windows Software Development Kit 
version 3.1.

HFORM demonstrates registering a pen-aware application, 
setting an application recognition hook, implementing 
delayed recognition, and detecting the presence of the pen 
extensions.

HFORM is a typical generic form application with several 
edit fields (name, address, city, and so on). HFORM 
registers itself as a pen-aware application so that its 
edit controls will be replaced by hedit controls.

HFORM was built with Windows version 3.1 and runs under 
Windows versions 3.0 and 3.1. In Windows version 3.0, the 
application provides edit controls but does not include 
boxed edit fields or picture fields.

When you enable the Delay Directions Recognition option, 
the inking field captures ink. When the option is disabled, 
the first tap in the field causes recognition. After that, 
the field behaves like a normal hedit control. An 
accelerator gesture (circle-D) brings up the sample dialog 
box.

For more information on HFORM, see the Microsoft Windows 
version 3.1 Software Development Kit (SDK) "Microsoft 
Windows for Pen Computing: Programmer's Reference" manual.

=============================================================================

=============================================================================

****
**** The HOOKS sample can be downloaded from the
**** file 5-22.zip in library section number 5
****

HOOKS: Uses SetWindowsHook to Install System Hooks

HOOKS uses the SetWindowsHook function to install the 
following system hooks: WH_CALLWNDPROC, WH_CBT, 
WH_GETMESSAGE, WH_JOURNALPLAYBACK, WH_JOURNALRECORD, 
WH_KEYBOARD, WH_MOUSE, WH_MSGFILTER, and WH_SYSMSGFILTER. 
The SetWindowsHook function allows message processing 
inside a dialog box or a message-box function.

When you select the System Hook command, HOOKS installs the 
system hook and displays information on the messages 
hooked.

For more information on HOOKS, see the "Microsoft(R) Windows(TM) Hooks"
technical article.

HOOKS was built and tested under Microsoft Windows version 3.1.

=============================================================================

=============================================================================

****
**** The INPUT sample can be downloaded from the
**** file 5-23.zip in library section number 5
****

INPUT: Illustrates How to Process Keyboard Input and Mouse Input

INPUT processes keyboard and mouse input. It demonstrates 
how to process the following input-related messages: 
WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_LBUTTONUP, 
WM_LBUTTONDBLCLK, WM_KEYDOWN, WM_KEYUP, WM_CHAR, WM_TIMER, 
WM_HSCROLL, and WM_VSCROLL. INPUT displays x and y 
coordinates when these messages are processed and when you 
click the scroll bars and move the scroll box.

INPUT was built and tested under Microsoft(R) Windows(TM) 
version 3.1.

=============================================================================

=============================================================================

****
**** The INSTVER sample can be downloaded from the
**** file 5-24.zip in library section number 5
****

INSTVER: Illustrates Installation Routines Using VER.DLL

INSTVER uses the VER.DLL installation routines. It 
demonstrates the use of versioning functions in a 
Microsoft(R) Windows(TM) dynamic link library (DLL) or an 
MS-DOS(R) application.

To use the routines, a Windows-based application links to 
INSTVER.DLL and an MS-DOS application links to INSTVER.OBJ. 
The Windows version of INSTVER.DLL has no user interface. 

INSTVER was built and tested under Microsoft Windows 
version 3.1.

=============================================================================

=============================================================================

****
**** The LISTHORZ sample can be downloaded from the
**** file 5-25.zip in library section number 5
****

LISTHORZ: Demonstrates Scrolling in List Boxes

LISTHORZ lets you add strings to, and delete strings from, 
a list box. The application window contains a text box, a 
list box, and Add and Delete buttons. To add a string to 
the list box, type the string into the text box and click 
Add. To delete a string from the list box, select the 
string and click Delete. If the number of strings in the 
list box exceeds the size of the list box, a vertical 
scroll bar appears. If a string is longer than the width of 
the list box, a horizontal scroll bar appears.

LISTHORZ also demonstrates horizontal and vertical list box 
scrolling. The LISTHSCR dynamic link library (DLL) can 
support any number of scrolling list boxes until it runs 
out of memory.

LISTHORZ was built and tested under Microsoft(R) 
Windows(TM) version 3.1.

=============================================================================

=============================================================================

****
**** The LOWPASS sample can be downloaded from the
**** file 5-26.zip in library section number 5
****

LOWPASS: Demonstrates Multimedia File I/O Services to Read
and Write RIFF Files

The LOWPASS sample application illustrates how to use 
multimedia file I/O services to read and write resource 
interchange file format (RIFF) files.

LOWPASS runs a simple low-pass filter over an 8-bit-per-
sample mono WAVE file. The program displays a dialog box in 
which you can enter input and output WAVE file names. When 
you click Run Filter, the program retrieves the file names 
from the dialog box, reads the waveform data from the input 
file, performs a simple low-pass filter by averaging 
adjacent samples, and writes the filtered waveform data to 
the output WAVE file. LOWPASS does not copy unknown chunks 
to the output file.

LOWPASS was built and tested under Microsoft(R) Windows(TM) 
version 3.1.

=============================================================================

=============================================================================

****
**** The MCITEST sample can be downloaded from the
**** file 5-27.zip in library section number 5
****

MCITEST: Records and Plays Script Files

MCITEST shows how to record and play script files with 
media control interface (MCI) functions and command 
strings. It demonstrates how you can use the MCI command 
string syntax described in the Microsoft(R) Windows(TM) 
version 3.1 Software Development Kit (SDK) "Multimedia 
Programmer's Reference" manual, Appendix A.

To use MCITEST, place the cursor in the large multiline 
text box in the main window and type:

open c:\mmdata\bells.wav type WaveAudio alias test

where c:\mmdata\bells.wav is the full path of the WAV file 
you want play. The MCI Output box displays "1" and the 
Error box indicates whether the function was successful. 
Now type:

play test

to play the sound. If it does not play, your sound card may 
be set up incorrectly. After you are done, type:

close test

to close the file.

The main window also contains a Notification section that 
displays information if you append the keyword "status" to 
a command. Choose Devices from the menu bar and move the 
Open MCI Devices dialog box so it does not overlap other 
windows. In the multiline text box, type:

open WaveAudio notify

WaveAudio is now listed in the Open MCI Devices dialog box, 
and an option button is selected under Notification, based 
on the return value of the function (the Successful button 
should be selected).

Now type:

close WaveAudio notify

The Devices dialog is now empty, and the Successful button 
is selected under Notification. The Superseded button is 
set if another wave file is started before the current file 
completes execution. The Aborted button is set if a 
function is canceled before completion.

You can use the File Save command to save your script and 
File Open to play the script another time with the Go and 
Step buttons. For more information, see the Microsoft 
Windows SDK "Multimedia Programmer's Reference" manual.

MCITEST was built and tested under Microsoft Windows 
version 3.1.

=============================================================================

=============================================================================

****
**** The MEMORY sample can be downloaded from the
**** file 5-28.zip in library section number 5
****

MEMORY: Breaks an Application into Code Segments

MEMORY breaks your application into different code segments 
to demonstrate the use of memory. It illustrates how to set 
up the SEGMENTS section of your module DEF file to mark 
different segments as PRELOAD, MOVEABLE, and LOADONCALL.

To view how MEMORY splits up code segments, note the 
segment names on the C compile line after the -NT switch 
and examine the MAP file to see the code segment names. For 
further demonstration, modify the make file for MEMORY. 
Change the name used after the -NT switch, rebuild, and 
view the new MAP file.

MEMORY was built and tested under Microsoft(R) Windows(TM) 
version 3.1.

=============================================================================

=============================================================================

****
**** The MENU sample can be downloaded from the
**** file 5-29.zip in library section number 5
****

MENU: Illustrates Sample Menus

The MENU sample application demonstrates:

>  How to use most of the menu functions 

>  How to use owner-draw menus

>  How to place a pop-up menu on the screen using 
TrackPopupMenu

>  How to create a check box in a bitmap with 
CreateCompatibleDC, CreateCompatibleBitmap, and StretchBlt

After starting MENU, choose any menu for a demonstration or 
click inside the window to display a pop-up menu.

MENU was built and tested under Microsoft(R) Windows(TM) 
version 3.1.

=============================================================================

=============================================================================

****
**** The MIDIMON sample can be downloaded from the
**** file 5-30.zip in library section number 5
****

MIDIMON: Monitors, Records, and Displays Incoming MIDI
Information

MIDIMON is a Microsoft(R) Windows(TM) multimedia 
application that monitors, records, and displays incoming 
musical instrument digital interface (MIDI) information.

MIDIMON uses a low-level callback function to get time-
stamped MIDI input. The callback function puts the incoming 
MIDI event information (source device, time stamp, and raw 
MIDI data) in a circular input buffer and notifies the 
application by posting a MM_MIDIINPUT message. When the 
application processes the MM_MIDIINPUT message, it removes 
the MIDI event from the input buffer and puts it in a 
display buffer. The information in the display buffer is 
converted to text and displayed in a scrollable window. The 
user may choose to send incoming MIDI data to the MIDI 
Mapper. The display buffer supports filtering; the Mapper 
does not.

MIDIMON requires a MIDI board hooked up to your computer. 
The application window provides the following menus:

>  File: The Exit command stops the program. The About 
command displays copyright information.

>  Setup: The Send to MIDI Mapper command directs notes to 
the MIDI Mapper. The Save Setup command saves the current 
location and size of the display window in the MIDIMON.INI 
file.

>  Filter: You can set commands on or off for different 
channels or events.

>  Start/Stop: Toggles recording on or off.

>  Clear: Resets the display buffer, recalibrates the 
scroll bars, and updates the display.

To start MIDIMON, press a note on your MIDI device. The 
client area displays:

Timestamp Status Data1 Data2 Chan Event

>  When you play a note on the MIDI device, MIDIMON assigns 
the note a time stamp in hexadecimal notation.

>  Status identifies the channel at the end of the number.

>  Data1 is the note or key number on a piano keyboard.

>  Data2 is either 40 for on or 00 for off.

>  Chan is the channel on which the note came in. Channel 
numbers start at zero and reflect the number of channels 
your MIDI device supports.

>  Event describes what happened, for example, Note On or 
Note Off. For a list of event names, see the Filter Events 
command. When you change the channel, you get two messages--
one for the previous channel and one for the new channel. 
The Event is Pitch Bend and the Status is Ex where x is the 
channel.

MIDIMON was built and tested under Microsoft Windows 
version 3.1.

=============================================================================

=============================================================================

****
**** The MULTIPAD sample can be downloaded from the
**** file 5-31.zip in library section number 5
****

MULTIPAD: Demonstrates an MDI Application with Edit
Controls

MULTIPAD demonstrates how to implement multiple document 
interface (MDI) windows, how to print files, and how to 
give edit controls their own memory (up to 64K).

MULTIPAD is basically the Notepad application converted 
into an MDI program. When you start MULTIPAD, it displays a 
default "untitled" MDI window. The Window menu commands 
demonstrate MDI concepts such as tiling and cascading 
windows, arranging icons, and closing all open documents. 
For information on editing commands, see the Notepad Help 
file.

MULTIPAD was built and tested under Microsoft(R) 
Windows(TM) version 3.1.

=============================================================================

=============================================================================

****
**** The MUSCROLL sample can be downloaded from the
**** file 5-32.zip in library section number 5
****

MUSTEST: Custom Control Sample for Implementing a Spin Box

MUSTEST is an extension to the Microsoft(R) Windows(TM) 
interface. MUSTEST calls the dynamic link library (DLL) 
MUSCROLL.DLL that contains interface functions for the 
Windows Software Development Kit (SDK) Dialog Editor.

MUSCROLL.DLL implements a miniature scrollbar that consists 
of only scroll arrows. Because MUSCROLL is much smaller 
than a standard scrollbar, it can be placed in an edit 
control to create a spin box (for examples, see Control 
Panel's Date/Time dialog box). When you click a scroll 
arrow, MUSCROLL sends scroll messages to its associate 
window. Initially, the associate window is the parent of 
the control and can do whatever it desires with the 
messages. MUSCROLL also provides a cut-and-paste spin box 
implementation.

For a complete list of the programming interface, messages, 
and functions, see the MUSCROLL.TXT file.

MUSTEST was built and tested under Microsoft Windows 
version 3.1.

=============================================================================

=============================================================================

****
**** The MYPAL sample can be downloaded from the
**** file 5-33.zip in library section number 5
****

MYPAL: Manipulates the System Palette and the Title Bar

MYPAL demonstrates how to display the current system 
palette, capture mouse input outside the application's main 
window, change the title bar, process the HOME, END, 
PAGEUP, and PAGEDOWN keys, and process the WM_GETMINMAXINFO 
message to control the size of the window.

When you start MYPAL, the application's main window 
displays all the colors on the system palette and the title 
bar specifies the number of colors displayed.

When you click the left mouse button on a color in the 
window, the title bar reflects the index number into the 
system palette and specifies the red-green-blue (RGB) 
values for that color. Boxes at either end of the title bar 
show the color selected.

When you click the right mouse button on a color in the 
Window, the title bar reflects the index number of colors 
on the system palette, the index of the selected color on 
the system palette, the number of colors on the palette 
(PalSize), and a RasterCaps setting of 0 or 1, depending on 
whether a palette is supported.

When you drag the mouse with the right button down, the 
title bar reflects the index number and RGB values for each 
color as the pointer moves across the window. Boxes at 
either end of the title bar show each color selected.

You can use MYPAL to find the RGB values of a color 
displayed on the screen and plug those values into your 
color selector.

MYPAL was built and tested under Microsoft(R) Windows(TM) 
version 3.1.

=============================================================================

=============================================================================

****
**** The OWNCOMBO sample can be downloaded from the
**** file 5-34.zip in library section number 5
****

OWNCOMBO: Illustrates Owner-Draw Controls

OWNCOMBO illustrates the implementation of owner-draw 
controls. It lets you create owner-draw list boxes, 
multiple-selection list boxes, combo boxes, and drop-down 
combo boxes. The Examples menu lists the types of owner-
draw controls available.

For more information, see the OWNCOMBO.TXT file.

OWNCOMBO was built and tested under Microsoft(R) 
Windows(TM) version 3.1.

=============================================================================

=============================================================================

****
**** The OWNERB sample can be downloaded from the
**** file 5-35.zip in library section number 5
****

OWNERB: lllustrates an Owner-Draw Button

OWNERB creates an owner-draw button. It demonstrates how to 
process the messages for an owner-draw button and how to 
add a 3-D look to a control. To use OWNERB, start the 
application and click the button in the main window with 
the mouse.

OWNERB was built and tested under Microsoft(R) Windows(TM) 
version 3.1.

=============================================================================

=============================================================================

****
**** The PALETTE sample can be downloaded from the
**** file 5-36.zip in library section number 5
****

PALETTE: Displays the Current Palette

PALETTE demonstrates simple palette operations by 
displaying the current palette in a grid. PALETTE queries 
the device for palette support and size. It creates, 
selects, and realizes a logical palette using the 
Microsoft(R) Windows(TM) CreatePalette, SelectPalette, and 
RealizePalette functions. The source code calculates the 
red-green-blue (RGB) value of a given pixel at the mouse 
position using palette indexes.

To display the RGB value for a palette entry, point to the 
entry and press the left mouse button. To display the RGB 
for any pixel on the screen, click inside the Palette 
window, and then drag the pointer outside the window.

PALETTE was built and tested under Microsoft Windows 
version 3.1.

=============================================================================

=============================================================================

****
**** The PENPAD sample can be downloaded from the
**** file 5-37.zip in library section number 5
****

PENPAD: Demonstrates the Sample Custom Recognizer

PENPAD demonstrates how to load custom recognizers, how to 
redisplay raw data using the DrawPenData function, and how 
to process the WM_GLOBALRCCHANGE message. PENPAD requires 
PENWIN.DLL contained in either Microsoft Windows for Pen 
Computing or the Microsoft Windows Software Development Kit 
version 3.1.

PENPAD is a skeleton program that can recognize pen input 
using three separate recognizers: a custom recognizer, a 
shape recognizer, and the system recognizer.

PENPAD accepts pen input through the input window and sends 
the input to the system default recognizer, the sample 
custom recognizer (SREC), or the shape recognizer 
(SHAPEREC), depending on the menu option you choose.

The output from the recognizers is displayed in the Raw 
Data and Information windows. The Raw Data window displays 
the actual ink the user wrote or drew. The Information 
window displays one of the following:

>  For the system recognizer, it displays the recognized 
ANSI text.

>  For the sample custom recognizer, it displays an arrow 
indicating the direction of the input stroke (up, down, 
left, or right).

>  For the shape recognizer, it displays a "clean" image of 
the shape. Recognized shapes may be rectangles, ellipses, 
or lines.

PENPAD was built and tested under Microsoft(R) Windows(TM) 
version 3.1 and requires Microsoft Windows for Pen 
Computing.

=============================================================================

=============================================================================

****
**** The PRNTFILE sample can be downloaded from the
**** file 5-38.zip in library section number 5
****

PRNTFILE: Illustrates Printing Functions

PRNTFILE demonstrates how to open a file using the 
GetFileOpen function from COMMDLG.DLL, how to save a file 
using the GetSaveFileName function from COMMDLG.DLL, how to 
select a printer using the PrintDlg function, and how to 
print the selected file using printer Escape functions. 
PRNTFILE has the same user interface as Notepad.

PRNTFILE was built and tested under Microsoft(R) 
Windows(TM) version 3.1.

=============================================================================

=============================================================================

****
**** The RAINBOW sample can be downloaded from the
**** file 5-39.zip in library section number 5
****

RAINBOW: Illustrates Custom Controls Used in the Dialog
Editor

RAINBOW is a dynamic link library (DLL) that illustrates 
custom controls used in the Dialog Editor. To use RAINBOW, 
you must call RAINBOW's functions from a Microsoft(R) 
Windows(TM) application.

RAINBOW was built and tested under Microsoft Windows 
version 3.1.

=============================================================================

=============================================================================

****
**** The REVERSE sample can be downloaded from the
**** file 5-40.zip in library section number 5
****

REVERSE: Demonstrates Multimedia File I/O Services and
Waveform Audio Functions

REVERSE is a Microsoft(R) Windows(TM) multimedia 
application that plays a WAVE waveform audio file in 
reverse. REVERSE illustrates how to use multimedia file I/O 
services to read data from a WAVE file and how to use low-
level waveform playback functions to play the file.

To use REVERSE, start the application and enter the name of 
a WAVE file in the text box. REVERSE uses multimedia file 
I/O services to read data from the specified file. If the 
file is a proper WAVE file, REVERSE reverses the order of 
the waveform samples in the file and plays the reversed 
waveform data. To play the waveform data forward, press 
RETURN after entering the file name.

REVERSE handles only a single waveform data block. If the 
requested WAVE file does not fit within a single block, it 
is not played. The size of a single data block depends on 
available system memory.

REVERSE was built and tested under Microsoft Windows 
version 3.1.

=============================================================================

=============================================================================

****
**** The ROTARY sample can be downloaded from the
**** file 5-41.zip in library section number 5
****

ROTARY: Simulates Turning a Knob

The ROTARY sample application simulates turning a custom 
knob control. To use ROTARY, click the mouse directly on 
or near the knob. With each click, the knob "turns" and
its value increases or decreases, as indicated in units
below the knob.

ROTARY was built and tested under Microsoft(R) Windows(TM) 
version 3.1.

=============================================================================

=============================================================================

****
**** The SHOWDIB sample can be downloaded from the
**** file 5-42.zip in library section number 5
****

SHOWDIB: Reads, Writes, and Prints a BMP and DIB Using RLE

SHOWDIB reads, writes, and prints bitmap (BMP) and device-
independent bitmap (DIB) files using run length encoding 
(RLE). SHOWDIB is another version of the DIBVIEW sample 
application and duplicates most of DIBVIEW's functionality. 
In addition, SHOWDIB shows you how to convert an OS/2(R) 
bitmap to a Microsoft(R) Windows(TM) DIB.

For more information, see the DIBVIEW abstract.

SHOWDIB was built and tested under Microsoft Windows 
version 3.1.

=============================================================================

=============================================================================

****
**** The SHOWGDI sample can be downloaded from the
**** file 5-43.zip in library section number 5
****

SHOWGDI: Provides an Interactive Way to Use GDI Functions

SHOWGDI helps you experiment with and analyze graphics 
device interface (GDI) behavior. It provides an interactive 
user interface for most GDI functions and displays the 
results on the screen. The SHOWGDI interface consists of a 
set of dialog boxes that let the user specify parameters to 
GDI functions.

Draw menu commands execute GDI graphics output functions 
using the current device context (DC) settings set in the 
General, Pen, Brush, and Text menus. The View menu controls 
the screen display. The screen shows a scaled copy of the 
actual drawing, which is drawn using a memory DC, and an 
optional grid of pixels with coordinates numbered in units 
corresponding to the memory DC's pixels. You can magnify 
the display to show the positions of individual pixels 
clearly.

SHOWGDI was built and tested under Microsoft(R) Windows(TM) 
version 3.1.

=============================================================================

=============================================================================

****
**** The SNOOP sample can be downloaded from the
**** file 5-44.zip in library section number 5
****

SNOOP: Traps Recognition Results and Displays Best Guess

SNOOP is a pen application similar to Spy that watches and 
traps recognition results before an application can see 
them. SNOOP displays the symbol graph, the best guess of 
symbols, and raw data. SNOOP requires PENWIN.DLL contained 
in either Microsoft Windows for Pen Computing or the 
Microsoft Windows Software Development Kit version 3.1.

SNOOP demonstrates setting a systemwide recognition hook, 
processing WM_HOOKRCRESULT messages, redrawing ink exactly 
as entered using the RedisplayPenData function, and 
converting symbols to ANSI characters.

SNOOP requires Microsoft(R) Windows(TM) for Pen Computing. 
The program receives a WM_HOOKRCRESULT message whenever a 
WM_RCRESULT message is sent to an application running on 
the system. SNOOP deciphers the symbol graph, converts it 
into an ANSI string, and displays it. SNOOP also displays 
the lpsyv array or the "best guess" string of characters 
and the raw data with the same "look" as when it was 
entered.

If pen extensions are not loaded in memory, Windows 
displays an error message when you start SNOOP.

SNOOP was built and tested under Microsoft Windows version 
3.1.

=============================================================================

=============================================================================

****
**** The SREC sample can be downloaded from the
**** file 5-45.zip in library section number 5
****

PENAPP: Illustrates a Custom Pen Recognizer

PENAPP is a skeleton program that contains the minimum 
functionality for a sample recognizer. A recognizer is a 
dynamic link library (DLL) loaded at run time by a pen-
aware application.  The PENAPP sample application uses the 
SREC recognizer. PENAPP requires PENWIN.DLL contained in 
either Microsoft Windows for Pen Computing or the Microsoft 
Windows Software Development Kit version 3.1.

PENAPP inputs a single stroke of data points and calculates 
the nearest compass direction of the line formed by the 
beginning and ending points of the stroke. PENAPP then 
fills out the symbol graph using the following special 
codes:

>  syvEast: right

>  syvSouth: down

>  syvWest: left

>  syvNorth: up

>  syvDot: point

PENAPP was built and tested under Microsoft(R) Windows(TM) 
version 3.1.

=============================================================================

=============================================================================

****
**** The SRVRDEMO sample can be downloaded from the
**** file 5-46.zip in library section number 5
****

SRVRDEMO: lllustrates an OLE Server Application

SRVRDEMO is a sample object linking and embedding (OLE) 
server application that works with the CLIDEMO sample 
client application to demonstrate the use of OLECLI.DLL and 
OLESRV.DLL.

To use SRVRDEMO, you must register it in the system 
registration database. (An OLE server usually registers 
itself during setup or initialization, but SRVRDEMO does 
not.) 

A registration file  called INI.REG exists with the SRVRDEMO sample
and can be merged with the registration database. From the Program
Manager File menu, and type the following command:

REGEDIT /S INI.REG

where INI.REG is the registration file. This command merges 
INI.REG with the registration database and allows you to 
run SRVRDEMO. 

For information on using CLIDEMO and SRVRDEMO, see the 
CLIDEMO abstract.

SRVRDEMO was built and tested under Microsoft(R) 
Windows(TM) version 3.1.

=============================================================================

=============================================================================

****
**** The TDOSMEM sample can be downloaded from the
**** file 5-47.zip in library section number 5
****

TDOSMEM: Passes Data between a Microsoft(R) Windows(TM)
Application and an MS-DOS(R) TSR

TDOSMEM communicates with the TTSR program to demonstrate a 
technique for passing data between a Microsoft(R) 
Windows(TM) application and an MS-DOS(R) terminate-and-stay-
resident (TSR) program. 

TDOSMEM calls the kernel functions AllocSelector, 
SetSelectorBase, and SetSelectorLimit and uses these 
functions to update a buffer in a global TSR program. 
Running multiple copies of TDOSMEM demonstrates how 
different instances of a Windows program can access a TSR 
program's private buffer directly.

Before you start Windows, run TTSR.EXE from the MS-DOS 
prompt to install the TSR program that TDOSMEM will call. 
After you start Windows, run the TDOSMEM program. The 
TDOSMEM main window displays the buffer address and buffer 
contents of the TSR program. Clicking on the Request menu 
causes TDOSMEM to increment a WORD value in the TSR 
program's private buffer and updates the results in the 
TDOSMEM main window.

TDOSMEM was built and tested under Microsoft Windows 
version 3.1.

=============================================================================

=============================================================================

****
**** The THSAMPLE sample can be downloaded from the
**** file 5-48.zip in library section number 5
****

THSAMPLE: Uses TOOLHELP.DLL to Display Heap Information

THSAMPLE illustrates how to walk or list the following
systemwide information: LocalHeap, GlobalHeap, FreeList, 
LRUList, ModuleList, TaskList, ClassList, and HeapInfo. It 
also lets you perform a read memory test, StackTrace test, 
GlobalEntryModule test, and memory management test.

The tool helper library (TOOLHELP.DLL) makes it easier for 
developers who work with the Microsoft(R) Windows(TM) 
version 3.1 operating system to obtain system information 
and control system activity. This dynamic link library 
streamlines the creation of Windows-hosted tools, 
specifically Windows-hosted debugging applications.

TOOLHELP.DLL is available to applications running with 
Windows versions 3.0 and later. To use TOOLHELP.DLL in an 
application, you must include the TOOLHELP.H header file in 
the application source files, link the application with 
TOOLHELP.LIB, and ensure that TOOLHELP.DLL is in the system 
path.

For more information, see the Microsoft Windows version 3.1 
Software Development Kit (SDK) "Programmer's Reference, 
Volume 1: Overview" manual.

THSAMPLE was built and tested under Microsoft Windows
version 3.1.

=============================================================================

=============================================================================

****
**** The TIMERS sample can be downloaded from the
**** file 5-49.zip in library section number 5
****

TIMERS: Creates, Modifies, and Terminates Application
Timers

TIMERS demonstrates how to create and terminate application 
timers and how to change the rate of an existing timer.

Start the TIMERS application and choose an option from the 
Timers menu to create a timer that either dispatches a 
WM_TIMER message to a window procedure or calls a callback 
timer procedure. You can set the timer to run at one of 
three speeds: 0.25, 1, or 5 seconds.

Depending on the menu option you selected, TIMERS displays 
either the number of WM_TIMER messages sent to the window 
procedure or the number of times the callback procedure was 
called and beeps with each increment. Both methods call 
TOOLHELP.DLL timer services to display the number of 
milliseconds since the start of the application and the 
start of the current virtual machine (VM). To stop the 
timer, choose Timer Stopped from the Timers menu.

TIMERS was built and tested under Microsoft(R) Windows(TM) 
version 3.1.

=============================================================================

=============================================================================

****
**** The TTY sample can be downloaded from the
**** file 5-50.zip in library section number 5
****

TTY: Demonstrates Basic Microsoft(R) Windows(TM)
Communication Functions

TTY demonstrates the Microsoft(R) Windows(TM) communication 
functions OpenComm, SetCommState, WriteComm, ReadComm, 
SetCommEventMask, GetCommEventMask, CloseComm, and the new 
Windows version 3.1 function EnableCommNotification.

TTY uses the WM_COMMNOTIFY message by either enabling the 
EV_RXFLAG event flag and the CN_EVENT notification, or by 
using CN_RECEIVE to receive trigger thresholds for 
detecting the characters received. The Windows version 3.1 
COMM.DRV posts the WM_COMMNOTIFY message to the associated 
windows when the necessary events occur. TTY performs 
simple character translation and implements a screen buffer 
for use as the I/O window.

Use the Settings menu to change the port, baud rate, data 
bits, parity, stop bits, and handshaking options (RTS/CTS, 
DTR/DSR, and XON/XOFF). After setting these communication 
options, use the Action menu to connect or disconnect the 
TTY program.

TTY was built and tested under Microsoft Windows version 
3.1.

=============================================================================

=============================================================================

****
**** The WMFDCODE sample can be downloaded from the
**** file 5-51.zip in library section number 5
****

WMFDCODE: Decodes Normal, Placeable, and CLP Metafiles

WMFDCODE decodes three types of metafiles: normal 
metafiles, "placeable" metafiles, and metafiles that are 
saved on the clipboard as CLP files. WMFDCODE enumerates 
and plays all or a specified range of records in a 
metafile.

Choose the File Open command from the WMFDCODE main window 
to read in a metafile. Select either BIRD.WMF or 
BALLON.CLP, which are provided as examples.

The View Headers command displays information on the 
metafile header, the METAFILEPICT data structure, and the 
placeable WMF header (if available). The View List command 
lists all of the records in the metafile. You can select 
and play any combination of records from the list to debug 
the contents of a metafile. The View Clear command erases 
the metafile that is currently displayed.

The Play Destination command lets you play each record to 
the screen or to a user-named metafile. The Play All 
command plays all metafile records to the selected 
destination. The Play Step command examines the contents of 
records and lets you play or skip each record. You may step 
through all records or enter a range of records in 
hexadecimal, decimal, or character format.

WMFDCODE was built and tested under Microsoft(R) 
Windows(TM) version 3.1.

=============================================================================

