home *** CD-ROM | disk | FTP | other *** search
Wrap
rem **************************************************************************** rem * rem * File: setup.mst rem * rem * Author: Clive Nutter rem * rem * Purpose: Script file for MS setup engine. rem * rem * Change History: rem * rem * 01.09.95, CLN Created, based on AV title setup.mst. rem * 02.09.95, CLN Added QuickTime version checking. rem * 03.09.95, CLN Amended so each promo has its own copy of rem * engine. rem * 06.09.95, CLN Added code for First World War & War in the rem * Pacific promos. rem * 15.09.95, CLN Add DLL call to update system configuration. rem * Add code to display read-me file. rem * 09.10.95, CLN Cater for advert(s) and retail loop variants. rem * 04.01.96, CLN Allow selection of VfW and WinToon and engine rem * sharing options. rem * 01.04.96, CLN Change to install QuickTime 2.1.0. rem * rem **************************************************************************** '$INCLUDE 'setupapi.inc' '$INCLUDE 'mscpydis.inc' ''System '$INCLUDE 'msdetect.inc' ''Detects Available Disk Space '$INCLUDE 'avsetup.inc' '$INCLUDE 'pmgrdde.inc' ''Program Manager DDE '$INCLUDE 'system.inc' ''FlagTower system configuration '$INCLUDE 'flagtowr.inc' ''FlagTower title values ''Dialog ID's CONST WELCOME = 100 CONST ASKQUIT = 200 CONST ASKPATH = 300 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST APPHELP = 900 CONST SMALLWIN = 2200 CONST RESTART = 2600 CONST RESTARTII = 2700 CONST BADPATH = 6400 'GLOBAL SizeReq& '' Total Disk Size required for installation GLOBAL WinDir$ ''Windows directory GLOBAL WinSysDir$ ''Windows system directory GLOBAL WinSys32Dir$ ''Win32 system directory GLOBAL MinorVer% ''Windows minor version number GLOBAL OnNT$ ''NT flag GLOBAL SrcDir$ ''Source directory GLOBAL CDDrive$ ''CD-Rom drive letter GLOBAL DbPath$ ''Database directory GLOBAL AVDest$ ''Directory to put AV engine libraries GLOBAL AVDestRoot$ '' Root directory for title global isInstallQTW as integer ''----- External functions called by Video for Windows setup DECLARE FUNCTION ExitWindowsExec LIB "user" (Exec$, Param$) AS INTEGER DECLARE FUNCTION OnWindowsNT LIB "iniupd.dll" AS INTEGER DECLARE SUB Reboot LIB "iniupd.dll" DECLARE FUNCTION VflatdPresent LIB "iniupd.dll" AS INTEGER DECLARE FUNCTION WritePrivateProfileString LIB "krnl386.exe" (szSect$, szEntry$, szString$, szINI$) AS INTEGER ''----- External functions called by WinG setup DECLARE FUNCTION GetRealSystemDirectory LIB "setuphlp.dll" (szDir$, cbBuf%) AS INTEGER DECLARE FUNCTION IsWin32FileNewer LIB "setuphlp.dll" (szOrig$, szNew$) AS INTEGER DECLARE SUB RenameFilePlease LIB "setuphlp.dll" (szOrig$, szNew$) DECLARE FUNCTION RestartWindows LIB "setuphlp.dll" AS INTEGER ''----- Effects library functions used DECLARE FUNCTION DivertBackMessage LIB "avsetup.dll" (WinHandle%, InstHandle%) AS INTEGER DECLARE SUB MaxWindowArea LIB "avsetup.dll" (WinHandle%) DECLARE FUNCTION ShowBitmap LIB "avsetup.dll" (WinHandle%, szName$, nFx%, nFxTime%) AS INTEGER DECLARE FUNCTION SetFileAttribute LIB "avsetup.dll" (szName$, nMode%) AS INTEGER DECLARE FUNCTION fnnGetQTWVersion LIB "qtw_vers.dll" (ourVersion&) AS INTEGER DECLARE FUNCTION CallModifyCONFIG LIB "confchk.dll" (WinHandle%) AS INTEGER ''----- Local functions DECLARE FUNCTION CheckVideoSystem(WinMajVer%, WinMinVer%, ProcType%) AS INTEGER DECLARE FUNCTION CreateTitleINIFile(szINI$, szCD$, szDbPath$) AS INTEGER declare sub CopyTitleBinaries(pathBinary$, sectBinary$, sectCDilla$, sectEngine$, sectAccusoft$ ) declare sub CopyTitleDatabase(pathDatabase$, sectDatabase$ ) declare sub InstallTitle( pathRoot$, pathBinary$, pathDatabase$, iniFile$, dllFile$, iconNo$ ) declare sub CreateTitleIcon( pathBinary$, dllFile$, iconNo$ ) declare sub CreateMenuIcon( pathBinary$ ) DECLARE SUB Install DECLARE FUNCTION MakePath(szDir$, szFile$) AS STRING DECLARE SUB UpdateWinG32(szOrig$) INIT: CUIDLL$ = "ftcuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure MajorVer% = GetWindowsMajorVersion() MinorVer% = GetWindowsMinorVersion() Processor% = GetProcessorType() WinDir$ = GetWindowsDir() WinSysDir$ = GetWindowsSysDir() WinSys32Dir$ = WinDir$ + "system32" SrcDir$ = GetSymbolValue("STF_SRCDIR") 'Make sure the user's system can handle Video for Windows dummy% = CheckVideoSystem(MajorVer%, MinorVer%, Processor%) IF OnWindowsNT() THEN OnNT$ = "TRUE" END IF 'Read setup's .INF file szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF" END IF ReadInfFile szInf$ 'Divert paint messages of background window to our own routine dummy% = DivertBackMessage(HwndFrame(), HinstFrame()) MaxWindowArea(HwndFrame()) dummy% = ShowBitmap(HwndFrame(), SrcDir$+"logo.bmp",106,1000) WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF GETPATH: AVDest$ = Dir_DefaultInstall SetSymbolValue "EditTextIn", AVDest$ SetSymbolValue "EditTextOut", AVDest$ SetSymbolValue "EditFocus", "END" GETPATHL1: SetSymbolValue "DLGEVENT", "" sz$ = UIStartDlg(CUIDLL$, ASKPATH, "FEditDlgProc", 0, "") AVDest$ = GetSymbolValue("EditTextOut") AVDestRoot$ = AVDest$ IF sz$ = "CONTINUE" THEN IF IsDirWritable(AVDest$) = 0 THEN GOSUB BADPATH GOTO GETPATHL1 END IF UIPop 1 ELSE IF sz$ = "EXIT" THEN GOSUB ASKQUIT END IF GOTO GETPATH END IF if not Dir_Group = "" then AVDest$ = AVDest$ + Dir_Group end if rem *** Prepare copy list ClearCopyList '$INCLUDE 'init.mst' '$ifdef IsUsingVfW '' ------------------- Copy list for Video for Windows -------------------- ''Remove DCISVGA file RemoveFile WinSysDir$+"dcisvga.drv", cmoForce IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN 'These files not necessary on Windows NT AddSectionFilesToCopyList "VfW MPlayer", SrcDir$, WinDir$ AddSectionFilesToCopyList "VfW OLE2", SrcDir$, WinSysDir$ END IF AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "VfW ACM Drivers", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "VfW AVICodecs", SrcDir$, WinSysDir$ IF OnNT$ = "TRUE" THEN AddSectionFilesToCopyList "VfW NT MSVideo", SrcDir$, WinSys32Dir$ ENDIF '$endif '' --------------------- Copy list for WinG ----------------------- AddSectionFilesToCopyList "WinG runtime", SrcDir$, WinSysDir$ Dest1$ = MakePath (WinSysDir$,"Wing32.dll") Dest2$ = MakePath (WinSysDir$,"Wing32.xxx") RenameFilePlease Dest1$, Dest2$ '$ifdef IsUsingWinToon '' ---------------------- Copy list for WinToon ----------------------- AddSectionFilesToCopyList "WinToon runtime", SrcDir$, WinSysDir$ '$endif '' --------------------- Copy list for MediaView ---------------------- AddSectionFilesToCopyList "MediaView runtime", SrcDir$, WinSysDir$ rem *** Copy list for QuickTime isInstallQTW = 0 qtwVersion& = 11065 s% = fnnGetQTWVersion( qtwVersion& ) if s% = 1 then isInstallQTW = 1 '$ifdef IsUsingQTUtilities AddSectionFilesToCopyList "QuickTime 2.1.1 Utilities", SrcDir$, WinDir$ '$endif AddSectionFilesToCopyList "QuickTime 2.1.1 Runtime", SrcDir$, WinSysDir$ endif '' ------------------------ Copy list for ADS ------------------------- AddSectionFilesToCopyList "ADS", SrcDir$, WinSysDir$ '' ------------------------ Copy list for AAPLAY ------------------------- AddSectionFilesToCopyList "AAPLAY Animation", SrcDir$, WinSysDir$ '$ifdef IsEncrypted rem *** Copy list for C-Dilla '$ifdef IsUsingCDillaV1 AddSectionFilesToCopyList "C-Dilla system", SrcDir$, WinDir$ '$endif '$endif rem *** Common utilities and system files AddSectionFilesToCopyList Sect_GenericUtility, SrcDir$, AVDestRoot$ AddSectionFilesToCopyList Sect_GenericSystem, SrcDir$, WinSysDir$ if not Dir_Group = "" then dummy% = setDOSFileAttr( AVDest$ + Dir_Binary + FN_Description, 0, 1 ) AddSectionFilesToCopyList Sect_GenericGroupUtility, SrcDir$, AVDest$ AddSectionFilesToCopyList Sect_GenericGroupBinary, SrcDir$, AVDest$ + Dir_Binary end if '$INCLUDE 'copylist.mst' '' -------- Check space on hard disk -------- SizeReq& = GetCopyListCost ("","", "") IF SizeReq& <> 0 THEN GOSUB SMALLWIN END END IF '' Perform install Install '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically '' else, it gives the user the choice RESTRT% = RestartListEmpty () Exe$ = WinDir$ + "\_msrstrt.exe" Batch$ = WinDir$ + "\_mssetup.bat" empty$ = "" RESTART: IF RESTRT% = 0 THEN sz$ = UIStartDlg(CUIDLL$, RESTART, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO RESTART ENDIF I% = ExitExecRestart () RemoveFile Exe$, cmoForce RemoveFile Batch$, cmoForce END ELSE sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "") IF sz$ = "CONTINUE" THEN I% = ExitWindowsExec (Exe$, empty$) IF I% = 0 THEN GOTO RESTART ELSE END ENDIF ELSEIF sz$ = "EXIT" THEN UIPopAll END ELSEIF sz$ = "REACTIVATE" THEN GOTO RESTART ELSE UIPop 1 END IF END IF 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 END ERRQUIT: i% = DoMsgBox("An installation problem occured.", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll '' ERROR STFQUIT END ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN SMALLWIN: sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO SMALLWIN END IF UIPop 1 RETURN BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN '** '** Purpose: '** Performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB Install STATIC SetRestartDir WinDir$ CopyFilesInCopyList UpdateWinG32 WinSysDir$ ''<-------------------- BACK UP INI FILES HERE !!! ----------------------> inia$ = MakePath(WinDir$, "win.ini") inib$ = MakePath(WinDir$, "win.ftw") CopyFile inia$, inib$, cmoOverwrite, 0 inia$ = MakePath(WinDir$, "system.ini") inib$ = MakePath(WinDir$, "system.ftw") CopyFile inia$, inib$, cmoOverwrite, 0 '$ifdef IsEncrypted rem *** Copy list for C-Dilla version 2 rem *** C-Dilla v2 not in setup.inf '$ifdef IsUsingCDillaV2 i% = installCDilla( HwndFrame(), SrcDir$+"_sys\cdilla2", 0 ) '$endif '$endif '$ifdef IsUsingVfW ''----------------- Update INI files for Video for Windows --------------- ''Updating WIN.INI and SYSTEM.INI ''Only update SYSTEM.INI on NT or next version of Windows for other codecs IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN IF VflatdPresent() = 0 THEN CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite END IF END IF CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21") IF I% = 0 THEN CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite END IF CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "mci extensions", "avi", "AVIVideo", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite '$endif if isInstallQTW = 1 then rem *** Update INI files for QuickTime CreateIniKeyValue "win.ini", "MCI Extensions", "mov", "QTWVideo", cmoOverwrite CreateIniKeyValue "win.ini", "MCI Extensions", "pic", "QTWVideo", cmoOverwrite CreateIniKeyValue "win.ini", "MCI Extensions", "jpg", "QTWVideo", cmoOverwrite i% = WritePrivateProfileString("MCI", "QTWVideo", MakePath(WinSysDir$, "mciqtw.drv"), "SYSTEM.INI") rem *** Create QTW.INI ini$ = MakePath(WinDir$, "qtw.ini") CreateIniKeyValue ini$, "QuickTime for Windows", "Implementation", "Full" , cmoOverwrite RemoveIniKey ini$, "video", "optimize", cmoNone endif rem Compatibility hacks. i% = WritePrivateProfileString("Macx", "DeviceBitmap", "OFF", "system.ini") CreateIniKeyValue "win.ini", "Mach", "DeviceBitmap", "off", cmoOverwrite rem *** Update INI files for AAPLAY CreateIniKeyValue WinDir$ + "win.ini", "AAPLAY Animation", "FullScreen", "AAVGA.DLL", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "AAPLAY Animation", "DualScreen", "yes", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "AAPLAY Animation", "Int2fSwitch", "no", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "AAPLAY Animation", "WaveAudio", "c,522", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "mci extensions", "flc", "Animation1", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "mci extensions", "fli", "Animation1", cmoOverwrite CreateIniKeyValue WinDir$ + "win.ini", "mci extensions", "aas", "Animation1", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "mci", "Animation1", "mciaap.drv", cmoOverwrite '$ifdef IsUsingVfW ''------ Register Video for Windows components ----- ''Do not register components not installed with Video for Windows on NT or next version of Windows. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg")) '' Mplayer CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite END IF ''NT and next version of Windows installation stop here. Run ("profdisp.exe") ''Profile display for Video for Windows '$endif '$INCLUDE 'install.mst' '$ifdef IsUsingMenu CreateMenuIcon AVDest$ + Dir_Binary '$endif CreateProgmanItem PMG_FlagTower, PMI_Uninstall, AVDestRoot$ + "\uninstal.exe", "", cmoOverwrite '$ifdef IsUsingOnLineReg CreateProgmanItem PMG_FlagTower, PMI_OnLineReg, AVDestRoot$ + "\onlinreg.exe", "", cmoOverwrite '$endif i% = CallModifyCONFIG( HwndFrame() ) REM Run( "notepad " + SrcDir$ + "readme.txt" ) END SUB ' -------------------------------------------------------------------------------------------- ' -------------------------------------------------------------------------------------------- ' -------------------------------------------------------------------------------------------- ' Miscellaneous Functions ' -------------------------------------------------------------------------------------------- '** '** 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 SUB UpdateWinG32(szOrig$) STATIC ' ' Check the version of wing32.dll since cannot get version ' checking for Win32 apps from Win16 ' FileNew$ = MakePath(szOrig$, "wing32.dll") FileOrig$ = MakePath(szOrig$, "wing32.xxx") IF IsWin32FileNewer(FileOrig$, FileNew$) THEN RemoveFile FileOrig$, cmoForce ELSE RemoveFile FileNew$, cmoForce RenameFilePlease FileOrig$, FileNew$ END IF END SUB FUNCTION CreateTitleINIFile(szINI$, szCD$, szDbPath$) STATIC AS INTEGER ramSize% = getSystemRAM() ramSizeStr$ = str$( ramSize% ) ramSizeStr$ = ltrim$( ramSizeStr$ ) CreateIniKeyValue szINI$, "METRICS", "CDROM", szCD$ , cmoOverwrite CreateIniKeyValue szINI$, "METRICS", "RAM", ramSizeStr$, cmoOverwrite CreateIniKeyValue szINI$, "METRICS", "VOLUME", "5" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "ROUTING", szDbPath$+"\ROUTING.MBF" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "RUNTIME", szDbPath$+"\RUNTIME.MBF" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "UNITBASE", szDbPath$+"\UNITBASE.MBF" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "FILEBASE", szDbPath$+"\FILEBASE.MBF" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "TIMELINE", szDbPath$+"\TL_BASE.MBF" , cmoOverwrite CreateIniKeyValue szINI$, "DBPATH", "GCACHE", szDbPath$+"\GCACHE.MBF" , cmoOverwrite CreateTitleINIFile = 0 END FUNCTION sub CopyTitleBinaries(pathBinary$, sectBinary$, sectCDilla$, sectEngine$, sectAccusoft$ ) static rem *** Copy list for Accusoft Pro Gold AddSectionFilesToCopyList sectAccusoft$, SrcDir$, pathBinary$ '$ifdef IsEncrypted rem *** Copy list for C-Dilla rem AddSectionFilesToCopyList Sect_CDillaSystem, SrcDir$, WinDir$ AddSectionFilesToCopyList sectCDilla$, SrcDir$, pathBinary$ '$endif rem *** Copy list for AV ENGINE AddSectionFilesToCopyList sectEngine$, SrcDir$, pathBinary$ rem *** Copy list for title AddSectionFilesToCopyList sectBinary$, SrcDir$, pathBinary$ dummy% = setDOSFileAttr( pathBinary$ + FN_Description, 0, 1 ) end sub sub CopyTitleDatabase(pathDatabase$, sectDatabase$ ) static AddSectionFilesToCopyList sectDatabase$, SrcDir$, pathDatabase$ end sub sub InstallTitle( pathRoot$, pathBinary$, pathDatabase$, iniFile$, dllFile$, iconNo$ ) static CDDrive$ = MID$(SrcDir$,1,1) CreateDir pathRoot$, cmoNone CreateDir pathBinary$, cmoNone CreateDir pathDatabase$, cmoNone dummy% = CreateTitleINIFile( pathBinary$+"\"+iniFile$, CDDrive$, pathDatabase$ ) rem *** Change file attribute of 'flagtowr.ttl' to Read-only+Hidden dummy% = setDOSFileAttr( pathBinary$ + FN_Description, 3, 1 ) rem *** create unitdb.mbf in title database directory to aid performance rem CopyFile pathDatabase+"\unitbase.mbf", pathDatabase+"\unitdb.mbf", cmoOverwrite, 0 end sub sub CreateMenuIcon( pathBinary$ ) static dim PMI_Title as string PMI_Title = string$( 110, 32 ) s% = readTitleDescription( PMI_Title, 110, pathBinary$ + FN_Description ) rem *** Create Program Manager Group CreateProgmanGroup PMG_FlagTower, "", cmoNone ShowProgmanGroup PMG_FlagTower, 1, cmoNone rem *** Create Icon(s) s% = pmDeleteItem( PMI_Title ) CreateProgmanItem PMG_FlagTower, PMI_Title, AVDest$ + "\prommenu.exe" + " " + AVDest$, "", cmoOverwrite end sub sub CreateTitleIcon( pathBinary$, dllFile$, iconNo$ ) static dim PMI_Title as string dim PMI_ReadMe as string dim Cmd_ReadMe as string PMI_Title = string$( 110, 32 ) s% = readTitleDescription( PMI_Title, 110, pathBinary$ + FN_Description ) rem *** Create Program Manager Group CreateProgmanGroup PMG_FlagTower, "", cmoNone ShowProgmanGroup PMG_FlagTower, 1, cmoNone rem *** Create Icon(s) s% = pmDeleteItem( PMI_Title ) TitleDLL$ = pathBinary$+"\"+dllFile$ Launch$ = pathBinary$+"\LAUNCH.EXE " if len( iconNo$ ) = 1 then '$ifdef IsEncrypted Other$ = pathBinary$+"\ZLAUNCH.EXE " '$else Other$ = Launch$ '$endif Other$ = Other$ + "," + iconNo$ else Other$ = pathBinary$ + iconNo$ + ",0" end if Other$ = Other$ + ",0,0," + pathBinary$ rem *** Icon for title CreateProgmanItem PMG_FlagTower, PMI_Title, Launch$+TitleDLL$, Other$, cmoOverwrite rem *** Icon for readme PMI_ReadMe = PMI_Title + " - Read me" Cmd_ReadMe = pathBinary$ + FN_ReadMe CreateProgmanItem PMG_FlagTower, PMI_ReadMe, Cmd_ReadMe , "" , cmoOverwrite end sub FUNCTION CheckVideoSystem(WinMajVer%, WinMinVer%, ProcType%) STATIC AS INTEGER 'Check if system have necessary processor and version of Windows running to install Video for Windows ''Video for Windows tests IF WinMajVer% < 3 OR (WinMajVer% = 3 AND WinMinVer% < 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 'Prevents installation on 286 IF ProcType% < 3 THEN i% = DoMsgBox("Video for Windows requires a 386 or greater processor or emulator.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF ' Use Wowexec to determine version of NT. 3.1 did not stamp wowexec and wow returns 3.1 as version IF OnWindowsNT() THEN WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe") IF WowVersion$ = "" THEN i% = DoMsgBox("Video for Windows does not run on Windows NT 3.1. Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF END IF END FUNCTION