home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
VRML & 3D on the Web for Dummies
/
VRML4DMYZ.iso
/
pc
/
pc_stuff
/
build
/
eos
/
pmlx.ms_
/
pmlx.bin
Wrap
Text File
|
1996-04-21
|
9KB
|
330 lines
'**************************************************************************
'* Eos Systems PhotoModeler LX Install script
'**************************************************************************
'$DEFINE DEBUG ''Define for script development/debugging
'$INCLUDE 'setupapi.inc'
'$INCLUDE 'msdetect.inc'
''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 READLICENSE = 910
CONST TOOBIG = 6300
CONST BADPATH = 6400
CONST BADCONFIG = 8000
''Bitmap ID
CONST LOGO = 1
GLOBAL DEST$ ''Default destination directory.
GLOBAL OPTCUR$ ''Tutorial option install.
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 "PhotoModeler LX Install"
szInf$ = GetSymbolValue("STF_SRCINFPATH")
IF szInf$ = "" THEN
szInf$ = GetSymbolValue("STF_CWDDIR") + "PMLXI.INF"
END IF
ReadInfFile szInf$
OPTCUR$ = "1"
DEST$ = "C:\phmodlx"
SNUM$ = ""
'$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
ELSE
GOSUB ASKQUIT
GOTO WELCOME
END IF
LICENSE:
sz$ = UIStartDlg(CUIDLL$, READLICENSE, "FInfoDlgProc", APPHELP, HELPPROC$)
IF sz$ = "CONTINUE" THEN
UIPop 1
ELSE
GOSUB ASKQUIT
GOTO LICENSE
END IF
CONFIG:
'' Check for Math Chip
'' IF Has87MathChip() = 0 THEN
'' GOSUB BADCONFIG
'' END IF
'' Check for windows version
mjv% = GetWindowsMajorVersion()
miv% = GetWindowsMinorVersion()
'' Assume windows minor version never goes over 99 (note 3.1 is returns as minor = 10)
ver% = mjv%*100 + miv%
IF ver% < 310 THEN
GOSUB BADCONFIG
END IF
'' Check for 386 or better processor
IF GetProcessorType() < 3 THEN
GOSUB BADCONFIG
END IF
OPTION:
SetSymbolValue "RadioDefault", OPTCUR$
OPTL1:
sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
OPTCUR$ = GetSymbolValue("ButtonChecked")
IF sz$ = "CONTINUE" THEN
UIPop(1)
ELSEIF sz$ = "REACTIVATE" THEN
GOTO OPTL1
ELSE
GOSUB ASKQUIT
GOTO OPTION
END IF
'' Get the path where program is to be installed
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 OPTION
ELSE
GOSUB ASKQUIT
GOTO GETPATH
END IF
'' Check for disk space. Will have to modify this number based on
'' the actual install size. Put at 4 meg for now
'' we do more accurate check farther down
'' IF GetFreeSpaceForDrive(MID$(DEST$, 1, 1)) < 4000000 THEN
'' GOSUB BADDISKSP
'' END IF
Install
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("Setup sources were corrupted, call 604-732-6658!", "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
BADCONFIG:
sz$ = UIStartDlg(CUIDLL$, BADCONFIG, "FInfoDlgProc", APPHELP, HELPPROC$)
IF sz$ = "REACTIVATE" THEN
GOTO BADCONFIG
END IF
IF sz$ = "CONTINUE" THEN
UIPop 1
ELSE
GOSUB ASKQUIT
GOTO BADCONFIG
END IF
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
'**
'** Purpose:
'** Builds the copy list and performs all installation operations.
'** Arguments:
'** none.
'** Returns:
'** none.
'*************************************************************************
SUB Install STATIC
SrcDir$ = GetSymbolValue("STF_SRCDIR")
CreateDir DEST$, cmoNone
'' OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
'' WriteToLogFile ""
'' WriteToLogFile " User chose as destination directory: '" + DEST$ + "'"
'' WriteToLogFile " User chose option: '" + OPTCUR$ + "'"
'' WriteToLogFile ""
'' WriteToLogFile "May have had to create the directory: " + DEST$
'' WriteToLogFile ""
'' Create the list of files to copy. First everything in Files section of inf
'' and then the files in IniFile (to be copied to windows directory)
'' and then any optional tutorial files
winDir$ = GetWindowsDir()
AddSectionFilesToCopyList "Files", SrcDir$, DEST$
AddSectionFilesToCopyList "IniFiles", SrcDir$, winDir$
IF OPTCUR$ = "1" THEN
tutDir$ = MakePath( DEST$, "tutorial" )
AddSectionFilesToCopyList "Tutorial", SrcDir$, tutDir$
END IF
'' Check to see if enough space on disk to copy the files list
sizeNeeded& = GetCopyListCost( t1$, t2$, t3$ )
If sizeNeeded& > 0 Then
'' Tell user of insufficient disk space
BIGDLG:
sz$ = UIStartDlg("mscuistf.dll", TOOBIG, "FInfoDlgProc", APPHELP, "FHelpDlgProc")
IF sz$ = "REACTIVATE" THEN
GOTO BIGDLG
END IF
ERROR STFQUIT
Else
'' Copy the files
CopyFilesInCopyList
'' Update the PhotoModeler LX ini file with directory and help file location
ini$ = MakePath(winDir$, "pmlx.ini")
help$ = MakePath( DEST$, "pmlx.hlp" )
CreateIniKeyValue ini$, "General", "path", DEST$ , cmoOverwrite
CreateIniKeyValue ini$, "General", "helpfile", help$ , cmoOverwrite
'' We will not do the progman setup under win95
'' mjv% = GetWindowsMajorVersion()
'' miv% = GetWindowsMinorVersion()
'' ver% = mjv%*100 + miv%
'' IF ver% < 395 THEN
'' Create a program group items for PhotoModeler and other apps with full paths
CreateProgmanGroup "PhotoModeler", "", cmoNone
ShowProgmanGroup "PhotoModeler", 1, cmoNone
prog$ = MakePath( DEST$, "pmlx.exe" )
CreateProgmanItem "PhotoModeler", "PhotoModeler LX", prog$, "", cmoOverwrite
'' END IF
'' CloseLogFile
End If
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
'' Inform user about insufficient disk space
''SUB BadDiskSpace STATIC
''BADSTRT:
'' sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfoDlgProc", APPHELP, HELPPROC$)
'' IF sz$ = "REACTIVATE" THEN
'' GOTO BADSTRT
'' END IF
'' ERROR STFQUIT
'' IF sz$ = "CONTINUE" THEN
'' UIPopAll
'' ERROR STFQUIT
'' ELSE
'' GOSUB ASKQUIT
'' GOTO BADSTRT
'' END IF
''END SUB