Copyright: (c)1994 by Mark Gamber
Citation: (c)1994 by Mark Gamber


Contents
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

WHLISTBX is a Windows Help Add-On library providing a number of graphic controls, 256 bitmap support and macros for control manipulation, variable declaration and variable based jumps, baggage file extraction, messages and user input and more. This help file demonstrates the library's capability. Parts of the file, including Help Project file, RTF source (Winword 5 format), baggage files and bitmaps may be extracted at various places in this file. Note that by default all extracted files will be left in the current directory. Click on this EXTRACTED to change that default. Also not that any text preceeded by a " [image] " may be copied directly to the Windows Clipboard simply by clicking on the highlighted text itself.

 Documentation

 Listboxes

 Controls

 Macros

 About The Library


Leave Extracted Files On Exit

Delete Extracted Files On Exit


About WHLISTBX
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

About WHLISTBX.DLL

Why would you want to use this WinHelp extension library? So your help file can look cool, of course. Users are notorious for not reading documentation and every little bit helps. So why would you use this extension library instead of the MS Viewer? The main reason is not everyone has the MS Viewer. Everyone running any version of Windows has WinHelp, however, so this library can be used anywhere. Also, the MS Viewer is big. So is WinHelp, but not nearly as big as the Viewer and not nearly as "hidden". This library provides a lot of functionality within a very small area, making redistribution easier and not requiring the user to install all those cryptic Viewer files.

This library may be freely distributed but is not public domain. It may not be altered in any way without permission from the author.  In using the library or any parts thereof, the user assumes full responsibility for it's proper use and shall indemnify and hold harmless the author , software and all parts thereof from any damages incurred. In unable to accept this condition, the software must be destroyed immediately.

The author may be reached on the following services:

Compuserve:	 76450,2754

Note: Internet file transfers are not available.

Click Here to Copy This Help Project File

Click Here to Copy This Help Source File


Documentation
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Documentation

 Listboxes

 Controls

 Macros

 Free Stuff


Listbox Docs
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Listboxes

A listbox may be embedded in a Windows Help file, providing a "fast jump" capability by keeping the items added to the listbox visible at all times. The listbox color, font and items are set by the user through a baggage file which is also embedded in the Help file. A listbox may be embedded in the Help file by using the command:

 "ewx whlistbx.dll,whlistbx,bagfile.ext"

Listboxes jump to topics within the current help file by calling a Window Help internal "WinHelp" function, passing it the topic number to jump to based on the item double-clicked upon.

See Also: Controls, Macros


Baggage Docs
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Baggage Files

A Baggage File is used to control a listbox. The baggage file must be specified in the Help Project file in the [BAGGAGE] section in order to be embedded by the Help Compiler. Once a part of the help file itself, the listbox pulls information for initialization from the file on creation. For example:

[BAG]

bag1.bag	embeds the file "BAG1.BAG" into the help file for later retrieval.

Baggage files are created like INI files in that they have sections and Keys within the Sections. Keys and Sections work together to identify data. Baggage Files are divided into three sections. [INIT] determines listbox options such as color, font size, style and type, size and position. [ITEMS] and [TOPICS] work together to produce what the listbox displays and where it jumps in the help file when an item is selected from the listbox.

Click Here to Copy Listbox #1 Baggage File

Click Here to Copy Listbox #2 Baggage File

Click Here to Copy Listbox #3 Baggage File


Baggage [INIT] Docs
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Baggage [INIT] Section

The following variables are used in the [INIT] section for listbox control:

Xsize:	Determines the width of a listbox.

Ysize:	Determines the height of a listbox.

FGColor:	Determines the RGB foreground color of listbox text.

BGColor:	Determines the RGB background color of a listbox.

Items:	Number of item in the [ITEMS] section of the baggage file.

FontHeight:	Listbox text Font height.

FontWeight:	Listbox text Font weight.

FaceName:	Name of font to use in a listbox.

See Also: [ITEMS] and [TOPICS] Sections


[ITEMS] and [TOPICS] Docs
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Baggage [ITEMS] and [TOPICS] Sections

