home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* MSSetup for TPP Language Sampler '************************************************************************** '$INCLUDE 'setupapi.inc' '$INCLUDE 'msdetect.inc' ''Dialog ID's CONST ASKQUIT = 200 CONST DESTPATH = 300 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 70 CONST CUSTINFO = 700 CONST OPTIONS = 800 CONST APPHELP = 900 CONST NOFREESPACE = 1000 CONST BADPATH = 6400 CONST NOAVISPACE = 1300 CONST REBOOTLATER = 1400 CONST AVISPACE = 335344 ''SIZE OF MCIAVI.DRV approx 150K CONST MINSPACE = 12000000 ''12 million bytes (less than 6MB) ''Bitmap ID CONST LOGO = 1 GLOBAL DEST$ ''Default destination directory. GLOBAL OPTCUR$ ''Option selection from option dialog. GLOBAL SRCDIR$ GLOBAL INSTDIR$ GLOBAL APPNAME$ GLOBAL HELPNAME$ GLOBAL WINTITLE$ GLOBAL DIRNAME$ GLOBAL TmpSrc$ GLOBAL TmpDest$ GLOBAL AviSrc$ GLOBAL MinorVersion GLOBAL MajorVersion GLOBAL WINDIR$ GLOBAL WINSYSDIR$ GLOBAL mciavistring$ GLOBAL RebootFlag GLOBAL CUIDLL$ GLOBAL MainIwmName$ GLOBAL MainIconName$ GLOBAL OrderIconName$ DECLARE SUB Install DECLARE SUB EditSystemIni DECLARE SUB BuildGroup DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING INIT: APPNAME$ = "TriplePlay Plus! Language Sampler" DIRNAME$ = "TPP5Demo" WINTITLE$ = APPNAME$ + " - Installation" MainIwmName$ = "STARTUP.IWM" MainIconName$ = "TPP5DEMO.ICO" OrderIconName$ = "NOTEPAD.ICO" CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure SetBitmap CUIDLL$, LOGO SetTitle WINTITLE$ szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF" END IF ReadInfFile szInf$ SRCDIR$ = (GetSymbolValue("STF_SRCDIR") + DIRNAME$ + "\") WINDIR$ = GetWindowsDir() WINSYSDIR$ = GetWindowsSysDir() RebootFlag = 0 ''if system ini and win ini don't have the ''appropriate entry for mci drivers, then the ''RebootFlag is set TRUE and a reboot dialog box ''appears on the screen reminding them to reboot OPTCUR$ = "1" DEST$ = ("C:\" + DIRNAME$) MinorVersion=GetWindowsMinorVersion() MajorVersion=GetWindowsMajorVersion() IF MajorVersion < 3 OR (MajorVersion = 3 AND MinorVersion < 10) THEN i% = DoMsgBox("Microsoft Windows Version 3.10 or greater is required for this software. Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF '$IFDEF DEBUG i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal WinDrive$ = MID$(GetWindowsDir, 1, 1) IF IsDriveValid(WinDrive$) = 0 THEN i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK) GOTO QUIT END IF '$ENDIF ''DEBUG AVI_ENTRY: WinDrive$ = MID$(GetWindowsDir, 1, 1) IF GetFreeSpaceForDrive(WinDrive$) < AVISPACE THEN GOSUB NOAVISPACE UIPopAll END ENDIF OPTION: SetSymbolValue "RadioDefault", OPTCUR$ OPTL1: sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$) OPTCUR$ = GetSymbolValue("ButtonChecked") IF sz$ = "CONTINUE" THEN UIPop(1) ELSEIF sz$ = "REACTIVATE" THEN GOTO OPTL1 ELSE GOSUB ASKQUIT GOTO OPTION END IF IF OPTCUR$ = "2" THEN GOTO NOINSTALL END IF GETPATH: SetSymbolValue "EditTextIn", DEST$ SetSymbolValue "EditFocus", "END" GETPATHL1: sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$) DEST$ = GetSymbolValue("EditTextOut") IF sz$ = "CONTINUE" THEN IF IsDirWritable(DEST$) = 0 THEN GOSUB BADPATH GOTO GETPATHL1 END IF IF MID$(DEST$, LEN(DEST$), 1) = "\" THEN GOSUB BADPATH GOTO GETPATHL1 END IF IF GetFreeSpaceForDrive(DEST$) < MINSPACE THEN GOSUB NOFREESPACE GOTO GETPATHL1 ENDIF UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETPATHL1 ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO OPTION ELSE GOSUB ASKQUIT GOTO GETPATH END IF Install GOTO QUIT NOINSTALL: INSTDIR$ = SRCDIR$ AviSrc$ = SrcDir$ + "AVIDRIVR" AddSectionFilesToCopyList "AviDrivers",AviSrc$,WINSYSDIR$ i% = SetSilentMode(1) CopyFilesInCopyList i% = SetSilentMode(0) EditSystemIni BuildGroup QUIT: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN dlg% = EXITSUCCESS ELSEIF ERR = STFQUIT THEN dlg% = EXITQUIT ELSE dlg% = EXITFAILURE END IF QUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO QUITL1 END IF UIPop 1 INFO: IF ERR = 0 THEN dlg% = CUSTINFO sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO INFO END IF UIPop 1 END IF END ERRQUIT: i% = DoMsgBox("Setup sources were corrupted, call the included support number", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND) END BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN NOFREESPACE: sz$ = UIStartDlg(CUIDLL$, NOFREESPACE, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO NOFREESPACE END IF UIPop 1 RETURN NOAVISPACE: sz$ = UIStartDlg(CUIDLL$, NOAVISPACE, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO NOAVISPACE END IF UIPop 1 RETURN ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll ERROR STFQUIT ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN '** '** Purpose: '** Builds the copy list and performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB Install STATIC SrcDir$ = (GetSymbolValue("STF_SRCDIR") + DIRNAME$ + "\") CreateDir DEST$, cmoNone AddSectionFilesToCopyList "Files", SrcDir$, DEST$ TmpSrc$ = SrcDir$ + "VARIABLE\IWVAR" TmpDest$ = DEST$ + "\VARIABLE" AddSectionFilesToCopyList "IWVAR", TmpSrc$, TmpDest$ AviSrc$ = SrcDir$ + "AVIDRIVR" AddSectionFilesToCopyList "AviDrivers",AviSrc$,WINSYSDIR$ CopyFilesInCopyList INSTDIR$ = DEST$ EditSystemIni BuildGroup END SUB SUB EditSystemIni STATIC ''i% = DoesIniKeyExist(WINDIR$ + "system.ini","mci","AVIVideo") ''IF i% = 0 THEN '' RebootFlag = 1 ''ENDIF ''i% = DoesIniKeyExist(WINDIR$ + "system.ini","Drivers","VIDC.MSVC") ''IF i% = 0 THEN '' RebootFlag = 1 ''ENDIF i% = DoesIniKeyExist(WINDIR$ + "system.ini","Drivers","MSACM.MSADPCM") IF i% = 0 THEN RebootFlag = 1 ENDIF i% = DoesIniKeyExist(WINDIR$ + "system.ini","Drivers","wavemapper") IF i% = 0 THEN RebootFlag = 1 ENDIF ''CreateIniKeyValue WINDIR$ + "system.ini","mci","AVIVideo","mciavi.drv",cmoOverwrite ''CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.MSADPCM", "msadpcm.acm", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "wavemapper", "msacm.drv", cmoOverwrite ''CreateIniKeyValue "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite END SUB SUB BuildGroup STATIC CreateProgmanGroup "LANGUAGE", "", cmoNone ShowProgmanGroup "LANGUAGE", 1, cmoNone CreateProgmanItem "LANGUAGE", "TPP Language Sampler", MakePath(INSTDIR$,"SLSSTART.EXE")+" "+MainIwmName$, MakePath(INSTDIR$,MainIconName$), cmoOverwrite CreateProgmanItem "LANGUAGE", "Order Form", "NOTEPAD.EXE "+MakePath(INSTDIR$,"ORDER.TXT"),MakePath(INSTDIR$,OrderIconName$), cmoOverwrite REBOOTMSG: IF RebootFlag = 1 THEN sz$ = UIStartDlg(CUIDLL$, REBOOTLATER, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO REBOOTMSG END IF UIPop 1 ENDIF END SUB '** '** Purpose: '** Appends a file name to the end of a directory path, '** inserting a backslash character as needed. '** Arguments: '** szDir$ - full directory path (with optional ending "\") '** szFile$ - filename to append to directory '** Returns: '** Resulting fully qualified path name. '************************************************************************* 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