home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* Media Merge Setup '************************************************************************** '$DEFINE DEBUG ''Define for script development/debugging '$INCLUDE 'setupapi.inc' '$INCLUDE 'mscpydis.inc' '$INCLUDE 'msdetect.inc' DECLARE FUNCTION AInitSystem1 LIB "atiwtstf.dll" (DEST$, szName$, szOrg$) AS INTEGER DECLARE FUNCTION DefWindowProc LIB "user" (hwnd%, msg%, wparam%, lparam&) as long DECLARE FUNCTION RunShellExe LIB "atiwtstf.dll" (hwnd%, szFile$, szDir$) AS INTEGER ''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 BADPATH = 6400 ''Bitmap ID CONST LOGO = 1 ''Disk Sizes CONST WINFSIZE = 604000 CONST APPFSIZE = 4270000 CONST DATASIZE = 3993000 CONST ALLFSIZE = 8867000 GLOBAL DEST$ ''Default destination directory. GLOBAL WINDIR$ ''Window directory. GLOBAL SYSDIR$ ''Windows system directory GLOBAL ISCD ''Is installation on CD ? If it is, ISCD = 1 GLOBAL OPTCUR$ ''Installation options GLOBAL CPYSIZE& ''Size of files to be copied DECLARE SUB Install DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING INIT: CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure SetBitmap CUIDLL$, LOGO SetTitle "MEDIAMERGE 1.0" ''Maximize Window l&=DefWindowProc(HwndFrame(), 274, 61488, 0) MajorVer% = GetWindowsMajorVersion() IF MajorVer% < 3 THEN i% = DoMsgBox("Micosoft Windows version 3.0 or greater is required for this software. Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szTemp$ = GetSymbolValue("STF_SRCDIR") SPLITPATH szTemp$, drv$, dir$, filename$, ext$ IF (drv$ = "A:") OR (drv$ = "B:") THEN szInf = GetSymbolValue("STF_CWDDIR") + "MEDIADSK.INF" ISCD = 0 ELSE szInf = GetSymbolValue("STF_CWDDIR") + "MEDIACD.INF" ISCD = 1 ENDIF ''szInf$ = GetSymbolValue("STF_CWDDIR") + "MEDIA.INF" END IF ReadInfFile szInf$ DEST$ = "C:\MEDIA" WINDIR$ = GetWindowsDir () SYSDIR$ = GetWindowsSysDir () OPTCUR$ = "1" ''Set default option to data files - not installed '$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 WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 WELCOME1: ''Since We do not want to write back to disk ISCD = 1 '' Get user and company name... IF ISCD = 1 THEN i% = InitSystemRead(1, "", 0) IF InitSystemDlgs(0) = 0 THEN GOSUB ASKQUIT GOTO WELCOME1 ENDIF ELSE IF InitSystem(1, "", 0) = 0 THEN GOSUB ASKQUIT GOTO WELCOME1 END IF ENDIF ELSE GOSUB ASKQUIT GOTO WELCOME END IF OPTION: SetSymbolValue "RadioDefault", OPTCUR$ OPT1: sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP2, HELPPROC$) OPTCUR$ = GetSymbolValue("ButtonChecked") IF sz$ = "CONTINUE" THEN UIPop(1) ELSEIF sz$ = "REACTIVATE" THEN GOTO OPT1 ELSE GOSUB ASKQUIT GOTO OPTION END IF GETPATH: SetSymbolValue "EditTextIn", DEST$ SetSymbolValue "EditFocus", "END" GETPATHL1: sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP2, 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 '' Check is there enough space in the windows drive Drive$=Mid$(WINDIR$,1,1) DiskSize&=GetFreeSpaceForDrive(Drive$) If WINFSIZE& > DiskSize& then GOSUB SMALLWIN GOTO GETPATH END IF '' Set disk size according to user selected option IF OPTCUR$ = "2" THEN CPYSIZE& = ALLFSIZE ELSE CPYSIZE& = APPSIZE ENDIF '' Check is there enough space in the destination drive Drive$=Mid$(DEST$,1,1) DiskSize&=GetFreeSpaceForDrive(Drive$) If CPYSIZE& > DiskSize& then GOSUB SMALLDEST GOTO GETPATH END IF Install szName$ = GetSymbolValue ("STF_CD_NAME") szOrg$ = GetSymbolValue ("STF_CD_ORG") i% = AInitSystem1 (MakePath(DEST$,"media.ini"), szName$, szOrg$) '' i% = FCloseSystem("APPFILES", "UserInfo", DEST$, STRINGTABLE, 1000) 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 ''Run mplayer to display regcard.avi IF ERR = 0 THEN i% = RunShellExe(HwndFrame(), MakePath(DEST$, "regcard.avi"), "") END IF END ERRQUIT: i% = DoMsgBox("Setup sources were corrupted, call (416)756-0718!", "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 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 SMALLDEST: i% = DoMsgBox("There is not enough space to install MediaMerge!", "MediaMerge Setup", MB_OK+MB_TASKMODAL+MB_ICONHAND) UIPop 1 RETURN SMALLWIN: i% = DoMsgBox("There is not enough space in Windows Driver to install the files needed by MediaMerge!", "MediaMerge Setup", MB_OK+MB_TASKMODAL+MB_ICONHAND) UIPop 1 RETURN '** '** Purpose: '** Builds the copy list and performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB Install STATIC SrcDir$ = GetSymbolValue("STF_SRCDIR") CreateDir DEST$, cmoNone AddSectionFilesToCopyList "APPFILES", SrcDir$, DEST$ AddSectionFilesToCopyList "WINFILES", SrcDir$, WINDIR$ AddSectionFilesToCopyList "SYSFILES", SrcDir$, SYSDIR$ ''set data files to be copied IF OPTCUR$ = "2" THEN CreateDir DEST$ + "\MMONTAGE", cmoNone AddSectionFilesToCopyList "DATAFILES", SrcDir$, DEST$ + "\MMONTAGE" END IF CopyFilesInCopyList ''Updating WIN.INI and SYSTEM.INI CreateIniKeyValue WINDIR$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite CreateIniKeyValue WINDIR$ + "system.ini", "Drivers", "VIDC.RT21", "indeo.drv", cmoOverwrite CreateIniKeyValue WINDIR$ + "system.ini", "Drivers", "VIDC.YVU9", "isvy.drv", cmoOverwrite CreateIniKeyValue WINDIR$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite CreateIniKeyValue WINDIR$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite CreateIniKeyValue "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite ''Create association for avi and scn CreateIniKeyValue "WIN.INI", "Extensions", "AVI", "MPLAYER.EXE ^.AVI", cmoOverwrite sz$ = MakePath(DEST$, "scenedit.exe") + " ^.scn" CreateIniKeyValue "WIN.INI", "Extensions", "scn", sz$, cmoOverwrite CreateProgmanGroup "MediaMerge", "", cmoNone ShowProgmanGroup "MediaMerge", 1, cmoNone CreateProgmanItem "MediaMerge", "Storyboard Editor", MakePath(DEST$,"sbapp.exe"), "", cmoOverwrite CreateProgmanItem "MediaMerge", "Scene Editor", MakePath(DEST$,"scenedit.exe"), "", cmoOverwrite CreateProgmanItem "MediaMerge", "Audio Editor", MakePath(DEST$,"dae.exe"), "", cmoOverwrite CreateProgmanItem "MediaMerge", "Player", MakePath(WINDIR$, "mplayer.exe"), "", cmoOverwrite CreateProgmanItem "MediaMerge", "Read me", MakePath(DEST$, "readme.wri"), "", cmoOverwrite CreateProgmanItem "MediaMerge", "MEDIAMERGE Help", MakePath(DEST$, "basics.hlp"), "", cmoOverwrite 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