Listboxes need to know what to display and where to jump when an item is selected. This is provided by a baggage file through the [ITEMS] and [TOPICS] sections of the file.

[ITEMS] defines the text to display. The first item is always titled "List1" and items following are incremental. That is, List1, List2, List3...Listn. The text to the right of the list identifier is what is displayed, including spaces between the Equal Sign "=" and the text. For example:

[ITEMS]

List1=Text Flush to Left

List2=   Text In Three Spaces from List1

Now that the listbox knows what to display, it needs to know where to jump. This is provided by the [TOPICS] section of the baggage file. For each "List" item in the [ITEMS] section, a corresponding "Topic" in the [TOPICS] section tells the listbox to jump to a topic when the item is selected. The topic number must be defined in the [MAP] section of the Help Project file. For example:

[TOPICS]

Topic1=100

Topic2=101

See Also: [INIT] Section


Control Docs
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Controls

Four animated controls are provided by the library. While not controls in the sense that they receive user input, which they do not, they can be altered by Windows Help macro calls. The control types are:

 Bullets

 Arrows

 Pointers

 Modems

 Bitmaps

 AVI Video

Bullets, Arrows and Modems require one system timer each when visible. If the system runs out of timers, subsequent controls of these types will not cycle regardless of their settings. There are approximately 31 timers available at any time under Windows 3.1, so keep the total number of these controls below that number. Preferably with some room to spare.

See Also: Listboxes, Macros


Bullet Docs
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Bullets

A Bullet is a small circle with a back border and colored interior. It may or may not be initially cycled and color and cycling may be changing during runtime. Each bullet requires a timer to cycle. If the system runs out of timers, subsequent bullets will not cycle ergardless of the setting. Because of this, keep visible bullets relatively low in numbers.

To add a bullet to a help file, add the following text:

 {ewx whlistbx.dll,BULLET,Name:CRGB}

ewx:	ewl=left aligned, ewc=center aligned, ewr=right aligned

whlistbx.dll:	Constant, the filename of the DLL.

BULLET:	Constant, specified BULLET type.

Name:	Unique name to identify bullet when changing color or cycling.

C:	A=No cycling, F=Forward cycling, B=Backward cycling

RGB:	Color bits to Red, Green and Blue. 1=On, 0=Off

See Also: Arrows, Pointers, Modem


Arrow Docs
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Arrows

An Arrow is a small arrow with a stem, a back border and colored interior. It may or may not be initially cycled and color and cycling may be changing during runtime. Each arrow requires a timer to cycle. If the system runs out of timers, subsequent arrows will not cycle regardless of the setting. Because of this, keep visible arrows relatively low in numbers.

To add an arrow to a help file, add the following text:

 {ewx whlistbx.dll,ARROW,Name:CRGB}

ewx:	ewl=left aligned, ewc=center aligned, ewr=right aligned

whlistbx.dll:	Constant, the filename of the DLL.

ARROW:	Constant, specified ARROW type.

Name:	Unique name to identify bullet when changing color or cycling.

C:	A=No cycling, F=Forward cycling, B=Backward cycling

RGB:	Color bits to Red, Green and Blue. 1=On, 0=Off

See Also: Bullets, Pointers, Modem


Pointer Docs
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Pointers

A Pointer is a small arrow with a back border and colored interior, no stem. It does not cycle colors, but colors and may be changing during runtime. The advantage of a pointer is that the cycling controls require a timer per control, which may become exhausted if too many timers are already in use. A Pointer doesn't use a timer, so it always works. To add a pointer to a help file, add the following text:

 {ewx whlistbx.dll,POINTER,Name:RGB}

ewx:	ewl=left aligned, ewc=center aligned, ewr=right aligned

whlistbx.dll:	Constant, the filename of the DLL.

POINTER:	Constant, specified POINTER type.

Name:	Unique name to identify bullet when changing color or cycling.

RGB:	Color bits to Red, Green and Blue. 1=On, 0=Off

See Also: Bullets, Arrows, Modem


Modem Docs
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Modems

