home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* Corel Wild Cards 1.0 Setup '* hacked together by Chris Chan, -March 6, 1995 '************************************************************************** '$INCLUDE 'setupapi.inc' '$INCLUDE 'mscpydis.inc' ''System '$INCLUDE 'msdetect.inc' ''Detects Avalilable Disk Space ''Dialog ID's CONST WELCOME = 100 CONST ASKQUIT = 200 CONST DESTPATH = 300 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST OPTIONS = 800 CONST APPHELP = 900 CONST APPHELP2 = 1500 CONST APPHELP3 = 1700 CONST CHECK = 2500 CONST TOOBIG = 6300 CONST BADPATH = 6400 CONST REGANDREAD = 6500 CONST DESTGRP = 6600 CONST RESTARTII = 2700 ''Bitmap ID CONST LOGO = 1 ''Disk Sizes GLOBAL File1 GLOBAL File2 GLOBAL WantedDiskSize& ''File Types GLOBAL DEST$ ''Default destination directory. GLOBAL WINDRIVE$ ''Windows Drive Letter. GLOBAL OPTCUR$ ''Option selection from option dialog. GLOBAL CHECKSTATES$ GLOBAL RUNTIME$ GLOBAL AVITOOLS$ GLOBAL MDKTOOLS$ GLOBAL TOOLS$ SrcDir$ = GetSymbolValue("STF_SRCDIR") WinDir$ = GetWindowsDir() WinSysDir$ = GetWindowsSysDir() DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING DECLARE fUNCTION ExitWindowsExec LIB "User" (Exec$, Param$) AS INTEGER DECLARE SUB Reboot LIB "iniupd.dll" DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER '************************************************************************** '* WinG Setup Program '************************************************************************** '$DEFINE DEBUG ''Define for script development/debugging '' removed in wing merge -cchan $INCLUDE 'setupapi.inc' ''Dialog ID's CONST WINGWELCOME = 100 CONST WINGASKQUIT = 200 CONST WINGDESTPATH = 300 CONST WINGDESTPATH2 = 301 CONST WINGEXITFAILURE = 400 CONST WINGEXITQUIT = 600 CONST WINGEXITSUCCESS = 700 CONST WINGAPPHELP = 900 CONST WINGCHECK = 2500 CONST WINGBADPATH = 6400 CONST RESTART = 1000 ''File Types CONST WING_RUNFILES = 1 CONST WING_BUILDFILES = 2 ''Bitmap ID CONST WINGLOGO = 1 GLOBAL FILEDIALOG ''File path dialog ID GLOBAL WINGDEST$ ''Default destination directory. GLOBAL WINGCHECKSTATES$ ''Dialog list symbol names GLOBAL TMPDEST$ '' tmpfile destination GLOBAL bInstallDVA% DECLARE FUNCTION WinGMakePath (szDir$, szFile$) AS STRING DECLARE FUNCTION GetRealWindowsSysDir AS STRING DECLARE SUB UpdateWinG32 (szOrig$) DECLARE FUNCTION OnWin3x LIB "setuphlp.DLL" AS INTEGER ''DECLARE FUNCTION VflatdPresent LIB "setuphlp.DLL" AS INTEGER DECLARE FUNCTION GetRealSystemDir LIB "setuphlp.DLL" (szDir$,cbBuf%) AS INTEGER DECLARE FUNCTION RestartWindows LIB "setuphlp.DLL" AS INTEGER DECLARE FUNCTION IsWin32FileNewer LIB "setuphlp.DLL" (szOrig$,szNew$) AS INTEGER DECLARE SUB RenameFilePlease LIB "setuphlp.DLL" (szOrig$,szNew$) WINGINIT: bInstallDVA% = 0 WINGCUIDLL$ = "wingcui.dll" ''Custom wing interface dll WINGHELPPROC$ = "FHelpDlgProc" ''Help dialog procedure CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure SetBitmap WINGCUIDLL$, WINGLOGO SetTitle "Corel Wild Cards Installation" szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "setup.inf" END IF ReadInfFile szInf$ WINGWELCOME: WINGCHECK: WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF ''cc removed the wing requester -cchan ''cc sz$ = UIStartDlg(WINGCUIDLL$, WINGCHECK, "FCheckDlgProc", WINGAPPHELP, WINGHELPPROC$) ''cc IF sz$ = "CONTINUE" THEN ''cc UIPop 1 ''cc ELSE ''cc GOSUB WINGASKQUIT ''cc GOTO WINGCHECK ''cc END IF '' .....Actual WinG Realtime installation ...-cchan SrcDir$ = GetSymbolValue("STF_SRCDIR") WINGDEST$ = GetWindowsSysDir AddSectionFilesToCopyList "runtime", SrcDir$, WINGDEST$ ' ' only use DVA on Windows 3.x ' IF OnWin3x() = 1 THEN AddSectionFilesToCopyList "dva", SrcDir$, WINGDEST$ IF VflatdPresent() = 0 THEN CreateSysIniKeyValue GetWindowsDir + "system.ini", "386Enh", "device", GetWindowsSysDir+"dva.386", cmoOverwrite bInstallDVA% = 1 END IF END IF WINGDEST$ = GetRealWindowsSysDir AddSectionFilesToCopyList "wing32", SrcDir$, WINGDEST$ Dest1$ = WinGMakePath(WINGDEST$,"wing32.dll") Dest2$ = WinGMakePath(WINGDEST$,"wing32.xxx") RenameFilePlease Dest1$,Dest2$ CopyFilesInCopyList UpdateWinG32 GetRealWindowsSysDir() WINGQUIT: ON ERROR GOTO WINGERRQUIT IF ERR = 0 THEN dlg% = WINGEXITSUCCESS ELSEIF ERR = STFQUIT THEN dlg% = WINGEXITQUIT ELSE dlg% = WINGEXITFAILURE END IF WINGQUITL1: GOTO INIT ''cc if dlg% = WINGEXITSUCCESS then ''cc temp go until WinG dialogs are fixed ''cc sz$ = UIStartDlg(WINGCUIDLL$, RESTART, "FInfoDlgProc", WINGAPPHELP, WINGHELPPROC$) ''cc UIPop 1 ''cc IF sz$ = "CONTINUE" THEN ''cc rc% = RestartWindows ''cc ENDIF ''cc endif sz$ = UIStartDlg(WINGCUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO WINGQUITL1 END IF UIPop 1 END WINGERRQUIT: i% = DoMsgBox("Microsoft setup sources were not installed correctly!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND) END WINGASKQUIT: sz$ = UIStartDlg(WINGCUIDLL$, WINGASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll ERROR STFQUIT ELSEIF sz$ = "REACTIVATE" THEN GOTO WINGASKQUIT ELSE UIPop 1 END IF RETURN '** '** 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 WinGMakePath (szDir$, szFile$) STATIC AS STRING IF szDir$ = "" THEN WinGMakePath = szFile$ ELSEIF szFile$ = "" THEN WinGMakePath = szDir$ ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN WinGMakePath = szDir$ + szFile$ ELSE WinGMakePath = szDir$ + "\" + szFile$ END IF END FUNCTION FUNCTION GetRealWindowsSysDir STATIC AS STRING szBuf$ = string$(260, 32) cbBuf% = GetRealSystemDir(szBuf$, 260) IF cbBuf% = 0 THEN ERROR STFERR ELSE IF cbBuf% > 259 THEN res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK) ERROR STFERR END IF szBuf$ = RTRIM$(szBuf$) IF MID$(szBuf$, 1, 1) = "\" THEN szBuf$ = MID$(CURDIR$, 1, 2) + szBuf$ ELSEIF MID$(szBuf$, 2, 1) <> ":" THEN szBuf$ = MID$(CURDIR$, 1, 3) + szBuf$ END IF IF MID$(szBuf$, LEN(szBuf$), 1) <> "\" THEN szBuf$ = szBuf$ + "\" END IF GetRealWindowsSysDir = szBuf$ END IF szBuf$ = "" END FUNCTION SUB UpdateWinG32 (szOrig$) STATIC ' ' Here we check the version ourselves of wing32.dll, since ' we can't get version checking for Win32 apps from Win16 ' FileNew$ = WinGMakePath(szOrig$, "wing32.dll") FileOrig$ = WinGMakePath(szOrig$, "wing32.xxx") IF IsWin32FileNewer( FileOrig$, FileNew$ ) THEN RemoveFile FileOrig$, cmoForce ELSE RemoveFile FileNew$, cmoForce ' get rid of new file RenameFilePlease FileOrig$,FileNew$ ' put back old file END IF END SUB INIT: ClearCopyList CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure MajorVer% = GetWindowsMajorVersion() MinorVer% = GetWindowsMinorVersion() IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 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 SetBitmap CUIDLL$, LOGO SetTitle "Corel Wild Cards Installation" szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF" END IF ReadInfFile szInf$ WINDRIVE$ = MID$(WinDir$, 1, 1) cdromdrive$ = MID$(SrcDir$, 1, 3) ClearCopyList '' Mike: set to hard drive space needed for Video for Windows (probably leave at 1689000) WantedDiskSize&=1689000 DiskSize&=GetFreeSpaceForDrive(WINDRIVE$) If WantedDiskSize& > DiskSize& then GOSUB TOOBIG ERROR STFQUIT EndIf '' Setting Video for Windows RUNTIME files to be copied AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$ AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "Indeo-ini", SrcDir$, WinDir$ CopyFilesInCopyList ''Updating WIN.INI and SYSTEM.INI IF VflatdPresent() = 0 THEN CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite 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.IV31", "indeov.drv", 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", "indeov.drv", cmoOverwrite END IF CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "indeov.drv", 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 Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg")) '' and, oh yeah I almost forgot.., Wildcards itself DEST$ = WINDRIVE$ + ":\wildcard" 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 UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETPATHL1 ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO WELCOME ELSE GOSUB ASKQUIT GOTO GETPATH END IF CreateDir DEST$, cmoNone DESTDRIVE$ = MID$(DEST$, 1, 1) ClearCopyList AddSectionFilesToCopyList "wildcards", SrcDir$, DEST$ '' Mike: set to hard drive space needed for Wildcards WantedDiskSize&=10000000 DiskSize&=GetFreeSpaceForDrive(DESTDRIVE$) If WantedDiskSize& > DiskSize& then GOSUB TOOBIG ERROR STFQUIT EndIf SetRestartDir WinDir$ CopyFilesInCopyList '' Mike: Win95 Autorun feature CreateIniKeyValue WinDir$ + "wc.ini", "wildcards", "dir", DEST$, cmoOverwrite '' Run the Video For Windows profiler AFTER everything, for completeness '' Mplayer '' cc -Don't: who cares ! CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite Run ("profdisp.exe") ' ******* Mike, modify this section for the program group and icon GETGROUP: DESTGROUP$ = "Corel CD Home" SetSymbolValue "EditTextIn", DESTGROUP$ SetSymbolValue "EditFocus", "END" GETGROUPL1: sz$ = UIStartDlg(CUIDLL$, DESTGRP, "FEditDlgProc", 0, "") DESTGROUP$ = GetSymbolValue("EditTextOut") IF sz$ = "CONTINUE" THEN '' Mike...This is a really stupid test to ensure the user has entered something IF DESTGROUP = "" OR DESTGROUP = " " OR DESTGROUP = " " OR DESTGROUP = " " THEN GOTO GETGROUPL1 END IF UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETGROUPL1 ELSE GOSUB ASKQUIT GOTO GETGROUP END IF CreateProgmanGroup DESTGROUP$, "", cmoNone ShowProgmanGroup DESTGROUP$, 1, cmoNone CreateProgmanItem DESTGROUP$, "Corel Wild Cards", DEST$+"\wildcard.exe" , "", cmoOverwrite '' Mike: rename test.txt to readme CreateProgmanItem DESTGROUP$, "Corel Wild Cards Read Me", "notepad.exe "+DEST$+"\readme.txt" , "", cmoOverwrite 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 '' Message: (remind user of registration) '' Message: (ask if user wants to read the readme file) sz$ = UIStartDlg(CUIDLL$, REGANDREAD, "FInfoDlgProc", 0, "") UIPop 1 IF sz$ = "CONTINUE" THEN '' yes, read the readme file... '' Mike,rename the file test.txt... Run("notepad.exe "+DEST$+"\readme.txt") ENDIF RESTARTWINDOWS: 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 ERRQUIT: i% = DoMsgBox("Setup sources were corrupted!", "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 TOOBIG: sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO TOOBIG END IF UIPop 1 RETURN BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN '** '** 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