home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* Elastic Reality Demo Setup '************************************************************************** '$INCLUDE 'setupapi.inc' '$INCLUDE 'msdetect.inc' '$INCLUDE 'msregdb.inc' CONST WELCOME = 100 CONST ASKQUIT = 200 CONST DESTPATH = 300 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST EXITSUCCESSR = 701 CONST OPTIONS = 800 CONST APPHELP = 900 CONST CUSTINST = 6200 CONST TOOBIG = 6300 CONST BADPATH = 6400 CONST GETNAMEORG = 7500 CONST LOGO = 1 CONST ERFILES = 1 CONST TJFILES = 2 CONST TUTFILES = 3 CONST VFWFILES = 4 CONST WIN32FILES = 5 CONST REQFILES = 6 CONST WS_VISIBLE =&H10000000 CONST WS_BORDER =&H00800000 CONST WS_CLIPCHILDREN =&H02000000 CONST GWL_STYLE =-16 CONST SW_SHOWMAXIMIZED =3 CONST SW_SHOWMINIMIZED =2 DECLARE SUB ShowWindow LIB "user.exe" (hWnd%, iShow%) DECLARE SUB SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) GLOBAL DESTSYS$ GLOBAL DESTWIN$ GLOBAL DEST$ GLOBAL DEST32S$ GLOBAL DESTFREE$ GLOBAL WINDRIVE$ GLOBAL ERNEEDS$ GLOBAL TJNEEDS$ GLOBAL TUTNEEDS$ GLOBAL WIN32NEEDS$ GLOBAL VFWNEEDS$ GLOBAL REQNEEDS$ GLOBAL ALLNEEDS$ GLOBAL EXTRACOSTS$ GLOBAL WINDRIVECOST$ GLOBAL CHECKSTATES$ GLOBAL STATUSTEXT$ GLOBAL DRIVETEXT$ GLOBAL hWnd% GLOBAL AlwaysCopy% DECLARE SUB AddOptFilesToCopyList (ftype%) DECLARE SUB RecalcOptFiles (ftype%) DECLARE SUB RecalcPath DECLARE SUB SetDriveStatus DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING DECLARE FUNCTION VflatdPresent LIB "INIUPD.DLL" AS INTEGER DECLARE SUB UpdateSystemIni DECLARE SUB RebootSystem DECLARE SUB MakeSystemIni LIB "WIN32INI.DLL" (arg1$, arg2$) DECLARE FUNCTION PagingEnabled LIB "WIN32INI.DLL" AS INTEGER DECLARE FUNCTION ShareEnabled LIB "WIN32INI.DLL" AS INTEGER DECLARE FUNCTION IsWin32sLoaded LIB "WIN32INI.DLL" (arg1$) AS INTEGER DECLARE FUNCTION OnWindowsNT LIB "WIN32INI.dll" AS INTEGER DECLARE FUNCTION ExitWindowsExec LIB "USER.EXE" (arg1$, arg2$) AS INTEGER INIT: CUIDLL$ = "mscuistf.dll" HELPPROC$ = "FHelpDlgProc" SetTitle "Elastic Reality Demo Setup" hWnd% = HwndFrame() SetWindowLong hWnd%, GWL_STYLE, WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN ShowWindow hWnd%, SW_SHOWMAXIMIZED SetBitmap CUIDLL$, LOGO szOldVer$ ="1.00.000 " AlwaysCopy% = 0 szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "EREALITY.INF" END IF ReadInfFile szInf$ DEST$ = "C:\EREALITY" DESTSYS$ = GetWindowsSysDir() DESTWIN$ = GetWindowsDir() DEST32S$ = DESTSYS + "WIN32S\" DESTFREE$ = MID$(DESTSYS$,1,3) + "WIN32APP\FREECELL\" WINDRIVE$ = MID$(GetWindowsDir, 1, 1) DISABLEW32S$ = "DisableWin32s" DISABLEVFW$ = "DisableVFW" CHECKSTATES$ = "CheckItemsState" STATUSTEXT$ = "StatusItemsText" DRIVETEXT$ = "DriveStatusText" WIN32INSTALLED% = 0 WIN32DISABLED% = 0 VFWDISABLED% = 0 FOR i% = 1 TO 3 STEP 1 AddListItem CHECKSTATES$, "ON" NEXT i% IF OnWindowsNT() THEN IF GetWindowsMode < 2 THEN i% = DoMsgBox("This software is for Intel processors only", "Installation Problem", MB_ICONEXCLAMATION+MB_OK+MB_TASKMODAL) END END IF i% = DoMsgBox("This version of Video for Windows does not run on Windows NT.", "No Video for Windows", MB_TASKMODAL+MB_ICONINFORMATION+MB_OK) WIN32INSTALLED% = 1 WIN32DISABLED% = 1 VFWDISABLED% = 1 ELSE IF (GetWindowsMajorVersion < 3) OR ((GetWindowsMajorVersion = 3) AND (GetWindowsMinorVersion < 1)) THEN i% = DoMsgBox("Microsoft Windows version 3.1 or greater is required for this software. Please upgrade your version of Windows.", "Installation Problem", MB_ICONEXCLAMATION+MB_OK+MB_TASKMODAL) END END IF IF (GetWindowsMajorVersion >= 4) OR (GetWindowsMode < 2) OR (PagingEnabled() = 0) THEN WIN32DISABLED% = 1 IF GetWindowsMajorVersion >= 4 THEN WIN32INSTALLED% = 1 END IF IF GetWindowsMode < 2 THEN i% = DoMsgBox("Windows must be run in 386 Enhanced mode.", "Win32s requires Enhanced Mode Windows", MB_TASKMODAL+MB_ICONINFORMATION+MB_OK) END IF IF PagingEnabled() = 0 THEN i% = DoMsgBox("Use the Control Panel 386 Enhanced icon and configure Windows using the Virtual Memory option.", "Win32s requires Virtual Memory", MB_TASKMODAL+MB_ICONINFORMATION+MB_OK) END IF ELSE szNewVer$ = GetVersionOfFile( GetSymbolValue("STF_SRCDIR") + "WIN32S16.DLL" ) sz$ = GetIniKeyString (DESTSYS$ + "WIN32S.INI", "Win32s", "Setup") IF sz$ = "0" THEN AlwaysCopy% = 1 ELSEIF sz$ = "1" THEN i% = DoesFileExist( DESTSYS$ + "W32SYS.DLL", femExists ) IF i% = 1 THEN i% = IsWin32sLoaded( szOldVer$ ) ENDIF IF (i% <> 0) AND ((szNewVer$ = szOldVer$) OR (szNewVer$ < szOldVer$)) THEN WIN32DISABLED% = 1 WIN32INSTALLED% = 1 END IF END IF END IF IF (GetWindowsMajorVersion < 3) OR ((GetWindowsMajorVersion = 3) AND (GetWindowsMinorVersion < 10)) THEN i% = DoMsgBox("Video for Windows requires Microsoft Windows version 3.10 or greater.", "No Video for Windows", MB_ICONINFORMATION+MB_OK+MB_TASKMODAL) VFWDISABLED% = 1 ENDIF END IF IF VFWDISABLED% THEN AddListItem CHECKSTATES$, "OFF" SetSymbolValue DISABLEVFW$, "1" ELSE AddListItem CHECKSTATES$, "ON" END IF IF WIN32DISABLED% THEN AddListItem CHECKSTATES$, "OFF" SetSymbolValue DISABLEW32S$, "1" ELSE AddListItem CHECKSTATES$, "ON" END IF AddListItem CHECKSTATES$, "ON" FOR i% = 1 TO 6 STEP 1 AddListItem STATUSTEXT$, "" NEXT i% FOR i% = 1 TO 7 STEP 1 AddListItem DRIVETEXT$, "" NEXT i% ReplaceListItem DRIVETEXT$, 7, DEST$ ERNEEDS$ = "ERNeeds" TJNEEDS$ = "TJNeeds" TUTNEEDS$ = "TUTNeeds" VFWNEEDS$ = "VFWNeeds" WIN32NEEDS$ = "Win32Needs" REQNEEDS$ = "ReqNeeds" ALLNEEDS$ = "AllNeeds" EXTRACOSTS$ = "ExtraCosts" IF OnWindowsNT() = 0 THEN cost& = 7168 cost& = cost& + GetSizeOfFile (DESTWIN$ + "WIN.INI") + 512 ELSE cost& = 0 END IF WINDRIVECOST$ = STR$(cost&) FOR i% = 1 TO 26 STEP 1 AddListItem EXTRACOSTS$, "0" NEXT i% RecalcPath SetDriveStatus WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "REACTIVATE" THEN GOTO WELCOME ELSEIF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF CUSTINST: sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN CursorSave% = ShowWaitCursor() ClearCopyList AddOptFilesToCopyList ERFILES AddOptFilesToCopyList TJFILES AddOptFilesToCopyList TUTFILES AddOptFilesToCopyList VFWFILES AddOptFilesToCopyList WIN32FILES AddOptFilesToCopyList REQFILES StillNeed& = GetCopyListCost(EXTRACOSTS$, ALLNEEDS$, "") RestoreCursor CursorSave% IF StillNeed& > 0 THEN GOTO TOOBIG END IF IF (GetListItem(CHECKSTATES$, ERFILES) <> "ON") AND (GetListItem(CHECKSTATES$, TJFILES) <> "ON") THEN IF (GetListItem(CHECKSTATES$, VFWFILES) <> "ON") AND (GetListItem(CHECKSTATES$, WIN32FILES) <> "ON") AND (GetListItem(CHECKSTATES$, TUTFILES) <> "ON") THEN GOTO CUSTINST END IF END IF UIPop 1 GOTO INSTALL ELSEIF sz$ = "PATH" THEN GOTO GETPATH ELSEIF sz$ = "CHK1" THEN RecalcOptFiles ERFILES IF GetListItem(CHECKSTATES$, TJFILES) <> "ON" THEN RecalcOptFiles REQFILES END IF SetDriveStatus GOTO CUSTINST ELSEIF sz$ = "CHK2" THEN RecalcOptFiles TJFILES IF GetListItem(CHECKSTATES$, ERFILES) <> "ON" THEN RecalcOptFiles REQFILES END IF SetDriveStatus GOTO CUSTINST ELSEIF sz$ = "CHK3" THEN RecalcOptFiles TUTFILES SetDriveStatus GOTO CUSTINST ELSEIF sz$ = "CHK4" THEN RecalcOptFiles VFWFILES SetDriveStatus GOTO CUSTINST ELSEIF sz$ = "CHK5" THEN IF GetListItem(CHECKSTATES$, WIN32FILES) <> "ON" THEN i% = DoMsgBox("Win32s MUST be installed for the Elastic Reality Demo to function. Make sure you really want to disable its installation.", "Win32s is Required", MB_ICONEXCLAMATION+MB_OK+MB_TASKMODAL) END IF RecalcOptFiles WIN32FILES SetDriveStatus GOTO CUSTINST ELSEIF sz$ = "REACTIVATE" THEN RecalcPath SetDriveStatus GOTO CUSTINST ELSE GOSUB ASKQUIT GOTO CUSTINST END IF INSTALL: SrcDir$ = GetSymbolValue("STF_SRCDIR") SetRestartDir DESTWIN$ IF GetListItem(CHECKSTATES$, WIN32FILES) = "ON" THEN CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Setup", "0", cmoOverwrite ERR = 0 END IF IF GetListItem(CHECKSTATES$, ERFILES) = "ON" THEN CreateDir MakePath(DEST$, "ER_PROJS"), cmoNone END IF IF GetListItem(CHECKSTATES$, TJFILES) = "ON" THEN CreateDir MakePath(DEST$, "TJ_PROJS"), cmoNone END IF CopyFilesInCopyList IF GetListItem(CHECKSTATES$, VFWFILES) = "ON" THEN IF VflatdPresent() = 0 THEN CreateSysIniKeyValue DESTWIN$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite END IF CreateIniKeyValue DESTWIN$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite CreateIniKeyValue DESTWIN$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite CreateIniKeyValue DESTWIN$ + "system.ini", "Drivers", "VIDC.IV31", "indeov.drv", cmoOverwrite CreateIniKeyValue DESTWIN$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21") IF I% = 0 THEN CreateIniKeyValue DESTWIN$ + "system.ini", "Drivers", "VIDC.RT21", "indeov.drv", cmoOverwrite END IF CreateIniKeyValue DESTWIN$ + "system.ini", "Drivers", "VIDC.YVU9", "indeov.drv", cmoOverwrite CreateIniKeyValue DESTWIN$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite CreateIniKeyValue DESTWIN$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite CreateIniKeyValue DESTWIN$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite CreateIniKeyValue DESTWIN$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite CreateIniKeyValue DESTWIN$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite CreateIniKeyValue DESTWIN$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite CreateIniKeyValue DESTWIN$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite CreateIniKeyValue DESTWIN$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite Run ("regedit.exe /s " + MakePath(DESTWIN$, "mplayer.reg")) Run ("regedit.exe /s " + MakePath(DESTSYS$, "OLE2.reg")) Run ("regedit.exe /s " + MakePath(DESTSYS$, "cleanup.reg")) CreateProgmanItem "Accessories", "Media Player", MakePath(DESTWIN$, "mplayer.exe"), "", cmoOverwrite Run ("profdisp.exe") END IF IF GetListItem(CHECKSTATES$, WIN32FILES) = "ON" THEN UpdateSystemIni '' Terminate if unhandled fatal error IF ERR <> 0 THEN GOTO QUIT END IF CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Setup", "1", cmoOverwrite CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Version", szNewVer$, cmoOverwrite CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Nls", "AnsiCP", "1252", cmoOverwrite IF DoesFileExist( DESTSYS$ + "WIN32S.INI", femExists ) THEN CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Freecell", "Setup", "1", cmoOverwrite CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Freecell", "Version", szNewVer$, cmoOverwrite END IF CreateProgmanGroup "Win32 Applications", "", cmoNone ShowProgmanGroup "Win32 Applications", 1, cmoNone CreateProgmanItem "Win32 Applications", "Freecell", DESTFREE$ + "FREECELL.EXE", "", cmoOverwrite IF ShareEnabled() = 0 THEN i% = DoMsgBox( "File-sharing must be enabled for Win32s. Run SHARE.EXE before starting Windows or add SHARE.EXE to your AUTOEXEC.BAT file.", "SHARE.EXE is not loaded", MB_TASKMODAL+MB_ICONINFORMATION+MB_OK) END IF END IF IF (GetListItem(CHECKSTATES$, ERFILES) = "ON") OR (GetListItem(CHECKSTATES$, TJFILES) = "ON") THEN IF GetListItem(CHECKSTATES$, ERFILES) = "ON" THEN CreateRegKeyValue "erealitydemo", "Elastic Reality Demo" CreateRegKeyValue "erealitydemo\shell\open\command", "er.exe %1" CreateRegKeyValue ".er", "erealitydemo" END IF IF GetListItem(CHECKSTATES$, TJFILES) = "ON" THEN CreateRegKeyValue "transjammerdemo", "TransJammer Demo" CreateRegKeyValue "transjammerdemo\shell\open\command", "trnsjmmr.exe %1" END IF ShowWindow hWnd%, SW_SHOWMINIMIZED CreateProgmanGroup "Elastic Reality", "", cmoNone ShowProgmanGroup "Elastic Reality", 1, cmoNone IF GetListItem(CHECKSTATES$, ERFILES) = "ON" THEN CreateProgmanItem "Elastic Reality", "Elastic Reality Demo", MakePath(DEST$, "PROGRAMS\ER.EXE"), ",,,," + MakePath(DEST$, "ER_PROJS"), cmoOverwrite END IF IF GetListItem(CHECKSTATES$, TJFILES) = "ON" THEN CreateProgmanItem "Elastic Reality", "TransJammer Demo", MakePath(DEST$, "PROGRAMS\TRNSJMMR.EXE"), ",,,," + MakePath(DEST$, "TJ_PROJS"), cmoOverwrite END IF CreateProgmanItem "Elastic Reality", "Elastic Reality Demo ReadMe", "NOTEPAD.EXE " + MakePath(DEST$, "PROGRAMS\README.TXT"), "", cmoOverwrite CreateProgmanItem "Elastic Reality", "Elastic Reality Demo Tutorials", "NOTEPAD.EXE " + MakePath(DEST$, "PROGRAMS\GETSTART.TXT"), "", cmoOverwrite ShowWindow hWnd%, SW_SHOWMAXIMIZED IF (OnWindowsNT() = 0) AND (IsDirWritable(DESTWIN$) <> 0) THEN CopyFile DESTWIN$ + "WIN.INI", DESTWIN$ + "WININI.ERI", cmoOverwrite, 0 IF GetListItem(CHECKSTATES$, ERFILES) = "ON" THEN CreateIniKeyValue "win.ini", "programs", "er.exe", MakePath(DEST$, "PROGRAMS\ER.EXE"), cmoOverwrite END IF IF GetListItem(CHECKSTATES$, TJFILES) = "ON" THEN CreateIniKeyValue "win.ini", "programs", "trnsjmmr.exe", MakePath(DEST$, "PROGRAMS\TRNSJMMR.EXE"), cmoOverwrite END IF END IF END IF QUIT: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN IF (GetListItem(CHECKSTATES$, WIN32FILES) = "ON") OR (GetListItem(CHECKSTATES$, VFWFILES) = "ON") THEN dlg% = EXITSUCCESSR ELSE dlg% = EXITSUCCESS END IF 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 IF dlg% = EXITSUCCESSR THEN RebootSystem IF GetListItem(CHECKSTATES$, WIN32FILES) = "ON" THEN CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Setup", "0", cmoOverwrite i% = DoMsgBox("Win32s is not properly configured and Win32s Setup must be run again.", "Unable to Restart Windows", MB_ICONEXCLAMATION+MB_OK+MB_TASKMODAL) END IF END IF END ERRQUIT: i% = DoMsgBox("Setup sources were corrupted, call Elastic Reality tech. support (608) 273-6585", "Setup Message", MB_ICONEXCLAMATION+MB_OK+MB_TASKMODAL) END GETPATH: SetSymbolValue "EditTextIn", DEST$ SetSymbolValue "EditFocus", "ALL" GETPATHL1: sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN olddest$ = DEST$ DEST$ = GetSymbolValue("EditTextOut") IF IsDirWritable(DEST$) = 0 THEN DEST$ = olddest$ GOSUB BADPATH GOTO GETPATHL1 END IF UIPop 1 IF LEN(DEST$) > 23 THEN ReplaceListItem DRIVETEXT$, 7, MID$(DEST$, 1, 23)+"..." ELSE ReplaceListItem DRIVETEXT$, 7, DEST$ END IF IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN RecalcPath SetDriveStatus END IF olddest$ = "" GOTO CUSTINST ELSEIF sz$ = "REACTIVATE" THEN RecalcPath SetDriveStatus GOTO GETPATHL1 ELSEIF sz$ = "EXIT" THEN GOSUB ASKQUIT GOTO GETPATHL1 ELSE UIPop 1 GOTO CUSTINST END IF TOOBIG: sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "REACTIVATE" THEN RecalcPath SetDriveStatus GOTO TOOBIG ELSEIF sz$ = "CONTINUE" THEN UIPop 2 GOTO INSTALL ELSE UIPop 1 GOTO CUSTINST END IF BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN RecalcPath SetDriveStatus GOTO BADPATH END IF UIPop 1 RETURN ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FInfoDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll ERROR STFQUIT ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN SUB AddOptFilesToCopyList (ftype%) STATIC IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN SrcDir$ = GetSymbolValue("STF_SRCDIR") IF ftype% = ERFILES THEN AddSectionFilesToCopyList "ERPROGRAMS", SrcDir$, MakePath(DEST$, "PROGRAMS") ELSEIF ftype% = TJFILES THEN AddSectionFilesToCopyList "TJPROGRAMS", SrcDir$, MakePath(DEST$, "PROGRAMS") AddSectionFilesToCopyList "TJPROJECTS", SrcDir$, MakePath(DEST$, "TJ_PROJS") AddSectionFilesToCopyList "TJIMAGES", SrcDir$, MakePath(DEST$, "IMAGES") AddSectionFilesToCopyList "TJSTAMPS", SrcDir$, MakePath(DEST$, "IMAGES\STAMPS") ELSEIF ftype% = TUTFILES THEN AddSectionFilesToCopyList "ERPROJECTS", SrcDir$, MakePath(DEST$, "ER_PROJS") AddSectionFilesToCopyList "ERIMAGES", SrcDir$, MakePath(DEST$, "IMAGES") AddSectionFilesToCopyList "ERSTAMPS", SrcDir$, MakePath(DEST$, "IMAGES\STAMPS") AddSectionFilesToCopyList "SHAPES", SrcDir$, MakePath(DEST$, "SHAPES") ELSEIF ftype% = VFWFILES THEN AddSectionFilesToCopyList "VFWWinfiles", SrcDir$, DESTWIN$ AddSectionFilesToCopyList "VFWSysfiles", SrcDir$, DESTSYS$ ELSEIF ftype% = WIN32FILES THEN IF AlwaysCopy% = 1 THEN AddSectionFilesToCopyList "_WindowsSystem", SrcDir$, DESTSYS$ AddSectionFilesToCopyList "_WindowsSystemWin32s", SrcDir$, DESTSYS$ + "WIN32S\" ELSE AddSectionFilesToCopyList "WindowsSystem", SrcDir$, DESTSYS$ AddSectionFilesToCopyList "WindowsSystemWin32s", SrcDir$, DESTSYS$ + "WIN32S\" END IF AddSectionFilesToCopyList "Win32appFreecell", SrcDir$, DESTFREE$ AddSectionFilesToCopyList "Win32sSystemObsoleteFiles", SrcDir$, DESTSYS$ + "WIN32S\" ELSEIF ftype% = REQFILES THEN IF (GetListItem(CHECKSTATES$, ERFILES) = "ON") OR (GetListItem(CHECKSTATES$, TJFILES) = "ON") THEN AddSectionFilesToCopyList "PROGRAMS", SrcDir$, MakePath(DEST$, "PROGRAMS") AddSectionFilesToCopyList "HIIP", SrcDir$, MakePath(DEST$, "HIIP") AddSectionFilesToCopyList "LOADERS", SrcDir$, MakePath(DEST$, "HIIP\LOADERS") AddSectionFilesToCopyList "SAVERS", SrcDir$, MakePath(DEST$, "HIIP\SAVERS") IF OnWindowsNT() THEN AddSectionFilesToCopyList "NTSYSFILES", SrcDir$, DESTWIN$ + "SYSTEM32" ELSE AddSectionFilesToCopyList "SYSFILES", SrcDir$, DESTSYS$ END IF END IF END IF SrcDir$ = "" END IF END SUB SUB RecalcOptFiles (ftype%) STATIC CursorSave% = ShowWaitCursor() ClearCopyList AddOptFilesToCopyList ftype% fExtra% = 0 IF ftype% = ERFILES THEN ListSym$ = ERNEEDS$ ELSEIF ftype% = TJFILES THEN ListSym$ = TJNEEDS$ ELSEIF ftype% = TUTFILES THEN ListSym$ = TUTNEEDS$ ELSEIF ftype% = VFWFILES THEN ListSym$ = VFWNEEDS$ ELSEIF ftype% = WIN32FILES THEN ListSym$ = WIN32NEEDS$ ELSEIF ftype% = REQFILES THEN ListSym$ = REQNEEDS$ IF (GetListItem(CHECKSTATES$, ERFILES) = "ON") OR (GetListItem(CHECKSTATES$, TJFILES) = "ON") THEN ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1 ReplaceListItem EXTRACOSTS$, ndrive%, WINDRIVECOST$ fExtra% = 1 END IF END IF StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "") cost& = 0 FOR i% = 1 TO 26 STEP 1 cost& = cost& + VAL(GetListItem(ListSym$, i%)) NEXT i% ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K" IF fExtra% THEN ReplaceListItem EXTRACOSTS$, ndrive%, "0" END IF RestoreCursor CursorSave% ListSym$ = "" END SUB SUB RecalcPath STATIC CursorSave% = ShowWaitCursor() RecalcOptFiles ERFILES RecalcOptFiles TJFILES RecalcOptFiles TUTFILES RecalcOptFiles VFWFILES RecalcOptFiles WIN32FILES RecalcOptFiles REQFILES RestoreCursor CursorSave% END SUB SUB SetDriveStatus STATIC drive$ = MID$(DEST$, 1, 1) ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1 cost& = VAL(GetListItem(ERNEEDS$, ndrive%)) + VAL(GetListItem(TJNEEDS$, ndrive%)) + VAL(GetListItem(TUTNEEDS$, ndrive%)) + VAL(GetListItem(WIN32NEEDS$, ndrive%)) + VAL(GetListItem(VFWNEEDS$, ndrive%)) + VAL(GetListItem(REQNEEDS$, ndrive%)) free& = GetFreeSpaceForDrive(drive$) ReplaceListItem DRIVETEXT$, 1, drive$ + ":" ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K" ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K" IF drive$ = WINDRIVE$ THEN ReplaceListItem DRIVETEXT$, 4, "" ReplaceListItem DRIVETEXT$, 5, "" ReplaceListItem DRIVETEXT$, 6, "" ELSE ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1 cost& = VAL(GetListItem(ERNEEDS$, ndrive%)) + VAL(GetListItem(TJNEEDS$, ndrive%)) + VAL(GetListItem(TUTNEEDS$, ndrive%)) + VAL(GetListItem(WIN32NEEDS$, ndrive%)) + VAL(GetListItem(VFWNEEDS$, ndrive%)) + VAL(GetListItem(REQNEEDS$, ndrive%)) IF cost& = 0 THEN ReplaceListItem DRIVETEXT$, 4, "" ReplaceListItem DRIVETEXT$, 5, "" ReplaceListItem DRIVETEXT$, 6, "" ELSE free& = GetFreeSpaceForDrive(WINDRIVE$) ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":" ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K" ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K" END IF END IF END SUB SUB UpdateSystemIni STATIC VxDPath$ = DEST32S$ + "W32S.386" SystemIniPath$ = GetWindowsDir() MakeSystemIni SystemIniPath$, VxdPath$ END SUB SUB RebootSystem STATIC i% = RestartListEmpty() IF i% = 0 THEN i% = ExitExecRestart() RemoveFile GetWindowsDir() + "_MSRSTRT.EXE", cmoForce RemoveFile GetWindowsDir() + "_MSSETUP.BAT", cmoForce ELSE i% = ExitWindowsExec( GetWindowsDir() + "_MSRSTRT.EXE", "_MSSETUP.BAT" ) ENDIF 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