A Modem is a small black rectangle with 5 green "lights", two of which blink back and forth. Each modem requires a system timer to blink. If the system runs out of timers, subsequent modems will not blink. Because of this, keep visible modems relatively low in number.

To add a pointer to a help file, add the following text:

 {ewx whlistbx.dll,MODEM,0}

ewx:	ewl=left aligned, ewc=center aligned, ewr=right aligned

whlistbx.dll:	Constant, the filename of the DLL.

MODEM:	Constant, specified MODEM type.

0:	Zero placeholder.

See Also: Bullets, Arrows, Pointers


Bitmap Docs
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Bitmaps

A bitmap control may be any size and is used to display a 2, 16 or 256 color bitmap in a WinHelp window. The control size may be any size as specified in the parameter list below. The bitmap is always completely drawn, but will not draw out of bounds of the control if smaller than the bitmap itself. Also, as noted below, if the filename of the bitmap is preceeded by a "<", a baggage file is used instead of a physical disk file. The bitmap specified remains a baggage file at all times and is not extracted by the control.

To add a bitmap to a help file, add the following text:

 {ewx whlistbx.dll,WH256,Name:Xsize:Ysize:Filename}

ewx:	ewl=left aligned, ewc=center aligned, ewr=right aligned

whlistbx.dll:	Constant, the filename of the DLL.

WH256:	Constant, specified WH256 type.

Name:	Unique Name identifier

Xsize:	Horizontal size of window.

Ysize:	Vertical size of window.

Filename:	Bitmap filename. Preceed with "<" to designate a baggage file.


Macro Docs
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Macros

Numerous macros are available from the DLL to change control values, position and size secondary windows, declare user set variables and jump conditionally based on a user variable and comparison value.

Macros are divided into four catagories:

 User Defined Variable Macros

 Control Macros

 Misc. Macros

See Also: Listboxes, Controls


User-Defined Variables
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 User Defined Variable Macros

Macro: DeclareVar( "Variable_Name", "Value" )

Short: DEV

Function: Sets or resets a user-defined variable during runtime. Value may be any number from 0 to 4294967295. MacroIfValue() and JumpIfValue() macros use these variables for conditional topic jumps.

Example:  DEV( "Var1", "1" )

Macro: MacroIfValue( "Variable_Name", "Value", "HelpFile", "Macro" )

Short: MIV

Function: Executes a macro within a help file if the variable specified by Variable_Name is the same as that specified by Value. If unequal, nothing happens.

Example:  MIV("Var1","1","myhelp.hlp","ExecProgram('calc.exe')")

Macro:JumpIfValue( "Variable_Name", "Value", "HelpFile", "Topic" )

Short: JIV

Function: Jumps to a topic within a help file if the value specified by Variable_Name is the same as that specified by Value. If unequal, nothing happens.

Example:  JIV( "Var1","1","myhelp.hlp","100")

Macro:PopupIfValue( "Variable_Name", "Value", "HelpFile", "Topic" )

Short: PIV

Function: Jumps to a topic within a help file if the value specified by Variable_Name is the same as that specified by Value. The topic is displayed as a popup window. If unequal, nothing happens.

Example:  PIV( "Var1","1","myhelp.hlp","100")

Macro:SetProfile( "Filename.ini", "Section", "Item", "Value" )

Short: SPF

Function: Sets a value in an INI file which may be tested by GetProfile. The value may be either on (non-zero) or off (zero).

Example:  SPF( "whdemo.ini","Section","Setting1","1")

Macro:GetProfile( "Filename.ini", "Section", "item" )

