It's All in the Setup
When I submitted the topic for this presentation, I had just finished working on several ToolBook installations. You might say that I had "setup" on the brain. I don't know if you're like me, but doing the setup components has never been my favorite job. It's a necessary evil and, as the title of my talk indicates, the setup for your program is extremely important. Granted, a slick setup won't redeem an otherwise lame application, but a poor setup can bring a brilliant application to its knees.
What We'll Cover Today
A major complexity that faced me in preparing for today's talk: which version(s) of ToolBook should we deal with? I've done a great deal of work using the Multimedia ToolBook 4.0 version, along with Instructor II (a.k.a. ToolBook 5) and have just recently begun working with Assistant. Since the setup manager used in 3, 4, and 5 are very similar, I'll present an in depth example from ToolBook 5. This will be followed by a more limited presentation of the AutoPackager from Assistant. I consider today's presentation as a beginning. I will be putting copies of these materials on my web site and hope to add more examples specifically addressing setup issues and strategies as time permits. Several people from the ToolBook listserv were kind enough to send me information related to using alternative products (e.g., InstallShield Express). I considered trying to include these here, but decided that the hour wouldn't be long enough to do justice to these other topics. I will try to include them on my web site. I also realize that I, too, have a great deal to learn in this area. Please consider my remarks as one person's struggle in the wilderness and not as the definitive answer to all questions on setup procedures.
Why Should Installing an Application Be So Difficult?
I believe the answer lies in one word: variety.
Variety of Application Types and Requirements for Use
At one end of the spectrum you have applications consisting of single books that use no external files, interact with no other programs, and store no data. At the other end, you have applications made up of multiple ToolBook books, calling up numerous sound, image, and video files and needing to track the behaviors of multiple users (e.g., a kiosk that stores user attitudes and tracks selections made).
Variety of Hardware Configurations
Each developer must be able to state the minimum/recommended hardware requirements to adequately run his/her application, but there are still many possible variations out there, in terms of the way people will want to install the software. One problem that I have seen: how many cd-rom drives will the end-user have? A setup strategy that assumes the end-user has only one cd-rom drive will work for the great majority of users, but it will cause some users real problems.
Basic Setup Program Functions
What should a good setup do? In its simplest form, the setup program should:
As you might guess, it is very hard to generalize about setup procedures. Even my first statement (Place necessary files on the end-user's computer.) is intentionally vague. You might not be installing ANY files to the computer in question; or, you might be installing every file used in your application. The setup program should allow the user some reasonable choice over components to install to the computer and where to place them (drive:directory). The setup program must verify that adequate space exists to install the selected components and notify the user BEFORE installation begins if there will be problems. And when the application uses files not installed on the computer, the setup program may need to write out an ini file that contains the location of the files.
What sorts of "startup mechanisms" do we generally provide to the user? Typically, we create a program group and icon (Win 3.x) or an entry in the Start menu (Win 95/NT) that allows the user to easily launch the application.
Additional Setup Program Functions
If your applications are like mine, they include multimedia files. So, we very quickly face additional concerns in helping the user get our applications running properly. Will our users have all of the necessary software/hardware installed to use the application? Are we targeting both Windows 3.x and Windows 95/NT systems? How "aggressive" should the setup program be in helping the user determine the status of their system "up front?" Should we rely on a readme file to guide the user through resolving issues related to installing video codecs, for example? Do we include all necessary additional software on the cd-rom, or expect the user to obtain it elsewhere?
Case Study: Setup Program for the Mammography / Breast Self-Examination CD
Background
I became involved in this project near its completion. My task was to "clean it up" a bit, test it, create a setup program, prepare artwork for the cd-rom and do several recordable cd-rom copies that could be used for field testing prior to having "real" cd-roms pressed. This is not a commercial product. When completed, it will be distributed free state-wide to a number of health-care providers. It was funded through grants from the National Cancer Institute. The P.I. on the project is Dr. Janet Reis. As an aside: the cd-rom actually consists of two separate, but related ToolBook applications, done a couple of years apart. To avoid any possible problems, I upgraded both applications to Instructor II format. The Breast Self-Examination lesson was done first and used video in AVI format. The Mammography lesson, done more recently, contained video done in QuickTime format. To simplify operating requirements for the cd-rom, I recompressed the QuickTime clips to convert them to AVI.
Intended Users
The intended user population in this case is not the same group who will be installing the software. The users will be middle-aged women, many of whom will have little or no experience with computers. While we can hope that the people setting up the program will have more computer experience, we cannot be certain that they will be advanced computer users or that they will have extensive skills in troubleshooting computer-related problems.
Deciding How We Want the Setup Program to Work
Before you can design your setup, you have to think through the alternatives you wish to provide the person installing the software. Of course, the application itself should have been designed from the beginning with certain hardware requirements in mind. For example, the decision was made in this case to NOT support the use of 256-color systems (we require thousands of colors). Here's a portion of the readme.txt file that is on the cd-rom:
Recommended Machine Requirements
The total size of all files on the cd-rom is 487 MB. The best performance would be obtained if all files were installed to the hard drive. It was felt, however, that most facilities would not have adequate hard drive space available to house all of the files. Testing showed that given the hardware specified above, the applications would run adequately with the media files left on the CD. We decided on two installation options:
Note: I also set things up in such a way that the program could be run from the CD with no prior installation, for demonstration purposes. I also made it possible for advanced users to copy all files manually to the hard drive.
Special Requirements
The program was designed to work with either a touch screen or a mouse. The only difference between the two relates to the appearance of the cursor. When a touch screen is being used, the cursor is set to none; with the mouse, the cursor is left in its default state. We need a way for the user to indicate which input device will be used. This information must be stored permanently on the computer. It will be read by the applications and used to dynamically set the appearance of the cursor.
One of the two applications on the CD asks users a series of questions. The developers have an interest in collecting this data, but it is not certain that all facilities using the program will wish to collect the data. It was decided to provide the option of enabling or disabling data collection. Again, this choice is made when the software is installed and is stored permanently on the computer.
In conjunction with saving data, it was decided to give the installer some control over the location of the data files. We provide a default location (same as the installation directory), but we give the installer the option of selecting/creating a different directory . The procedure works the same way even if the installer has elected to run from CD.
Finally, our applications require the computer to play wav files and to display Video for Windows files. We decided to build in a test of the user's system, as part of the setup mechanism.
Deciding How to Implement Our Setup Requirements
As the preceding description indicates, we wanted to be able to give the user some choices, ask them specific questions, and store their responses as part of the setup procedure. At the time we were working on this project, we were limited to using the Setup Manager that comes with Instructor.
The Setup Manager uses a common strategy for providing end-users with installation choices: program components. This approach works well enough if you just need to present the user with decisions related to which files to install to the hard drive. There are ways to manually modify the setup file to go beyond this somewhat, but documentation is a bit sketchy on these points.
Since we needed to ask additional questions, I decided to take another approach:
I use ToolBook itself to design a "pre-setup" procedure. I get the information I need first and have ToolBook write it to an appropriate ini file. The user chooses the type of installation desired and the ToolBook file runs the appropriate version of setup.exe, created using Setup Manager. This all works pretty well, but is not absolutely perfect -- which we'll discuss later.
We will now go through both halves of this process: (1) the ToolBook-based setup book and (2) the setup files created using Setup Manager.
1. Detailed Examination of the ToolBook-based setup book
The user is told to run d:\setup.exe (where d = the drive letter of the cd-rom drive). Setup.exe is actually a ToolBook Instructor II file, saved as an .exe file. All of the run-time files needed are located in the root of the cd-rom. (Note: many of the run-time files can be set to hidden, to reduce visible clutter; of course, this doesn't really work if the Win 95 user elects to view all files.) The opening screen of the book is shown in Figure 1. This screen has artwork from the two applications on the cd, along with a number of buttons. When the setup book is first open, a message prompts the user to begin by clicking the Test Media button to determine if the computer system is properly configured for playing sounds and video clips in the lessons. The user could also, at this point, click the Help button (see Figure 2), the Credits button (see Figure 3), or the Quit button.

Figure 1. Opening Screen When User Runs Setup.exe from the CD-ROM.

Figure 2. Help Screen.

Figure 3. Credits Screen.
Testing the Computer System for Multimedia Capabilities
The two ToolBook applications require the computer to playback audio files in WAV format and video files in Video for Windows AVI format. (Note: the compression codec used for this cd was cinepak, which is built into the Video for Windows for both Win 3.x and Windows 95. Other codecs might require additional software installation.) When the user clicks the Test Media button, a checkMedia handler is called (see Appendix A for all scripts in the setup book). The purpose of this script is to try to open a test AVI file and then open and play a test WAV file. The checkMedia handler detects if either or both of these attempts resulted in an error. Figure 4 shows the feedback provided when the tests are both successful. Appropriate messages are displayed if either or both tests fail, directing the user to refer to the readme.txt file for sound problems and to click the Video for Windows button to install drivers for Win 3.x systems.

Figure 4. Successful Test for Media Playback.
Once the media test has been completed, the other buttons are enabled and can be clicked by the user (Figure 5). The Video for Windows installation that can be performed by clicking the button is appropriate only for Win 3.x users. Windows 95/NT users can still click the button, but they will be shown the message displayed in Figure 6, indicating that they should refer to the readme.txt file. Note: I could have checked for the operating system and forced the Video for Windows button to remain disabled for Windows 95/NT users; however, I decided that it might be more effective to leave it enabled, but provide appropriate feedback to explain what these users should do. The readme.txt file includes directions for reinstalling Video for Windows for Windows 95/NT systems.

Figure 5. Opening Screen After Media Test has been Performed.

Figure 6. Feedback if Win 95/NT users click the Video for Windows Button.
Selecting Installation Option: Typical or Run from CD
When the user clicks either the Typical or Run from CD Installation option, we begin by opening a modal dialog viewer to obtain information that the applications will later read. If the user enables data collection and then clicks the Next button, the screen displayed in Figure 8 appears. (If the user disables data location and clicks the Next button, the program branches immediately to the Summary screen displayed in Figure 11, but shows no entry for data location.) The screen displayed in Figure 8 allows the user to either accept the default location for storing data files or to change that location. If the user accepts the default location, the program branches to the screen displayed in Figure 11. If the user clicks the Change Location button, the program branches to the screen displayed in Figure 9. This screen lets the user change the drive and directory. If the directory the user wishes to use for data collection doesn't already exist, the user can insert a directory by clicking the Insert Directory button (Figure 10)
When the user has completed all of the options, a summary screen is displayed. If the user cancels at this point, the only change made to the system would be any data storage directory the user may have inserted. To begin the installation process, the user must click the Proceed button. (See Appendix A for these scripts.) The Proceed button calls a writeIni handler (in the script of page 2, which is the main option page displayed at all times in the mainwindow) that takes all of the various option choices made by the user and writes them to a bsemam.ini file (in the Windows directory). Based on the user's choices, the setup book next runs the approrpiate setup.exe file and exits (Figure 12).

Figure 7. Input Device and Data Collection Options.

Figure 8. Location for Data Files.

Figure 9. Change Location Screen.

Figure 10. Insert Directory.

Figure 11. Summary Screen of Choices.

Figure 12. Setup Screen.
2. Setup.exe files created by Setup Manager
At this point in the process, we've created a bsemam.ini file to store certain path information and user choices. If the user wished to collect data and decided to change the default data location, we may also have created a new, empty subdirectory somewhere. To understand how the setup options work, it may be helpful to examine the layout of the cd-rom itself:
root of the cd-rom:
Program
Typical
BSEMedia
MamMedia
VFW11E subdirectory:
Figure 13. Cd-ROM File Structure.
One of the limitations of setup manager (at least when I was working on this program) was the inability to have multiple setup files (the .asu files) in the same folder and pick among them. Consequently, I set up separate subdirectories to contain the two different installations (Typical and Run from Cd).
Using Setup Manager
Run from CD
I prefer to use setup manager in Expert Mode. The following screens document the choices made for the Run from Cd installation set. The asu file is included in Appendix B. Expert Mode lets you create the asu file by completing information on 5 tabs. The General tab (Figure 14) lets you set the title of the dialog box (Mammography/Breast Self Examination); the default installation directory (c:\bsemam); and the location for the installation of the run-time files ($windows$\asym\runtime). The lower portion of the screen lets you select a background color and a startup bitmap.

Figure 14. General tab of the Setup Manager, Expert Mode.
The Files tab (Figure 15) lets you control the components that will be available to the user for installation. As you might guess, it would be pointless to create a setup program if you don't include any components to be installed. In our Run from CD option, we are installing the minimum number of components (1). To view the individual files that make up this component, you can click the Edit File List· button (Figure 16). In our example, we are installing 3 files: bse.ico (the icon we want displayed for the user to launch the program), readme.txt (information for the user), and readme.ico (the notepad icon).

Figure 15. Files tab of the Setup Manager, Expert Mode.

Figure 16. Component File List
The Program Manager (PM Icons) tab lets you set up icons and command lines for the various components to be installed. We are installing two things: an icon that when double-clicked will run the program from the cd and an icon that will open our readme file using notepad. If you examine Figures 17 and 18 below, you can see that the scrolling field at the top of the screen (where it says Program Icons) is constructed from the settings you select for the items listed in the bottom portion of the screen (where it says Program Manager Settings). You can select an individual component with which to associate a program icon, or you can indicate that the program icon is always installed (You should have at least something that is always installed.) When you first enter the PM Icons tab, the Program Group will be empty. You will select a component and then type in a program group, then a description for the icon, and the command line. You must specify the icon file you wish to use. This file must be included in the component you are installing. To select an icon, click the Change Icon button. If you have additional program icons to create, you click the blank line in the scrolling field under Program Icons. The program group will remain the same, since you can create only one program group for the installation. The command line controls what happens when the user double-clicks the icon, after installation is complete. I prefer to explicitly include the path to the runtime file to use in conjunction with the toolbook file. Here, the line reads: $Source$\tb50run.exe $Source$\mam.exe. The $Source$ entry is called a directory placeholder. During installation, the setup program dynamically replaces $Source$ with the specific drive:directory location from where the setup program is being run. In this example, we did not install any toolbook runtime files to the user's computer. We have placed the runtime files in the same directory as this setup file. The toolbook application files are located there, too. So, the path to the Mammography lesson, when fully expanded during installation becomes (assuming a cd-rom drive of D): d:\program\TB50run.exe d:\program\mam.exe
The entry for the readme file is a bit different. It uses the $Windows$ directory placeholder and the $Install$ placeholder. The $Windows$ placeholder is able to determine the path to the user's active windows subdirectory. The $Install$ placeholder is determined by the installation location selected by the user (or by the default). If, for example, the user left the installation directory set to c:\bsemam and the windows directory was located at c:\windows, the fully expanded command line for the readme.txt icon would be: c:\windows\notepad.exe c:\bsemam\readme.txt

Figure 17. PM Icons Tab of the Setup Manager, Expert Mode (1 of 2)

Figure 18. PM Icons Tab of the Setup Manager, Expert Mode (2 of 2)
For the Run from CD option, we make no entries in the Configuration tab (Figure 19).

Figure 19. Configuration Tab of the Setup Manager, Expert Mode.
The setup manager allows you to either display a message when installation is complete, or to automatically launch an executable file (Figure 20). We simply provide a message, but you could use this option to run a Video for Windows installer, for example. (The reason I don't use this is because I want to protect my users from accidentally installing the Win 3.x Video for Windows files under Windows 95.)

Figure 20. Launch EXE Tab of the Setup Manger, Expert Mode.
The final tab of the Setup Manager lets you compress the files to be installed according to the distribution media. We're using the Space Available (e.g., CD) option here. I can also indicate a location for storing the compressed files. Setup Manager has you first create the compressed files. Then, you can use the copy feature to create disks. (This is more useful for the floppy disk options.)

Figure 21. Create Disks Tab of the Setup Manager, Expert Mode.
Typical Installation
The Typical installation will install the run-time files and the application files to the user's hard drive. Figure 22 shows the General tab settings. Notice the use of the $windows$ placeholder directory to place the runtime files. We have added the runtime component in the Files tab (Figure 23).

Figure 22. General Tab.

Figure 23. Files Tab.
If you examine the files that comprise the Program component (Figure 24), you'll see that the list contains the same as in the Run from CD version, but has added two files: bse.exe and mam.exe. These are the two ToolBook application files.

Figure 24. Program File List.
Figure 25 shows the PM Icons tab and the settings for the icon that will launch the mam.exe file. Notice that the command line now shows two different placeholder directories. Since the runtime files will be installed to the $Common$ location, we use that placeholder to specify the location of the tb50run.exe file. We also use the $Install$ placeholder to point to the location of the mam.exe file. If we assume that the user has accepted the default c:\bsemam directory for installation and that the windows directory is c:\windows, this command line would expand to: c:\windows\asym\runtime\tb50run.exe c:\bsemam\mam.exe.

Figure 25. PM Icons Tab.
When we added the runtime files as a component, the Setup Manager automatically added the lines shown in Figure 26 to the configuration tab. We've left them in, but we actually don't need them, since we made an explicit reference to the runtime file as part of our command line.

Figure 26. Configuration Tab.
The Launch EXE and Create Disks tabs are similar to those in the first example.
Final Key to the Puzzle
The setup program will successfully install the software, but the software runs properly only because we have designed the two parts to work together. Appendix C contains some selected handlers from the book script of mam.exe. I invite those interested to peruse these scripts, which are fairly well commented.
Appendix A: Scripts from the ToolBook Setup Book
Book Script
to handle enterApplication
Script of page 1 (this is blank and is used to avoid an unpleasant screen shift)
to handle firstIdleScript of page 2 (this is the main options page)
to handle enterPageto handle doTypicalInstall
to handle writeIni
Scripts of Buttons on Page 2
Test Media Button
to handle buttonClickTypical Install Button
to handle buttonClickRun from CD Button
to handle buttonClickVideo for Windows Button
to handle buttonClick
Help Button
to handle buttonClick
Credits Button
to handle buttonClick
Quit Button
to handle buttonClick
Additional Scripts
The Help button opens a Help viewer and displays page help. The Credit button opens the same Help viewer, but displays the credits page in it. There is a background button on these two pages called Close. Here's the script for this button:
to handle buttonClick
The various options (mouse/touch screen, data collection, data location) are presented on pages displayed in an Options viewer. There are three background buttons that are present on all of the options pages:
Cancel button script: to handle buttonClickPrevious button script:
notifyBefore enterPageNext button script:
The scripts related to these pages are presented below:
Options 1 Page (mouse/touch screen and data collection)
Page Script:
to handle checkNext
Options 2 page (Location for Data Files):
Page Script:
to handle checkNextAccept Default button script:
to handle buttonClickChange Location button script:
to handle buttonClick
Group locationChoices script:
notifyBefore enterPageComboBox to change drive:
to handle selectChange newDriveField that changes directories
notifyBefore enterpageField that displays the current directory:
notifyBefore updateDirectoryInfo pathInsert Directory button script:
to handle buttonClickOptions 3 Page Script:
to handle checkNext end to handle enterpageto handle leavepage
Proceed button script:
to handle buttonClickAppendix B: ASU scripts for the CDRUN and the TYPICAL Setups
CDRUN.ASU
; Expert mode. Creation Date and Time: 08/21/97 19:55:34 [General] Title=Mammography/Breast Self Examination Background=Red,None Directory=c:\bsemam ArchiveName=CDRUN RegistrationINI=$Windows$\asym.ini,Registered Apps FullInstallBMP=DEFAULT Common=TB50,$windows$\asym\runtime,5.0,United States [Component0] Name=Program TotalSize=7725 File0=bse.ico,$Install$,d:\mammog\mamcd\program,IfNewer,0 File1=readme.txt,$Install$,d:\mammog\mamcd\program,IfNewer,0 File2=readme.ico,$Install$,d:\mammog\mamcd\program,IfNewer,0 PMGroupItem0=Mammography and Breast Self Exam,$Windows$\notepad.exe $Install$\readme.txt,Readme,$Install$\README.ICO,0 [DefaultComponent] PMGroupItem0=Mammography and Breast Self Exam,$Source$\tb50run.exe $Source$\mam.exe,Mammogram,$Source$\BSE.ICO,0,,,$Source$ Message0="A program group for the Mammography/BSE programs has been added to your computer but the cd-rom must remain present to run all files. Double-click the heart-shaped icon to run the program."TYPICAL.ASU
; Expert mode. Creation Date and Time: 08/21/97 20:05:54 [General] Title=Mammography/Breast Self Examination Background=Red,None Directory=c:\bsemam ArchiveName=TYPICAL RegistrationINI=$Windows$\asym.ini,Registered Apps FullInstallBMP=DEFAULT Common=TB50,$windows$\asym\runtime,5.0,United States [Component0] Name=Program TotalSize=16065000 File0=bse.exe,$Install$,d:\mammog\mamcd\program,IfNewer,0 File1=bse.ico,$Install$,d:\mammog\mamcd\program,IfNewer,0 File2=mam.exe,$Install$,d:\mammog\mamcd\program,IfNewer,0 File3=readme.txt,$Install$,d:\mammog\mamcd\program,IfNewer,0 File4=readme.ico,$Install$,d:\mammog\mamcd\program,IfNewer,0 PMGroupItem0=Mammography and Breast Self Exam,$Windows$\notepad.exe $Install$\readme.txt,Readme,$Install$\README.ICO,0 [CommonComponent] Name=TB runtime TotalSize=3185826 File0=tbload.exe,$Common$,C:\INSTRUCT,IfNewer,0 File1=TB50jpg.dll,$Common$,C:\INSTRUCT,IfNewer,0 File2=TB50utl.dll,$Common$,C:\INSTRUCT,IfNewer,0 File3=TB50run.exe,$Common$,C:\INSTRUCT,IfNewer,0 File4=TB50rcr.dll,$Common$,C:\INSTRUCT,IfNewer,0 File5=TB50net.exe,$Common$,C:\INSTRUCT,IfNewer,0 File6=TB50mm.ini,$Common$,C:\INSTRUCT,IfNewer,0 File7=TB50mm.dll,$Common$,C:\INSTRUCT,IfNewer,0 File8=TB50lnl.dll,$Common$,C:\INSTRUCT,IfNewer,0 File9=TB50flt.dll,$Common$,C:\INSTRUCT,IfNewer,0 File10=TB50cmp.dll,$Common$,C:\INSTRUCT,IfNewer,0 File11=TB50bmp.dll,$Common$,C:\INSTRUCT,IfNewer,0 File12=TB50bas.dll,$Common$,C:\INSTRUCT,IfNewer,0 File13=tb50win.dll,$Common$,C:\INSTRUCT,IfNewer,0 File14=tb50dos.dll,$Common$,C:\INSTRUCT,IfNewer,0 File15=tb50dlg.dll,$Common$,C:\INSTRUCT,IfNewer,0 Ini0=asym.ini,ToolBook Load Information,TB50,$Common$\TB50RUN.EXE,NoReplace Ini1=WIN.INI,Extensions,TBK,$Common$\TBLOAD.EXE ^.TBK [DefaultComponent] PMGroupItem0=Mammography and Breast Self Exam,$Common$\tb50run.exe $Install$\mam.exe,Mammogram,$Install$\BSE.ICO,0,,,$Install$ Message0="The necessary runtime and program files have been installed to the computer, but the cd-rom must remain present to play back movies and audio. Double-click the heart-shaped icon to run the program."Appendix C: Scripts for the Mam.exe Book
(selected handlers from the book script)
----Installation code by M. Weller, 5/97
--************************************************************************
--================================================
--How this program is designed to work -- The person installing the software has 2 choices: -- typical installation (program and runtime files to the hard drive, but media -- files remain on the cd), run from cd. -- The person installing the software is asked to indicate whether a touch monitor or a mouse -- will be used and whether or not data collection is desired. If data collection is desired, -- the user is prompted to indicate a location drive:directory. (The default will be c:\bsemam.) -- an entry in bsemam.ini might look like this: --[Preferences] --collectData=true -- (data cannot be collected if program is running totally -- from the cd without installing) --alternative is false, if user chooses not to set up data collection --dataPath=C:\bsemam\ --user selects or accepts default --numtries= 0 --this will contain a value that is incremented each time --the book is reopened, if data collection is true --mmPath=d:\bsemam\mamMedia\ --will point to real path of media files, if user installs any option --bsemmPath=d:\bsemam\bseMedia\ --separate directory for the BSE media files --inputType=mouse --alternative is touch-- These choices,the cd-rom drive, and the location of the media files (hard drive or cd) -- are stored in a bsemam.ini file that is written to the hard drive (to the windows directory). --NOTE: It will also be possible to run the program totally from the cd-rom, with absolutely --no installation (for demo purposes). In this case, no data collection will take place. -- A system variable is being used to keep track of the location of the media files: -- s_mediaPath -- The program checks to see if the bsemam.ini file exists in the windows directory. -- If the file exists, the s_mediaPath variable is set from the information contained there. -- If the bsemam.ini file doesn't exist, the program will derive the s_mediaPath variable -- from the location of the mammography lesson and will disable data collection.
to handle buttonUp
to handle checkCD