home *** CD-ROM | disk | FTP | other *** search
- '' $Keywords: update.mst 1.7 28Jul93 10:12am$ $nokeywords$
- '**************************************************************************
- '* CorelDRAW! 4 Update script
- '**************************************************************************
- '' Date Name Reason
- ''-------------------------------------------------------------------------
- '' JUL 14 1993 Ibrahim Sallam Create
-
- '$INCLUDE 'setupapi.inc'
-
- ''C functions
- DECLARE SUB InitializeInstall LIB "mscuistf.dll" (hInstance%, hMainWind% )
- DECLARE SUB ShutDownInstall LIB "mscuistf.dll"
- DECLARE SUB RegisterFont LIB "mscuistf.dll" (szFOTName$, szTTFName$)
- DECLARE SUB FileChangeString LIB "mscuistf.dll" (szFile1$, szFile2$, szString1$, szString2$)
- DECLARE SUB FRecalcOptFiles LIB "mscuistf.dll" (iType%, szNeeds$)
- DECLARE FUNCTION FIsDrawExist LIB "mscuistf.dll" (szFileName$, szDest$) AS INTEGER
- DECLARE FUNCTION IsSectionKeyExist LIB "mscuistf.dll" (szSectionName$, szKeyName$) AS INTEGER
- DECLARE SUB FAddFileToCopyList LIB "mscuistf.dll" (AppendSect$, Section$, FilterName$, SourceDir$, FiltersDir$)
- DECLARE SUB CommentIniSection LIB "mscuistf.dll" (szFileName$, szTempFile$, szSection$, szPath$ )
- DECLARE FUNCTION GetFilenameFromPath LIB "mscuistf.dll" (szPath$) AS INTEGER
- DECLARE FUNCTION IsTTFEnabled LIB "mscuistf.dll" AS INTEGER
- DECLARE FUNCTION FGetBootDrive LIB "mscuistf.dll" AS INTEGER
- DECLARE FUNCTION FModifyFile LIB "mscuistf.dll" (szFileName$, szList$, szWhere$) AS INTEGER
- DECLARE FUNCTION IsWinForWorkgroups LIB "mscuistf.dll" AS INTEGER
-
- '$INCLUDE 'setupvar.inc'
-
- ''Strings for loading string resources
- GLOBAL szString$
- CONST STRINGLEN = 128
- szString$ = string$( STRINGLEN+1, 32 )
-
- ''setup main window
- ''CONST LOGO = 9100 ''must match the constant in dialogs.h
- CONST LOGO3 = 9115 ''must match the constant in dialogs.h
- SetTitle TR_TITLE
- SetBitmap "mscuistf.dll", LOGO3
- ''SetBitmap "mscuistf.dll", LOGO
- InitializeInstall hinstFrame(), HwndFrame() ''corel style buttons; max window
-
- '$INCLUDE 'msdetect.inc'
-
- '''$DEFINE DEBUG ''Define for script development/debugging
-
- ''Dialog ID's
- ''Note: These constants MUST match the constants in dialogs.h
- CONST DRAWWELCOME = 9900
- CONST DRAWASKQUIT = 9901
- CONST DRAWDESTPATH = 9902
- CONST DRAWERROREXITFAILURE= 9903
- CONST DRAWEXITQUIT = 9904
- CONST DRAWEXITSUCCESS = 9905
- CONST DRAWTOOBIG = 9906
- CONST DRAWERRORBADPATH = 9907
- CONST DRAWWAIT = 9908
- CONST DRAWABOUT = 9909
- CONST DRAWASKINSTALL = 9910
- CONST DRAWDESTPATHWARNING = 9911
- CONST BILLBOARD = 9912
- CONST DRAWSUCCESS = 9913
- CONST DRAWWELCOMEHELP = 9914
- CONST DRAWWAITCONFIGER = 9915
- CONST DRAWSHARE = 9916
- CONST DRAWSHAREHELP = 9917
- CONST DRAWERRORDRAWEXIST = 9920
-
- CONST FALSE = 0
- CONST TRUE = 1
-
- ''Constants representing each line in the custinst dialog
- CONST DRAW = 1
- CONST CHART = 2
- CONST SHOW = 3
- CONST PHOTO = 4
- CONST MOVE = 5
- CONST TRACE = 6
- CONST MOSAIC = 7
- CONST SCANNERS = 8
- CONST FILTERS = 9 ''Does not have custom dialog
- CONST FONTTT = 10
- CONST NUMCUST = FONTTT
- CONST MAIN = NUMCUST + 1
- CONST NUMGROUPS = MAIN
-
- GLOBAL DrivesList$ ''experemental variable for the drives list
- DrivesList$ = "DrivesList"
- GLOBAL TempList$ '' Used for Temp lists
- TempList$ = "TempList"
- GLOBAL aszNEEDS$
- aszNEEDS$ = "FilesNeeds"
-
- GLOBAL bTooBig%
- bTooBig% = FALSE
- GLOBAL bBadPath%
- bBadPath% = FALSE
- GLOBAL bBack%
- bBack% = FALSE
-
- GLOBAL DIR(NUMGROUPS) AS STRING ''list of directories for main options
-
- GLOBAL WINDIR$ ''Windows directory.
- GLOBAL WINSYSDIR$ ''Windows directory.
- GLOBAL WINDRIVE$ ''Windows drive letter.
- GLOBAL DEST$ ''destination directory.
- GLOBAL szFontDir$ ''directory for .ttf fonts
- GLOBAL bWindowsIsNetworked%
- GLOBAL bWindowsForWorkgroups%
- GLOBAL bMakeCorelSection% '' if not CorelGraphics4 section in win.ini, make one
- GLOBAL szWWinDir$ ''Writable Windows directory
-
- GLOBAL TOOLGROUP$ '' Group in which tools are to be installed
- TOOLGROUP$ = "Draw4 Working Model"
- ''Variables to fake subroutines with parameters
- GLOBAL Dialog%
- GLOBAL szTempVar$
-
- ''Globals for WaitOn and WaitOff
- GLOBAL nWaiting%
- GLOBAL CursorSave%
-
- GLOBAL SrcDir$ '' Directory where files can be found
- SrcDir$ = GetSymbolValue("STF_SRCDIR")
- GLOBAL InfFile$
-
- ''local MSTest functions
- DECLARE SUB WaitOnBig
- DECLARE SUB WaitOn
- DECLARE SUB WaitOff
- DECLARE SUB SetDirectories
- DECLARE SUB AddFilesToCopyList
- DECLARE SUB CalculateRequiredSpace
- DECLARE SUB WrapFileChangeString( szFile1$, szFile2$, szString1$, szString2$ )
- DECLARE SUB WrapCommentIniSection( szFileName$, szTempFile$, szSection$, szPath$ )
- DECLARE SUB CheckBackupFile( szFile1$, szFile2$ )
- DECLARE FUNCTION CreateProgmanItem (szGroup$, szItem$, szCmd$, szOther$, cmo%) AS INTEGER
- DECLARE FUNCTION MakePath( szDir$, szFile$ ) AS STRING
- DECLARE FUNCTION MakeDir( szDir$ ) AS STRING
- DECLARE SUB AddRedistSection( szSection$)
-
- INIT:
- '' set waiting cursor
- nWaiting% = 0
- WaitOn
-
- ''Set default directory names
- WINDIR$ = GetWindowsDir
- WINSYSDIR$ = GetWindowsSysDir
- WINDRIVE$ = MID$(WINDIR$, 1, 1)
- OpenLogfile MakePath(WINDIR$, "MRKTDRAW.LOG"), 0
- bWindowsForWorkgroups% = IsWinForWorkgroups
- IF bWindowsForWorkgroups% THEN
- WriteToLogFile "Windows For Workgroups >>>>"
- ENDIF
- InfFile$ = "MRKTDRAW.INF"
-
- bWindowsIsNetworked% = IsDriveNetwork( MID$(WINSYSDIR$,1,1) )
- DEST$ = WINDRIVE$ + ":\"+"DRAW4"
- IF bWindowsIsNetworked% THEN
- szWWinDir$ = WINDIR$
- ELSE
- szWWinDir$ = WINSYSDIR$
- ENDIF
-
-
- '' Some Info to the Log File
- WriteToLogFile "Installing CorelDRAW! 4 (Working Model)"
- IF bWindowsIsNetworked% THEN
- WriteToLogFile TR_NETWINDOWS
- ENDIF
-
- ''find and read .inf file
- ReadInfFile GetSymbolValue("STF_CWDDIR") + InfFile$
-
- ''Get Drives List
- GetValidDrivesList(DrivesList$)
-
- '' Put up the Welcome dialog
- WELCOME:
- WaitOff
- Dialog% = DRAWWELCOME
- sz$ = UIStartDlg( "mscuistf.dll", Dialog%, "FInfoDlgProc", DRAWWELCOMEHELP, "FHelpDlgProc" )
- SELECT CASE sz$
- CASE "CONTINUE"
- UIPop 1
- CASE "ABOUT"
- Dialog% = DRAWABOUT
- GOSUB INFO
- GOTO WELCOME
- CASE "REACTIVATE"
- GOTO WELCOME
- CASE ELSE
- GOSUB ASKQUIT
- GOTO WELCOME
- END SELECT
-
- GETDIR:
-
- GOSUB GetAppsMainDir
- SetDirectories
-
- sz$ = UIStartDlg("mscuistf.dll", DRAWWAIT, "FModelessDlgProc", 0, "")
- AddFilesToCopyList
- UIPop 1
- GOSUB ASKINSTALL
-
- INSTALL:
- WriteToLogFile "INSTALL:"
- WaitOn
- ''Make sure there is enough space for Updating CorelDRAW!
- WaitOnBig
- CalculateRequiredSpace
-
- IF bTooBig% THEN
- Dialog% = DRAWTOOBIG
- GOSUB INFO
- GOSUB ASKQUIT
- GOTO GETDIR
- ENDIF
-
- CheckBackupFile MakePath(WINDIR$,"win.ini"), MakePath(WINDIR$,"win.cor")
- CheckBackupFile MakePath(WINDIR$,"reg.dat"), MakePath(WINDIR$,"reg.cor")
- CheckBackupFile MakePath(WINDIR$,"progman.ini"), MakePath(WINDIR$,"progman.cor")
-
- ConfigDir$ = GetIniKeyString(TR_WIN_INI, "CorelGraphics4", "Dir")
- IF ConfigDir$ <> "" THEN
- IF DoesFileExist( MakePath(ConfigDir$, "CORELAPP.INI"), femExists ) = 0 THEN
- bMakeCorelSection% = TRUE
- ENDIF
- IF DoesFileExist( MakePath(ConfigDir$, "CORELAPP.BAK"), femExists ) = 1 THEN
- RemoveFile MakePath(ConfigDir$, "CORELAPP.BAK"), cmoForce
- ENDIF
- ELSE
- bMakeCorelSection% = TRUE
- ENDIF
-
- CreateDir MakePath( DIR(MAIN), TR_AUTOBACK ), cmoNone
-
- ''Copy all the files over
- WaitOff
- WriteToLogFile "START CopyFilesInCopyList"
- CopyFilesInCopyList
- WriteToLogFile "END CopyFilesInCopyList"
- WaitOn
-
- sz$ = UIStartDlg("mscuistf.dll", DRAWWAITCONFIGER, "FModelessDlgProc", 0, "")
-
- IF IsTTFEnabled = 1 THEN
- WriteToLogFile "**** TTFEnabled ****"
- '' Let's register the Symbols TTF,... FONTLIST1$ is an empty Symbole varaible
- SetSymbolValue TempList$, "{}"
- MakeListFromSectionKeys TempList$, "WFN"
- FOR i% = 1 TO GetListLength(TempList$)
- szFileName$ = GetSectionKeyFilename( "WFN", GetListItem(TempList$, i%))
- index% = GetFilenameFromPath( szFileName$ )
- szFileName2$ = MID$( szFileName$, index%, LEN(szFileName$) - index% + 1 )
- IF MID$(szFileName2$, LEN(szFileName2$)-2) = "ttf" THEN
- szFOTName$ = MID$(szFileName2$,1,LEN(szFileName2$)-3) + "fot"
- RegisterFont MakePath(szWWinDir$,szFOTName$), MakePath(DIR(MAIN),TR_SYMBOLS+"\"+szFileName2$)
- temp% = GetTypeFaceNameFromTTF( MakePath(DIR(MAIN),TR_SYMBOLS+"\"+szFileName2$), szString$, STRINGLEN )
- IF temp% > 0 AND temp% < STRINGLEN THEN
- CreateIniKeyValue TR_WIN_INI, "fonts", szString$+" "+TR_TRUETYPE, UCASE$(szFOTName$), cmoOverWrite
- ENDIF
- ENDIF
- NEXT i%
-
- SetSymbolValue TempList$, "{}"
- MakeListFromSectionKeys TempList$, "DrawFonts"
- WriteToLOgFile "Adding DrawFonts"
-
- FOR nIndex% = 1 TO GetListLength(TempList$)
- Font$ = GetListItem(TempList$, nIndex%)
- szFileName$ = GetSectionKeyFilename("DrawFonts", Font$ )
- index% = GetFilenameFromPath( szFileName$ )
- szFileName2$ = MID$( szFileName$, index%, LEN(szFileName$) - index% + 1 )
- szFOTName$ = MID$(szFileName2$,1,LEN(szFileName2$)-3) + "fot"
- RegisterFont MakePath(szWWinDir$,szFOTName$), MakePath(DIR(FONTTT),szFileName2$)
- temp% = GetTypeFaceNameFromTTF( MakePath(DIR(FONTTT),szFileName2$), szString$, STRINGLEN )
- IF temp% > 0 AND temp% < STRINGLEN THEN
- CreateIniKeyValue TR_WIN_INI, "fonts", szString$+" "+TR_TRUETYPE, UCASE$(szFOTName$), cmoOverWrite
- ENDIF
- szString$ = string$( STRINGLEN+1, 32 )
- szFileName$ = ""
- szFileName2$ = ""
- szFOTName$ = ""
- NEXT nIndex%
- ENDIF
-
-
- IF bMakeCorelSection% THEN
- CheckBackupFile MakePath(WINDIR$,"win.ini"), MakePath(WINDIR$,"win.cor")
- CreateIniKeyValue TR_WIN_INI, "CorelGraphics4", "Dir", MakePath(DIR(MAIN), TR_CONFIG), cmoOverWrite
- ENDIF
-
- RUN( TR_REGLOAD_S + " " + MakePath(WINSYSDIR$, "OLE2.REG") )
-
- ini$ = MakePath( DIR(MAIN), TR_CONFIG+"\"+TR_CORELAPP_INI)
- IF DoesFileExist( MakePath(ConfigDir$, "CORELAPP.BAK"), femExists ) = 0 THEN
- oldini$ = MakePath( DIR(MAIN), TR_CONFIG+"\corelapp.bak")
- ENDIF
- CreateIniKeyValue ini$, "Config", "ProgramsDir", MakePath(DIR(MAIN),TR_PROGRAMS), cmoOverWrite
- CreateIniKeyValue ini$, "Config", "DataDir", MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_DATA), cmoOverWrite
- CreateIniKeyValue ini$, "Config", "CustomDir", MakePath(DIR(MAIN),TR_CUSTOM), cmoOverWrite
- OldDir$ = GetIniKeyString(oldini$, "Config", "DrawDir")
- IF OldDir$ <> "" THEN
- DIR(DRAW) = OldDir$
- ENDIF
- CreateIniKeyValue ini$, "Config", "DrawDir", DIR(DRAW), cmoOverWrite
- OldDir$ = GetIniKeyString(oldini$, "Config", "ChartDir")
- IF OldDir$ <> "" THEN
- DIR(CHART) = OldDir$
- ENDIF
- CreateIniKeyValue ini$, "Config", "ChartDir", DIR(CHART), cmoOverWrite
- OldDir$ = GetIniKeyString(oldini$, "Config", "ShowDir")
- IF OldDir$ <> "" THEN
- DIR(SHOW) = OldDir$
- ENDIF
- CreateIniKeyValue ini$, "Config", "ShowDir", DIR(SHOW), cmoOverWrite
- OldDir$ = GetIniKeyString(oldini$, "Config", "PhotoPaintDir")
- IF OldDir$ <> "" THEN
- DIR(PHOTO) = OldDir$
- ENDIF
- CreateIniKeyValue ini$, "Config", "PhotoPaintDir", DIR(PHOTO), cmoOverWrite
- OldDir$ = GetIniKeyString(oldini$, "Config", "MoveDir")
- IF OldDir$ <> "" THEN
- DIR(MOVE) = OldDir$
- ENDIF
- CreateIniKeyValue ini$, "Config", "MoveDir", DIR(MOVE), cmoOverWrite
- OldDir$ = GetIniKeyString(oldini$, "Config", "TraceDir")
- IF OldDir$ <> "" THEN
- DIR(TRACE) = OldDir$
- ENDIF
- CreateIniKeyValue ini$, "Config", "TraceDir", DIR(TRACE), cmoOverWrite
- OldDir$ = GetIniKeyString(oldini$, "Config", "MosaicDir")
- IF OldDir$ <> "" THEN
- DIR(MOSAIC) = OldDir$
- ENDIF
- CreateIniKeyValue ini$, "Config", "MosaicDir", DIR(MOSAIC), cmoOverWrite
- CreateIniKeyValue ini$, "Config", "FontsDir", MakePath(DIR(MAIN),TR_SYMBOLS), cmoOverWrite
- CreateIniKeyValue ini$, "Config", "FiltersDir", DIR(FILTERS), cmoOverWrite
- OldStr$ = GetIniKeyString(oldini$, "Registration", "UserName")
- IF OldStr$ <> "" THEN
- UserName$ = OldStr$
- ELSE
- UserName$ = "Anyone"
- ENDIF
- CreateIniKeyValue ini$, "Registration", "UserName", UserName$, cmoOverWrite
- OldStr$ = GetIniKeyString(oldini$, "Registration", "SerialNumber")
- IF OldStr$ <> "" THEN
- SerialNumber$ = OldStr$
- ELSE
- SerialNumber$ = "Working Model"
- ENDIF
- CreateIniKeyValue ini$, "Registration", "SerialNumber", "Working Model", cmoOverWrite
- ini$ = MakePath( DIR(MAIN), TR_CONFIG+"\"+TR_CORELPRN_INI)
- CreateIniKeyValue ini$, "ColorPath", "CircuitPath", MakePath(DIR(MAIN),TR_CUSTOM), cmoOverwrite
- ini$ = MakePath( DIR(MAIN), TR_CONFIG+"\"+TR_CORELFLT_INI)
- CreateIniKeyValue ini$, "ColorPath", "CircuitPath", MakePath(DIR(MAIN),TR_CUSTOM), cmoOverWrite
- CreateIniKeyValue ini$, "ColorPath", "CurvePath", MakePath(DIR(MAIN),TR_CUSTOM), cmoOverWrite
- WrapCommentIniSection ini$, MakePath(Dir(MAIN),"___temp_"), "ImportFilters", MakePath(DIR(MAIN),TR_PROGRAMS+"\")
- WrapCommentIniSection ini$, MakePath(Dir(MAIN),"___temp_"), "ExportFilters", MakePath(DIR(MAIN),TR_PROGRAMS+"\")
- WrapCommentIniSection ini$, MakePath(Dir(MAIN),"___temp_"), "CorelAIExport", MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_DATA+"\")
- WrapCommentIniSection ini$, MakePath(Dir(MAIN),"___temp_"), "CorelDXFExport", MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_DATA+"\")
- ini$ = MakePath( DIR(MAIN), TR_CONFIG+"\"+TR_CORELFNT_INI)
- WrapCommentIniSection ini$, MakePath(Dir(MAIN),"___temp_"), "Fonts", MakePath(DIR(MAIN),TR_SYMBOLS+"\")
- WrapCommentIniSection ini$, MakePath(Dir(MAIN),"___temp_"), "Symbols", MakePath(DIR(MAIN),TR_SYMBOLS+"\")
- CreateProgmanGroup TOOLGROUP$, "", cmoNone
- ShowProgmanGroup TOOLGROUP$, 1, cmoNone
- '' nAddItemFailed% = nAddItemFailed% + CreateProgmanItem( TOOLGROUP$, TR_RELEASENOTES, TR_WRITE_EXE + " " + MakePath(DIR(MAIN),TR_README_WRI), "", cmoOverwrite)
-
- '' WrapFileChangeString MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELDRW_REG), MakePath(DIR(MAIN),"___temp_"), TR_CORELDRW_EXE, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CORELDRW_EXE)
- '' WrapFileChangeString MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELDRW_REG), MakePath(DIR(MAIN),"___temp_"), TR_CDROL140_DLL, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CDROL140_DLL)
- '' RUN( TR_REGLOAD_S + " " + MakePath(DIR(MAIN),TR_CONFIG+"\"+TR_CORELDRW_REG) )
- ini$ = MakePath(DIR(MAIN), TR_CONFIG+"\"+TR_CORELDRW_INI)
- CreateIniKeyValue ini$, "Config", "AutoBackupDir", MakePath(DIR(MAIN),TR_AUTOBACK), cmoOverwrite
- CreateIniKeyValue ini$, "Config", "TemplateDir", MakePath(DIR(DRAW),TR_TEMPLATE), cmoOverwrite
- nAddItemFailed% = nAddItemFailed% + CreateProgmanItem( TOOLGROUP$, TR_CORELDRAW, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_CORELDRW_EXE),"", cmoOverwrite)
-
- UIPop 1 ''WAITCONFIGER Dialog
-
- '' Installing SHARE
- '' We don't want to install SHARE for Windows for Workgroups
- IF bWindowsForWorkgroups% = FALSE THEN
- Drive$ = CHR$( FGetBootDrive - 1 + ASC("A"))
- ShareFile$ = FindFileInTree("SHARE.EXE", Drive$+":\")
- IF ShareFile$ <> "" THEN
- SetSymbolValue "ShareLine", "{}"
- AddListItem "ShareLine", ShareFile$+" /L:500 /F:5100"
- IF bAutoexecModified% = FALSE THEN
- CopyFile Drive$+":\"+TR_AUTOEXEC_BAT, Drive$+":\"+TR_AUTOEXEC_COR, cmoOverwrite, 0
- ENDIF
- UPDATE:
- WaitOff
- sz$ = UIStartDlg( "mscuistf.dll", DRAWSHARE, "FButtonsDlgProc", DRAWSHAREHELP, "FHelpDlgProc" )
- SELECT CASE sz$
- CASE "U"
- Res% = FModifyFile(Drive$+":\"+TR_AUTOEXEC_BAT, "ShareLine", "E")
- CASE "D"
- Res% = FModifyFile(Drive$+":\"+TR_AUTOEXEC_COR, "ShareLine", "E")
- CASE ELSE
- GOTO UPDATE
- END SELECT
- UIPop 1
-
- ENDIF '' IF ShareFile <> ""
- ENDIF '' IF bWindowsForWorkgroups% = FALSE
-
- '' User has completed run of setup or has unconditionally decided to quit
- QUIT:
- WaitOff
- '' On MSTest errors report "setup file corrupted" and abort
- ON ERROR GOTO ERRQUIT
-
- IF ERR = 0 THEN
- dlg% = DRAWEXITSUCCESS
- szDlgProc$ = "FInfo0DlgProc"
- WriteToLogfile TR_SETUPSUCCEEDED
- ELSEIF ERR = STFQUIT THEN
- dlg% = DRAWEXITQUIT
- szDlgProc$ = "FInfo0DlgProc"
- WriteToLogfile TR_SETUPQUIT
- ELSE
- dlg% = DRAWERROREXITFAILURE
- szDlgProc$ = "FInfo0DlgProc"
- WriteToLogfile TR_SETUPFAILED
- ENDIF
-
-
- '' Put up one of the exit message dialog boxes
- QUITL1:
- sz$ = UIStartDlg("mscuistf.dll", dlg%, szDlgProc, 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO QUITL1
- ENDIF
- GOTO FINISH
-
-
- '' An error has occurred in MSTest. Tell the user and abort.
- ERRQUIT:
- i% = DoMsgBox( "Files were corrupted, contact Corel Product Support!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
- WriteToLogfile "Setup Failed - files corrupted"
- WriteToLogFile ""
- FINISH:
- UIPopAll
- ShutDownInstall
- CloseLogFile
- END
-
- ASKINSTALL:
- WaitOff
- sz$ = UIStartDlg( "mscuistf.dll", DRAWASKINSTALL, "FInfoDlgProc", 0, "" )
- SELECT CASE sz$
- CASE "CONTINUE"
- ''Do nothing
- CASE "REACTIVATE"
- GOTO ASKINSTALL
- CASE ELSE
- GOSUB ASKQUIT
- GOTO ASKINSTALL
- END SELECT
- UIPop 1
- RETURN ''return if the user want to update
-
-
- '' Display an information dialog
- '' Uses the global Dialog% to identify which dialog to display
- INFO:
- WaitOff
- sz$ = UIStartDlg( "mscuistf.dll", Dialog%, "FInfo0DlgProc", 0, "" )
- SELECT CASE sz$
- CASE "CONTINUE"
- ''Do nothing
- CASE "REACTIVATE"
- GOTO INFO
- CASE "EXIT"
- GOSUB ASKQUIT
- GOTO INFO
- END SELECT
- UIPop 1
- RETURN
-
- '' The user has asked to quit - confirm his decision
- ASKQUIT:
- WaitOff
- sz$ = UIStartDlg("mscuistf.dll", DRAWASKQUIT, "FQuitDlgProc", 0, "")
- SELECT CASE sz$
- CASE "EXIT"
- GOTO FINISH '' OK. I know I shouldn't do that, but it's OK, It's the end of the script.
- CASE "REACTIVATE"
- GOTO ASKQUIT
- CASE ELSE
- ''Do nothing
- END SELECT
- UIPop 1
- RETURN
-
- '***********************************************************************
- '***********************************************************************
- '**** Get CorelDRAW! 4 main directory ********************
- '***********************************************************************
- GetAppsMainDir:
- WriteToLogFile "GetPath:"
- bRet% = FIsDrawExist(TR_WIN_INI, szString$)
- IF bRet% THEN '' We have DRAW installed before (could be DRAW3 or DRAW4)
- WriteToLogFile "String Found For Directory is"+ szString$
- IF DoesFileExist( MakePath(szString$, "programs\coreldrw.exe"), femExists ) = 1 THEN
- Dialog% = DRAWERRORDRAWEXIST
- GOSUB INFO
- ERR = STFERR
- GOTO QUIT
- ENDIF
- DEST$ = szString$
- DIR(MAIN) = DEST$
- SetDirectories
- ENDIF
- Dialog% = DRAWDESTPATH
- SetSymbolValue "EditTextIn", DEST$
- SetSymbolValue "EditFocus", "END"
- GETPATHL1:
- WaitOff
- sz$ = UIStartDlg("mscuistf.dll", Dialog%, "FEditDlgProc", 0, "")
- SELECT CASE sz$
- CASE "CONTINUE"
- WaitOn
- olddest$ = DEST$
- DEST$ = RTRIM$(LTRIM$(GetSymbolValue("EditTextOut")))
- ''Validate new path.
- IF DEST$ = "" OR IsDirWritable(DEST$) = 0 THEN
- OldDialog% = Dialog%
- Dialog% = DRAWERRORBADPATH
- GOSUB INFO
- Dialog% = OldDialog%
- GOTO GETPATHL1
- ENDIF
-
- CASE "REACTIVATE"
- GOTO GETPATHL1
- CASE "CANCEL", "BACK"
- UIPop 1
- bBack% = TRUE
- RETURN
- CASE ELSE
- GOSUB ASKQUIT
- GOTO GETPATHL1
- END SELECT
- WriteToLogFile TR_BASEDIR + DEST$
- WriteToLogFile ""
- UIPop 1
- RETURN
-
-
- '*************************************************************************
- '*************************************************************************
- '**** Add files to copy list according to the bUpdate flags **************
- '*************************************************************************
- '*************************************************************************
- SUB AddFilesToCopyList STATIC
-
- WriteToLogFile "AddFilesToCopyList"
- WriteToLogFile "AddFilesToCopyList: DRAW"
- AddSectionFilesToCopyList "DrawMain", SrcDir$, MakePath(DIR(MAIN),TR_PROGRAMS)
- AddSectionFilesToCopyList "DrawDraw", SrcDir$, DIR(DRAW)
- '' AddSectionFilesToCopyList "DrawEhandler", SrcDir$, MakePath(DIR(DRAW), TR_EHANDLER)
- AddSectionFilesToCopyList "DrawConfig", SrcDir$, MakePath(DIR(MAIN),TR_CONFIG)
- AddSectionFilesToCopyList "DrawHelp", SrcDir$, MakePath(DIR(MAIN),TR_PROGRAMS)
- AddSectionFilesToCopyList "DrawTemplate", SrcDir$, MakePath(DIR(DRAW),TR_TEMPLATE)
- AddSectionFilesToCopyList "DrawSamples", SrcDir$, MakePath(DIR(DRAW), TR_SAMPLES)
- ''The Common Bullets should be always installed with DRAW
- WriteToLogFile "AddFilesToCopyList: WFN"
- AddSectionKeyFileToCopyList "WFN", TR_COMMONBULLETS, SrcDir$, MakePath(DIR(MAIN),TR_SYMBOLS)
- WriteToLogFile "AddFilesToCopyList: TTF"
- AddSectionFilesToCopyList "DrawFonts", SrcDir$, DIR(FONTTT)
-
- WriteToLogFile "AddFilesToCopyList: MAIN & COMMON"
- '' AddSectionFilesToCopyList "Main", SrcDir$, DIR(MAIN)
- AddSectionFilesToCopyList "CommonDLL", SrcDir$, MakePath(DIR(MAIN),TR_PROGRAMS)
- AddSectionFilesToCopyList "CommonConfig", SrcDir$, MakePath(DIR(MAIN),TR_CONFIG)
- AddSectionFilesToCopyList "Custom", SrcDir$, MakePath(DIR(MAIN),TR_CUSTOM)
- AddSectionFilesToCopyList "ProgramData", SrcDir$, MakePath(DIR(MAIN),TR_PROGRAMS+"\"+TR_DATA)
- AddRedistSection "CommonRedist"
-
- WriteToLogFile "AddFilesToCopyList: FILTERS"
- AddSectionFilesToCopyList "ImpFilters", SrcDir$, DIR(FILTERS)
- '' AddSectionFilesToCopyList "ImpFiltersDrMoTr", SrcDir$, DIR(FILTERS)
- '' AddSectionFilesToCopyList "ImpFiltersDrMoPhTr", SrcDir$, DIR(FILTERS)
-
- '' AddSectionFilesToCopyList "ExpFiltersDrPh", SrcDir$, DIR(FILTERS)
-
-
- END SUB
-
- '**
- '** Purpose:
- '** Removes the optional trailing "\"
- '** Arguments:
- '** szDir$ - full directory path (with optional ending "\")
- '** Returns:
- '** szDir$ without a trailing "\"
- '*************************************************************************
- FUNCTION MakeDir (szDir$) STATIC AS STRING
- IF szDir$ <> "" THEN
- IF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
- MakeDir = MID$( szDir$, 1, LEN(szDir$) - 1 )
- ELSE
- MakeDir = szDir$
- ENDIF
- ELSE
- MakeDir = szDir$
- ENDIF
- END FUNCTION
-
-
- '**
- '** 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
- MakePath = MakeDir(szDir$) + "\" + szFile$
- END FUNCTION
-
-
- '** Make sure that the long wait dialog is displayed and the hourglass cursor
- '** are being used
- '*************************************************************************
- SUB WaitOnBig STATIC
- IF nWaiting% = 0 THEN
- CursorSave% = ShowWaitCursor()
- ENDIF
- IF nWaiting% <> 2 THEN
- sz$ = UIStartDlg("mscuistf.dll", DRAWWAIT, "FModelessDlgProc", 0, "")
- ENDIF
- nWaiting% = 2
- END SUB
-
-
- '** Make sure that the hourglass cursor is being used
- '*************************************************************************
- SUB WaitOn STATIC
- IF nWaiting% = 0 THEN
- CursorSave% = ShowWaitCursor()
- nWaiting% = 1
- ENDIF
- END SUB
-
-
- '** Remove the long wait dialog if it is being displayed and reset the cursor
- '** back to normal if it was set to the hourglass icon
- '*************************************************************************
- SUB WaitOff STATIC
- IF nWaiting% = 2 THEN
- UIPop 1
- ENDIF
- IF nWaiting% <> 0 THEN
- RestoreCursor CursorSave%
- ENDIF
- nWaiting% = 0
- END SUB
-
-
-
- '** Wrapper function - should reduce size of code segment.
- '**
- '** FileChangeString replaces szString1$ in szFile1$ with szString2$.
- '** szFile2$ is a temporary file name.
- '*************************************************************************
- SUB WrapFileChangeString( szFile1$, szFile2$, szString1$, szString2$ ) STATIC
- FileChangeString szFile1$, szFile2$, szString1$, szString2$
- END SUB
-
-
- '** Wrapper function - should reduce size of code segment.
- '**
- '** CommentIniSection checks to see whether or not the files mentioned in
- '** szSection$ can be found in directory szPath$. If not, it sticks a ';'
- '** in front of that line of the ini file. Otherwise it makes sure there
- '** is not semi-colon commenting out that line.
- '** Note: this function is heavily dependent on the format of coreldrw.ini
- '*************************************************************************
- SUB WrapCommentIniSection( szFileName$, szTempFile$, szSection$, szPath$ ) STATIC
- CommentIniSection szFileName$, szTempFile$, szSection$, szPath$
- END SUB
-
-
- '** If the second file does not exist, backup szFile1$ as szFile2$
- '*************************************************************************
- SUB CheckBackupFile( szFile1$, szFile2$ ) STATIC
- IF DoesFileExist(szFile2$,femExists) = 0 AND DoesFileExist(szFile1$,femExists) THEN
- CopyFile szFile1$, szFile2$, cmoNone, 0
- ENDIF
- END SUB
-
-
- '***********************************************************************
- '***********************************************************************
- '**** CalculateRequiredSpace on the destination disk ******************
- '***********************************************************************
- SUB CalculateRequiredSpace STATIC
-
- WriteToLogFile "SUB CalculateRequiredSpace"
- bTooBig% = FALSE
- StillNeed& = GetCopyListCost(EXTRACOSTS$, aszNEEDS$, "")
- IF StillNeed& THEN
- bTooBig% = TRUE
- ENDIF
-
- END SUB
-
- '*************************************************************************
- FUNCTION CreateProgmanItem (szGroup$, szItem$, szCmd$, szOther$, cmo%) STATIC AS INTEGER
- szItemNew$ = szItem$
- IF szOther$ <> "" THEN
- szItemNew$ = szItem$ + "," + szOther$
- END IF
-
- IF FCreateProgManItem(szGroup$, szItemNew$, szCmd$, cmo%) = 0 THEN
- CreateProgmanItem = 1
- ELSE
- CreateProgmanItem = 0
- END IF
- '' szItemNew$ = ""
- END FUNCTION
-
- '** Set the subdirectories to their default values.
- '*************************************************************************
- SUB SetDirectories STATIC
- IF bWindowsIsNetworked% THEN
- szFontDir$ = WINDIR$
- szWWinDir$ = WINDIR$
- ELSE
- szFontDir$ = WINSYSDIR$
- szWWinDir$ = WINSYSDIR$
- ENDIF
- DIR(MAIN) = DEST$
- DIR(DRAW) = MakePath( DIR(MAIN), TR_DRAW )
- DIR(CHART) = MakePath( DIR(MAIN), TR_CHART )
- DIR(SHOW) = MakePath( DIR(MAIN), TR_SHOW )
- DIR(PHOTO) = MakePath( DIR(MAIN), TR_PHOTOPNT )
- DIR(MOVE) = MakePath( DIR(MAIN), TR_MOVE )
- DIR(TRACE) = MakePath( DIR(MAIN), TR_TRACE )
- DIR(MOSAIC) = MakePath( DIR(MAIN), TR_PROGRAMS )
- DIR(SCANNERS) = MakeDir(szScannerDir$)
- DIR(FILTERS) = MakePath( DIR(MAIN), TR_PROGRAMS )
- DIR(FONTTT) = MakeDir(szFontDir$)
- '' szFontDir$ = ""
- END SUB
-
- '** Add Redistributable files to the correct directory(s) in the copy list
- '*************************************************************************
- SUB AddRedistSection( szSection$) STATIC
- IF bWindowsIsNetworked% OR bInstallNet% = FALSE THEN
- '' Copy the redistributable files and dlls to windir or winsysdir
- AddSectionFilesToCopyList szSection$, SrcDir$, szWWinDir$
- ENDIF
- IF bInstallNet% THEN
- '' Store the redistributable files in REDIST until user installs
- AddSectionFilesToCopyList szSection$, SrcDir$, MakePath(DIR(MAIN),TR_REDIST)
- ENDIF
- END SUB
-
-
-