Short: GPF (no, it's not an omen)

Function: Returns the value of an INI file setting as either zero or non-zero. When this function is defined in the Help Project file as RegisterRoutine("whlistbx.dll","GPF","i=SSS"), the return value may be used in a conditional macro such as IfThenElse().

Example:  IfThenElse(GPF("whdemo.ini","Section","Setting1"),"MES(`WHDemo',`INI is non-zero')","MES(`WHDemo',`INI is zero')")

Macro:SetVarWithProfile( "Filename.ini", "Section", "item", "Variable Name" )

Short: SVWP

Function: GetProfile() is tested for either zero or non-zero values using IfThen(Else) WinHelp macros. To base a conditional on an actual profile value, you first need to transfer the profile value from the INI file to a variable, then test the variable using MacroIfValue, JumpIfValue or PopupIfValue. This function provides that transfer. If the variable name used in the function does not exist, it is created by this function.

See Also: Control Macros, Window Macros, Misc. Macros


Control Macros
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Control Macros

Macro: SetRightPointerColor( "Pointer_Name","RGB" )

Short: SRPC

Function: Applies a new color specified by the RGB bits to the Pointer control specified by the Pointer_Name string.

Example:  SRPC( "Pointer1","100" )

Macro: SetBulletColor( "Bullet_Name", "CRGB" )

Short: SBC

Function: Applies a new color and / or cycle direction as specified by the CRGB bits to a bullet specified by Bullet_Name.

Example:  SBC( "Bullet1", "F100" )

Macro: SetArrowColor( "Arrow_Name", "CRGB" )

Short: SAC

Function: Applies a new color and / or cycle direction as specified by the CRGB bits to an arrow specified by Arrow_Name.

Example:  SAC( "Arrow1", "F100" )

Macro: PlayAviWindow( "WindowName", "Loops" )

Short: PAW

Function: Starts playback of an AVI control, the control identified by WindowName as specified when the control was created via the ewx command. Loops designates how many times the AVI video should be looped, zero indicating indefinate play.

Example:  PAW( "avi1", "100" )

Macro: StopAviWindow( "WindowName" )

Short: SAW

Function: Stops playback of an AVI control if currently running. If not running, the macro is ignored. The control is specified by WindowName and the name given by the ewx command.

Example:  SAW( "avi1" )

See Also: User Defined Variable Macros, Window Macros, Misc. Macros


Window Macros
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Window Macros

See Also: User Defined Variable Macros, Control Macros, Misc. Macros


Misc Macros
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Misc Macros

Macro: CopyBaggage( "From_Baggage", "To_Disk" )

Short: CBF

Function: Extracts a file included in the WinHelp as baggage to a physical disk file. The baggage file may be extracted to a difference file name.

Example:  CBF( "groovy.wa$", "groovy.wav" )

Note: If defined in the Help Project file as RegisterRoutine( "whlistbx.dll","CBF","i=SS"), the return value may be tested for success or failure. The following example shows how to set up a test on the function and display a message based on the outcome.

Example:  IfThenElse(CBF("from","to"),"MES(`Ok!',`Copy was OK')","MES(`No Dice',`Copy was bad')")

Macro: Message( "Title", "Message Text" )

Short: MES

Function: Displays a message box  using the given title and message box text passed by the macro call.

Example:  MES( "Title", "Example Messagebox" )

Macro: ASK( "Title", "Message Text" )

Short: ASK

Function: Displays a message box  using the given title and message box text passed by the macro call. "Yes" and "No" buttons are displayed with a "question mark" icon. When defined in the Help Project file as RegisterRoutine( "whlistbx.dll", "ASK", "i=SS" ), the return value indicates which button was pressed allowing for a conditional macro call.

Example:  IfThen( ASK("WHDemo","Run Notepad?"),"ExecProgram(`notepad.exe',0)")

Macro: DeleteOnExit( "Filename.ini" )

Short: DOE

Function: DeleteOnExit() passes a filename to the library which is refered to when the help file is changed or WinHelp is closed. The filename passed must be an INI type file with a "[FILES]" section consisting of a list of files to delete, such as "File1=groovy.wav (CR) File2=question.avi" and so on. The INI file cannot be extracted from baggage during the delete operation as the WinHelp file system does not exist at that point, so any INI files included as baggage should be extracted at an earlier point, such as startup in the Help Project file. This macro may be called at any time, including the Help Project file and the filename passed is held through the session unless changed through other macro calls.

Example:  DOE( "delete.ini" )

Note: The function used to pull data from an INI file, GetPrivateProfileString(), will look in the Windows directory unless otherwise specified. If you extract the INI file to the Windows directory, you don't need to modify the filename. If you do not extract it to the Windows directory, you should place the characters ".\\" before the filename to specify the current directory. This second method is far more flexible and more likely to work correctly. Also, do not include this DLL in the list as it cannot delete itself if Share is installed and will cause a GPF if it is not.

Click Here to Extract DELETE.INI

Macro: DeleteFileList( "Filename.ini" )

Short: DFL

Function: DeleteFileList() deletes a list of files contained in a INI file as described in DeleteOnExit(). This function does accept baggage files which are specified by placing a '<' in front of the filename. All other limitations and functionality is the same as described by DeleteOnExit().

Example:  DeleteFileList( "delete.ini" )

Macro: PlayWaveFile( "Title, "Filename", "Loops" )

Short: PWF

Function: Plays a wave specified by Filename. If the filename is preceeded by a "<", the wave file is extracted from the help file (baggage) before played. Playback is synchronous so the file is not deleted. Title specifies a unique name for the wave playback which is referenced later by StopWaveFile(). Loops indicates the number of times the wave is to be repeated, zero indicating indefinite play. By default, any waves playing at the time of a topic jump are stopped and the wave file closed. This action may be overridden using the StopWaveFile() macro. Note that a hidden window is created by calling this macro. When WinHelp is closed, any wave control windows are also closed, ending playback of the waves.

Example:  PWF( "wave1", "groovy.wav", "10" )

Macro: StopWaveFile( "Title", "Defer" )

Short: SWF

Function: Stops a wave specified by Title as named by calling PlayWaveFile(). If Defer is "0", the wave is stopped immediately. If set to anything else, the wave is merely marked to be stopped upon a topic change as indicated by a internal message from WinHelp. The default set by calling PlayWaveFile() is to play until the number of loops is reached or the topic changes.

Example:  SWF( "groovy.wav", "1" )

Macro: HasWaveAudio( )

Short: HWAV

Function: PWhen defined in the Help Project file as RegisterRoutine( "whlistbx.dll", "HWAV", "i=v" ), this macro returns whether wave audio is supported or not. The return may be tested with an IfThen(Else) WinHelp macro call.

Example:  IfThen( HWAV(),"PWF(`tada.wav')")

Macro: HasAVIVideo( )

Short: HWAV

Function: When defined in the Help Project file as RegisterRoutine( "whlistbx.dll", "HAVI", "i=v" ), this macro returns whether AVI video is supported or not. The return may be tested with an IfThen(Else) WinHelp macro call.

Example:  IfThen( HAVI(),"PWF(`avi1',`100')")

Macro: CopyText( "Text to Copy to Clipboard" )

Short: CTX

Function: Any text passed through this macro gets copied to the Windows Clipboard. When defined as RegisterRoutine( "whlistbx.dll", "CTX", "i=S" ), the return value may be tested for success using the IfThen(Else) macro.

Example:  IfThen( CTX( "This text is copied" ), "MES( 'WHDemo','Text in Clipboard')")

See Also: User Defined Variable Macros, Control Macros, Window Macros


Free Stuff
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Free Stuff

Floating Popup Menus:

Floating menus are available by clicking the Right Mouse over a scrolling section of a WinHelp window or through a macro call. To add a floating menu, you need to define the menu via the [CONFIG] section of the Help Project file. For example:

[CONFIG]

   AppendItem("mnu_floating","F1","Jump Here","JumpContext(`whdemo.hlp',`100')")

   AppendItem("mnu_floating","F2","About this","About()")

And that's all there is to it! Now the menu is available from the right mouse button. You can also call undocumented [image] FloatingMenu() to generate the menu via a macro call.  ResetMenu() restores the original WinHelp menu system. Both must be defined in the Help Project file as having no parameters ("v").


AVI Video Docs
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 AVI Video

AVI Video is supported through a combination of a control and macro calls to start and stop playback. Each AVI window requires a unique name so a macro knows which AVI window to operate on. If a baggage file is specified, it is extracted from the help file when the AVI control is created. The control is created before any macros are allowed to run, so topic jump macros work with the control. In addition, since AVI video playback is asynchronous (doesn't hold up operation), the AVI video is not deleted after playback and the AVI channel(s) used for playback are closed automatically if left open when the control is destroyed.

To add AVI Video to a help file, add the following text:

 {ewx whlistbx.dll,WHAVI,Name:Filename:Xsize:Ysize}

ewx:	ewl=left aligned, ewc=center aligned, ewr=right aligned

whlistbx.dll:	Constant, the filename of the DLL.

WHAVI:	Constant, specifies WHAVI type.

Name:	Unique Name identifier

Filename:	AVI filename. Preceed with "<" to designate a baggage file.

Xsize:	Horizontal size of window.

Ysize:	Vertical size of window.

ee Also: Control Macros


Listbox Examples
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Listbox Examples

 Listbox #1

 Listbox #2

 Listbox #3


Sample Listbox #1

Double-Click an Item


Sample Listbox #2

Double-Click an Item


Sample Listbox #3

Double-Click an Item


Control Samples
Windows Help Extension Library

Version 2.0  2/6/94 by Mark Gamber

 Control Examples

 Bullets

 Arrows

 Modem

 Pointers

 Bitmaps

 AVI Video


Bullet Example

"All On" begins rotation on all bullets, "All Off" stops rotation on all bullets. Click on a bullet to the left to rotate only that bullet, stopping rotation of the rest.

 "ewl whlistbx.dll,BULLET,BLT1:F111"

 "ewl whlistbx.dll,BULLET,BLT2:B100"

 "ewl whlistbx.dll,BULLET,BLT3:F010"

 "ewl whlistbx.dll,BULLET,BLT4:B001"

 All On	 All Off


Arrow Example

"All On" begins rotation of all arrows, "All Off" stops rotation of all arrows. Click on an arrow to the left to rotate only that arrow, stopping rotation on all the rest.

 "ewl whlistbx.dll,ARROW,F111"

 "ewl whlistbx.dll,RARROW,B100"

 "ewl whlistbx.dll,ARROW,F010"

 "ewl whlistbx.dll,RARROW,B001"

 All On	 All Off


Modem Example

 "ewl whlistbx.dll,MODEM,0"

Click Here to Copy Modem Bitmaps


Pointer Example

The pointers below comprise two sets of four. Only one of each set may be selected at any time. Clicking on another pointer within the same set "enables" that pointer and "disables" the previously active pointer.

 "ewl whlistbx.dll,POINTER,PEX1:001"

 "ewl whlistbx.dll,POINTER,PEX2:001"

 "ewl whlistbx.dll,POINTER,PEX3:001"

 "ewl whlistbx.dll,POINTER,PEX4:001"

 "ewl whlistbx.dll,POINTER,PEX5:001"

 "ewl whlistbx.dll,POINTER,PEX6:001"

 "ewl whlistbx.dll,POINTER,PEX7:001"

 "ewl whlistbx.dll,POINTER,PEX8:001"


Bitmaps Example

Click Here to Copy This Bitmap

256 color bitmaps (and 16 color) are supported by this "control". The source bitmaps may come from a physical BMP file or if preceeded by a "<", from a baggage file.

"ewc WHLISTBX.DLL,WH256,BMP1:240:252:<bmp256.bmp"


Macro Examples

Demonstrate setting variables and jumping on variable test.

Set a variable using the functions below:

Set Variable to 1

Set Variable to 2

Set Variable to 3

Test  variable setting using these functions:

Test Variable Setting  (Outcome based on setting made from macros above)

Popup Variable Test  (Outcome based on setting made from macros above)

Set Profile Value using the functions below:

Disable Profile Setting

Enable Profile Setting

Set Profile Value

Test Profile Value using these functions:

Test Profile Setting  (Outcome based on setting made from macros above)

Test Profile Value  (Outcome based on setting VALUE (0, 1 or 2 ) made from macros above)

ASK User Input Macro

ASK Macro Test

Start Wave Playback	Stop Wave Playback


Popup #1


Popup #2


Popup #3


AVI

AVI Video Example

Demonstrate AVI video playback in a WHAVI Control

Click Here to play AVI file

Click Here to loop AVI file 5 times

Click Here to stop AVI file