home *** CD-ROM | disk | FTP | other *** search
- '' Global variables
-
- GLOBAL TitleShortName$
- GLOBAL TitleLongName$
- GLOBAL MVBFileName$
- GLOBAL PromptForPath%
- GLOBAL DefaultPath$
- GLOBAL ProgManGroup$
- GLOBAL ProgManItem$
-
-
-
- TitleShortName$ = "elvis"
-
-
- TitleLongName$ = "ELVIS ON CD-ROM"
-
-
- MVBFileName$ = "proelvis"
-
-
- PromptForPath% = 0
-
-
- DefaultPath$ = ""
-
-
- ProgManGroup$ = "ELVIS ON CD-ROM"
-
-
- ProgManItem$ = "Elvis"
-
-
- GLOBAL CUIDLL$
-
- '' Include files
- '$INCLUDE 'setupapi.inc'
-
- '' Custom UI dll
- CUIDLL$ = "mscuistf.dll"
-
- '' Dialog ID's
- CONST DESTPATH = 1000
- CONST APPHELP = 2000
- CONST TOOBIG = 3000
- CONST BADPATH = 4000
- CONST SUCCESS = 5000
-
- '' Bitmap ID
- CONST LOGO = 1
-
- '' Functions and subroutines
- DECLARE FUNCTION AddFont LIB "mscuistf.dll" (szFont$, szName$) AS INTEGER
- DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
- DECLARE FUNCTION GetTitleDir (szDefault$) AS STRING
- DECLARE FUNCTION CopyFiles(szTitleDir$) AS INTEGER
- DECLARE SUB RegisterFont(fontfile$, fontname$)
- DECLARE SUB ModifyViewerIni(szTitleDir$)
- DECLARE SUB RegisterCustomFonts
- DECLARE SUB ModifyProgramManager
- DECLARE SUB ShowSuccess
- DECLARE SUB RegisterDrivers
-
-
- i% = SetSizeCheckMode(scmOff)
-
-
- SetTitle "Viewer Title Setup"
- SetBitmap CUIDLL$, LOGO
-
- '' Read in the INF file.
-
- ReadInfFile GetSymbolValue("STF_CWDDIR") + "TITLE.INF"
-
- '' Decide where to put title files
- IF PromptForPath% = 1 THEN
- szTitleDir$ = GetTitleDir(DefaultPath$)
- IF szTitleDir$ = "" THEN
- GOTO QUIT
- ENDIF
- ELSE
- szTitleDir$ = GetWindowsDir()
- ENDIF
-
- '' Copy files
- IF CopyFiles(szTitleDir$) = 0 THEN
- GOTO QUIT
- ENDIF
-
- '' Create the MVIEWER2.EXE MVB association
- CreateIniKeyValue "WIN.INI", "Extensions", "MVB", "mviewer2.exe", cmoNone
-
- '' Register in VIEWER.INI
- ModifyViewerIni szTitleDir$
-
- '' Register custom fonts
- RegisterCustomFonts
-
- '' Register drivers
- RegisterDrivers
-
- '' Modify Program Manager
- ModifyProgramManager
-
- '' Success dialog
- ShowSuccess
-
- '' Now start the title
-
- RUN "mviewer2.exe " + MVBFileName$ + ".MVB", NOWAIT
-
- QUIT:
-
- END
-
-
-
- FUNCTION GetTitleDir (szDefault$) STATIC AS STRING
-
- SetSymbolValue "String", TitleShortName$
- SetSymbolValue "EditTextIn", szDefault$
- SetSymbolValue "EditFocus", "ALL"
-
- GETPATH:
-
- sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, "FHelpDlgProc")
-
- IF sz$ = "CONTINUE" THEN
- szTitleDir$ = GetSymbolValue("EditTextOut")
- IF IsDirWritable(szTitleDir$) = 0 THEN
-
- BADPATH:
-
- sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfoDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO BADPATH
- END IF
- UIPop 1
- GOTO GETPATH
- END IF
- UIPop 1
- CreateDir szTitleDir$, cmoNone
-
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO GETPATH
-
- ELSE
- szTitleDir$ = ""
-
- END IF
-
- GetTitleDir = szTitleDir$
-
- END FUNCTION
-
-
-
- FUNCTION CopyFiles(szTitleDir$) STATIC AS INTEGER
-
- '' Add all system files to the copy list
- AddSectionFilesToCopyList "System Files", GetSymbolValue("STF_SRCDIR"), GetWindowsSysDir()
-
- '' Add all of the title files to the copy list
- AddSectionFilesToCopyList "Installed Title Files", GetSymbolValue("STF_SRCDIR"), szTitleDir$
-
- '' Check size
- szExtras$ = "Extra"
- szCosts$ = "Costs"
- szNeededs$ = "Neededs"
- FOR i% = 1 TO 26 STEP 1
- AddListItem szExtras$, "0"
- NEXT i%
-
- '' We assume that VIEWER.INI will take another 4K
- ReplaceListItem szExtras$, ASC(MID$(GetWindowsDir(), 1, 1)) - ASC("A") + 1, STR$(4096)
-
- '' Get amount of space required
- StillNeed& = GetCopyListCost(szExtras$, szCosts$, szNeededs$)
-
- '' Put up a message if there is not enough space
- FOR i% = 1 TO 26 STEP 1
- IF VAL(GetListItem(szNeededs$, i%)) > 0 THEN
-
- SetSymbolValue "String1", LTRIM$(STR$(VAL(GetListItem(szCosts$, i%)) / 1024))
- SetSymbolValue "String2", CHR$(i% - 1 + ASC("A"))
-
- TOOBIG:
-
- sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfoDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO TOOBIG
- END IF
- UIPop 1
- CopyFiles = 0
- GOTO DONTCOPY
- END IF
- NEXT i%
-
- '' Copy the files
- CopyFilesInCopyList
-
- CopyFiles = 1
-
- DONTCOPY:
-
- END FUNCTION
-
-
-
- SUB ShowSuccess STATIC
-
- SUCCESS:
-
- SetSymbolValue "String1", TitleShortName$
- sz$ = UIStartDlg(CUIDLL$, SUCCESS, "FInfoDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO SUCCESS
- END IF
- UIPop 1
-
- END SUB
-
-
-
- FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
- IF szDir$ = "" THEN
- MakePath = szFile$
- ELSEIF szFile$ = "" THEN
- MakePath = szDir$
- ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
- MakePath = szDir$ + szFile$
- ELSE
- MakePath = szDir$ + "\" + szFile$
- END IF
- END FUNCTION
-
-
-
- SUB RegisterFont(fontfile$, fontname$) STATIC
-
- '' A simple error catching wrapper around AddFont, which is a 'C' routine in MSCUISTF.DLL
-
- IF AddFont(fontfile$, fontname$) = -1 THEN
- j% = DoMsgBox("Could not install " + fontfile$ + " font.", "Viewer Font Installation", 0)
- ENDIF
-
- END SUB
-
-
-
- SUB ModifyViewerIni (szTitleDir$) STATIC
-
- '' Get the VIEWER.INI file
-
- szIni$ = MakePath(GetWindowsDir(), "VIEWER.INI")
-
- CreateIniKeyValue szIni$, MVBFileName$, "Name", TitleLongName$, cmoOverwrite
- CreateIniKeyValue szIni$, MVBFileName$, "Path", GetSymbolValue("STF_SRCDIR"), cmoOverwrite
-
- CreateIniKeyValue szIni$, "FILES", MVBFileName$ + ".MVB", GetSymbolValue("STF_SRCDIR") + "," + "Please insert the " + TitleLongName$ + " disk.", cmoOverwrite
-
-
- END SUB
-
-
-
- SUB ModifyProgramManager STATIC
-
- '' Create the program manager group
-
- CreateProgmanGroup ProgmanGroup$, "", cmoNone
- ShowProgmanGroup ProgmanGroup$, 1, cmoNone
-
- '' Create an entry for the title
-
- CreateProgmanItem ProgmanGroup$, ProgmanItem$, "mviewer2.exe " + MakePath(GetSymbolValue("STF_SRCDIR"), MVBFileName$ + ".MVB"), MakePath(GetSymbolValue("STF_SRCDIR"), MVBFileName$ + ".ICO"), cmoOverwrite
-
- '' CUSTOMIZATION:
- ''
- '' To create additional Program Manager items, copy the preceding
- '' statement for each additional item, substituting the appropriate
- '' Program Manager item name for ProgmanItem$ and filename for
- '' MVBFileName$.
- ''
- '' To display a custom icon with the Program Manager item, specify
- '' the icon filename with the fourth parameter (this parameter is
- '' currently an empty string, ""). The following example specifies
- '' an icon with the same filename as the .MVB file:
- ''
- '' CreateProgmanItem ProgmanGroup$, ProgmanItem$, "mviewer2.exe " + MakePath(GetSymbolValue("STF_SRCDIR"), MVBFileName$ + ".MVB"), MakePath(GetSymbolValue("STF_SRCDIR"), MVBFileName$ + ".ICO"), cmoOverwrite
-
- END SUB
-
-
- SUB RegisterCustomFonts STATIC
-
- END SUB
-
-
- SUB RegisterDrivers STATIC
-
- CreateIniKeyValue "WIN.INI", "mci extensions", "AVI", "AVIVIDEO", cmoNone
- CreateIniKeyValue MakePath(GetWindowsDir(), "SYSTEM.INI"), "mci", "AVIVIDEO", "MCIAVI.DRV", cmoNone
- CreateIniKeyValue MakePath(GetWindowsDir(), "SYSTEM.INI"), "drivers", "vidc.msvc", "msvidc.drv", cmoNone
- CreateIniKeyValue MakePath(GetWindowsDir(), "SYSTEM.INI"), "drivers", "vidc.rt21", "indeo.drv", cmoNone
-
- END SUB
-
-
-
-