home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-10-24 | 48.9 KB | 1,644 lines |
-
-
-
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- '' WinComm PRO Setup Script for Microsoft Setup Toolkit for Windows.
- ''
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
- '' '$DEFINE DEBUG
-
- '$INCLUDE 'setupapi.inc'
- '$INCLUDE 'msdetect.inc'
- '$INCLUDE 'msregdb.inc'
- '$INCLUDE 'msshared.inc'
-
- DECLARE FUNCTION LaunchWait LIB "mscuistf.dll" (szCmd$, szOpt$) AS INTEGER
- DECLARE SUB MaxWindow LIB "mscuistf.dll" (hMainWind%)
- DECLARE SUB InitCTL3D LIB "mscuistf.dll" (hInst%)
- DECLARE SUB EndCTL3D LIB "mscuistf.dll" (hInst%)
- DECLARE FUNCTION GetxDialogBaseUnits LIB "mscuistf.dll" AS INTEGER
-
- ''Dialog ID's
- CONST DESTPATH = 300
- CONST DESTPATHHELP = 400
- CONST EXITFAILURE = 700
- CONST EXITQUIT = 600
- CONST EXITSUCCESS = 800
- CONST ENDINSTALL = 900
- CONST OPTIONALLIST = 1500
- CONST OPTIONALLISTHELP = 1600
- CONST REINSTALLIST = 1700
- CONST OVERWRITEMSGFOLDER = 111
-
-
- CONST USERINFO_D = 4000
- CONST USERINFO = 1900
-
- CONST TOOBIG = 2200
- CONST BADPATH = 2300
- CONST ASKQUIT = 2400
- CONST HAALREADYFOUND = 2700
- CONST HAALREADYFOUNDHELP= 101
- CONST ASKOVERWRITESESS = 102
- CONST SPLASHSCREEN = 103
- CONST FORCEEXIT = 2900
- CONST REBOOT = 3000
- CONST REINSTALLISTHELP = 3200
- CONST BILLBOARD1 = 3800
- CONST BILLBOARD2 = 3900
- CONST BILLBOARD3 = 4100
- CONST BILLBOARD4 = 4101
- CONST BILLBOARD5 = 4102
- CONST DEMODISKREADONLY = 4300
- CONST FULLCUST = 120
- CONST PANEL1 = 8001
- CONST PANEL2 = 8002
- CONST PANEL3 = 8003
- CONST PANEL4 = 8004
- CONST PANEL5 = 8005
- CONST PANEL6 = 8006
- CONST PANEL7 = 8007
- CONST PANEL8 = 8008
-
- '' Constants
-
- CONST EXES = 1
- CONST SSFILES = 2
- CONST HMFILES = 3
- CONST CONVERTS = 4
- CONST SCRSAMPLES = 5
- CONST CAMEL = 6
- CONST APPFILES = 7
-
- CONST NONE = -1
- CONST YES = 1
- CONST NO = 0
-
- '' Global variables
-
- GLOBAL CUIDLL$
- GLOBAL SUITEINSTALL%
- GLOBAL REINSTALL%
- GLOBAL ASKEDREINST%
- GLOBAL ENOUGH%
- GLOBAL pass%
- GLOBAL TotalSpace&
- GLOBAL SESSIONFILES$
- GLOBAL SCRIPTSAMPLES$
- GLOBAL HOSTMODEFILES$
- GLOBAL EXECUTABLES$
- GLOBAL CONVERSIONS$
-
- GLOBAL CHECKSTATES$
- GLOBAL STATUSITEMS$
- GLOBAL DRIVETEXT$
- GLOBAL SPACESTEXT$
- GLOBAL VON$
- GLOBAL VOFF$
-
- GLOBAL APPNEEDS$
- GLOBAL EXENEEDS$
- GLOBAL SESSNEEDS$
- GLOBAL SCRNEEDS$
- GLOBAL HMODENEEDS$
- GLOBAL CONVNEEDS$
- GLOBAL DLLNEEDS$
- GLOBAL CAMELNEEDS$
-
- GLOBAL DEST$
- GLOBAL skip%
- GLOBAL DIMTEXT$
- GLOBAL DIMDIR$
- GLOBAL FILEN$
- GLOBAL INI$
- GLOBAL WINCOMMINI$
- GLOBAL WCSECTION$
- GLOBAL IMSECTION$
- GLOBAL SPACESINI$
- GLOBAL WINFAXSPACES$
- GLOBAL WINCOMMSPACES$
- GLOBAL VERSION$
- GLOBAL CONTXTINI$
- GLOBAL ICONGROUPINI$
- GLOBAL stars$
- GLOBAL Install_Pass$
- GLOBAL bOverwrite$
- GLOBAL bFrominstall%
- GLOBAL bKeepMsgFolder$
- CONST LOGO = 1
-
-
-
- DECLARE SUB Install
- DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
- DECLARE FUNCTION MakeBytes(size&) AS STRING
- DECLARE SUB RecalcOptFiles (ftype%, size&)
- DECLARE SUB SetDriveStatus
- DECLARE SUB RecalcSpaceNeeded
- DECLARE SUB AddOptFilesToCopyList (ftype%)
- DECLARE SUB GetWinDriveFreeCost
- DECLARE SUB AddNeededToCopyList
- DECLARE SUB ReadContext
- DECLARE SUB SaveContext
- DECLARE SUB SaveList (list$, items%)
- DECLARE SUB ReadList (list$, items%)
- DECLARE SUB DefaultContext
- DECLARE SUB ReadAllDrvSpaces (list$)
- DECLARE FUNCTION GetDrvUsage (ddrv%) AS LONG
- DECLARE SUB WriteDrvSpaces (ddrv%, dspaces&)
- DECLARE FUNCTION CalcOptCost& (ftype%)
- DECLARE SUB SetGaugePosition
-
- CUIDLL$ = "mscuistf.dll"
- HELPPROC$ = "FHelpDlgProc"
- WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
-
- SESSIONFILES$ = "Session Files"
- SCRIPTSAMPLES$ = "Automation Examples"
- HOSTMODEFILES$ = "Host Mode Files"
- EXECUTABLES$ = "WC Executables"
- CONVERSIONS$ = "Convert Programs"
-
- CHECKSTATES$ = "CheckItemsState"
- STATUSITEMS$ = "StatusItemsText"
- DRIVETEXT$ = "DriveStatusText"
- SPACESTEXT$ = "DiskSpacesText"
- VON$ = "ON"
- VOFF$ = "OFF"
-
- APPNEEDS$ = "AppNeeds"
- EXENEEDS$ = "ExeNeeds"
- HMODENEEDS$ = "HModeNeeds"
- SESSNEEDS$ = "SessionNeeds"
- SCRNEEDS$ = "ScriptNeeds"
- EXTRACOSTS$ = "ExtraCosts"
- CONVNEEDS$ = "ConvertCosts"
- CAMELNEEDS$ = "CamelCosts"
- DLLNEEDS$ = "DLLNeeds"
- DIMTEXT$ = "IM"
- WINCOMMINI$ = MakePath(GetWindowsDir(), "WINCOMM.INI")
- INI$ = "WIN.INI"
- WCSECTION$ = "WinComm"
- IMSECTION$ = "Internet Messenger"
- CONTXTINI$ = "CONTXT.INI"
- ICONGROUPINI$ = "ICONSGRP.INI"
- SPACESINI$ = "SPACES.INI"
- WINFAXSPACES$ = "WinFax_Spaces"
- WINCOMMSPACES$ = "WinComm_Spaces"
- bFrominstall% = 0
- VERSION$ = "1.1"
- TotalSpace& = 0
- Install_Pass$ = ""
-
- stars$ = "**************"
-
- FOR i% = 1 TO 26 STEP 1
- AddListItem EXTRACOSTS$, "0"
- NEXT i%
-
- FOR i% = EXES TO APPFILES STEP 1
- AddListItem CHECKSTATES$, VOFF$
- NEXT i%
-
- ReplaceListItem CHECKSTATES$, APPFILES, VON$
-
- FOR i% = EXES TO APPFILES STEP 1
- AddListItem STATUSITEMS$, ""
- NEXT i%
-
-
- FOR i% = 1 TO 7 STEP 1
- AddListItem DRIVETEXT$, ""
- NEXT i%
-
- FOR i% = 1 TO 26 STEP 1
- AddListItem SPACESTEXT$, "0"
- NEXT i%
-
- szInf$ = GetSymbolValue("STF_SRCINFPATH")
- IF szInf$ = "" THEN
- szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
- END IF
- ReadInfFile szInf$
-
- SetBitmap CUIDLL$, LOGO
- SetTitle "Delrina WinComm PRO Setup"
- SetAbout "Delrina WinComm PRO Setup", "Copyright(C) 1993 Delrina Technology Inc."
-
- i% = SetCopyMode(1)
-
- InitCTL3D HinstFrame()
-
-
-
- STARTSETUP:
- SUITEINSTALL% = 0
- ASKEDREINST% = 0
- tmp$ = GetIniKeyString (INI$, "CommSuite-Inst", "CommSuite")
- IF tmp$ = "Yes" THEN
- SUITEINSTALL% = 1
- ReadAllDrvSpaces SPACESTEXT$
- iniFile$ = GetSymbolValue("STF_CWDDIR") + SPACESINI$
- RemoveIniSection iniFile$, WINCOMMSPACES$, cmoNone
- Install_Pass$ = GetIniKeyString(INI$, "CommSuite-Inst", "Install_Pass")
- IF Install_Pass$ = "2" THEN
- OpenLogFile MakePath (GetWindowsDir (), "WinComm.LOG"), 1
- ReadContext
- GOTO INST
- END IF
- END IF
-
-
- OpenLogFile MakePath (GetWindowsDir (), "WinComm.LOG"), 0
- WriteToLogFile stars$+" INITIALIZATION "+stars$
-
- IF SUITEINSTALL% = 1 THEN
- WriteToLogFile "**Suite Install**"
- END IF
-
- IF SUITEINSTALL% = 0 THEN
- MaxWindow HwndFrame ()
- sz$ = UIStartDlg(CUIDLL$, SPLASHSCREEN, "FInfoDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO STARTSETUP
- ELSEIF sz$ = "EXIT" THEN
- UIPop 1
- ERROR STFQUIT
- END IF
- UIPop 1
- END IF
-
-
- tmp$ = ""
- DEST$ = ""
- REINSTALL% = 0
- GOSUB CHECKFOROLD
-
-
- IF REINSTALL% = 1 THEN
- WriteToLogFile "** Previous WinComm Properties **"
- tmp$ = GetIniKeyString (INI$, WCSECTION$, "MODEMNAME")
- '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- '' If not in win.ini then will be in wincomm.ini
- '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- IF tmp$ = "" THEN
- iniFile$ = WINCOMMINI$
- tmp$ = GetIniKeyString (iniFile$, WCSECTION$, "MODEMNAME")
- END IF
- WriteToLogFile "Modem Type: "+tmp$
- tmp$ = GetIniKeyString (iniFile$, WCSECTION$, "PORTNAME")
- WriteToLogFile "Port: "+tmp$
- tmp$ = GetIniKeyString (iniFile$, WCSECTION$, "PORTTYPE")
- WriteToLogFile "Port Type: "+tmp$
- tmp$ = GetIniKeyString (iniFile$, WCSECTION$, "PULSE")
- WriteToLogFile "Pulse: "+tmp$
- tmp$ = GetIniKeyString (iniFile$, WCSECTION$, "DIALPREFIX")
- WriteToLogFile "Dial Prefix: "+tmp$
- tmp$ = GetIniKeyString (iniFile$, WCSECTION$, "DOWNLOADDIR")
- WriteToLogFile "Download Directory: "+tmp$
- tmp$ = GetIniKeyString (iniFile$, WCSECTION$, "UPLOADDIR")
- WriteToLogFile "Upload Directory: "+tmp$
- END IF
-
-
-
- INSTALLTYPE:
- IF Install_Pass$ = "3" THEN
- sz$ = "FULL"
- ELSEIF Install_Pass$ = "5" THEN
- sz$ = "FULL"
- ELSE
- sz$ = UIStartDlg(CUIDLL$, FULLCUST, "FFullCustDlgProc", 0, "")
- END IF
- IF sz$ = "FULL" THEN
- WriteToLogFile "FULL Install Selected"
-
- IF SUITEINSTALL% = 1 THEN
- CreateIniKeyValue INI$, "CommSuite-Inst", "OPTION", "COMPLETE", cmoOverwrite
- END IF
-
- UIPop 1
- GOTO FULLINST
- ELSEIF sz$ = "MIN" THEN
- WriteToLogFile "MINIMUM Install Selected"
- IF SUITEINSTALL% = 1 THEN
- CreateIniKeyValue INI$, "CommSuite-Inst", "OPTION", "LAPTOP", cmoOverwrite
- END IF
- UIPop 1
- GOTO MININST
- ELSEIF sz$ = "CUST" THEN
- WriteToLogFile "CUSTOM Install Selected"
- UIPop 1
- IF SUITEINSTALL% = 1 THEN
- CreateIniKeyValue INI$, "CommSuite-Inst", "OPTION", "CUSTOM", cmoOverwrite
- END IF
- GOTO CUSTOM
- ELSEIF sz$ = "BACK" THEN
- UIPop 1
- GOTO STARTSETUP
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO INSTALLTYPE
- ELSE
- GOSUB ASKQUIT
- GOTO INSTALLTYPE
- END IF
-
-
-
-
-
-
-
-
- FULLINST:
- GOSUB GETPATH
-
- ReplaceListItem CHECKSTATES$, EXES, VON$
- ReplaceListItem CHECKSTATES$, SSFILES, VON$
- ReplaceListItem CHECKSTATES$, HMFILES, VON$
- ReplaceListItem CHECKSTATES$, CONVERTS, VON$
- ReplaceListItem CHECKSTATES$, SCRSAMPLES, VON$
- ReplaceListItem CHECKSTATES$, CAMEL, VON$
-
- '' Clean Up Old Spaces Before Updating spaces.ini
- iniFile$ = GetSymbolValue("STF_CWDDIR") + SPACESINI$
- RemoveIniSection iniFile$, WINCOMMSPACES$, cmoNone
- GetWinDriveFreeCost
- RecalcSpaceNeeded
- IF ENOUGH% = 0 THEN
- GOSUB TOOBIG
- GOTO CUSTOM
- END IF
- GOTO INST
-
-
- MININST:
- GOSUB GETPATH
-
- ReplaceListItem CHECKSTATES$, EXES, VON$
- ReplaceListItem CHECKSTATES$, SSFILES, VOFF$
- ReplaceListItem CHECKSTATES$, HMFILES, VOFF$
- ReplaceListItem CHECKSTATES$, CONVERTS, VOFF$
- ReplaceListItem CHECKSTATES$, SCRSAMPLES, VOFF$
- ReplaceListItem CHECKSTATES$, CAMEL, VOFF$
-
- '' Clean Up Old Spaces Before Updating spaces.ini
- iniFile$ = GetSymbolValue("STF_CWDDIR") + SPACESINI$
- RemoveIniSection iniFile$, WINCOMMSPACES$, cmoNone
- GetWinDriveFreeCost
- RecalcSpaceNeeded
- IF ENOUGH% = 0 THEN
- GOSUB TOOBIG
- GOTO CUSTOM
- END IF
- GOTO INST
-
-
-
-
-
-
-
-
- CUSTOM:
- GOSUB GETPATH
-
- ReplaceListItem CHECKSTATES$, EXES, VON$
- ReplaceListItem CHECKSTATES$, SSFILES, VON$
- ReplaceListItem CHECKSTATES$, HMFILES, VON$
- ReplaceListItem CHECKSTATES$, CONVERTS, VON$
- ReplaceListItem CHECKSTATES$, SCRSAMPLES, VON$
- ReplaceListItem CHECKSTATES$, CAMEL, VON$
-
- '' Clean Up Old Spaces Before Updating spaces.ini
- iniFile$ = GetSymbolValue("STF_CWDDIR") + SPACESINI$
- RemoveIniSection iniFile$, WINCOMMSPACES$, cmoNone
- GetWinDriveFreeCost
- RecalcSpaceNeeded
-
-
- CUSTOMDLG:
- IF REINSTALL% = 0 THEN
- sz$ = UIStartDlg(CUIDLL$, OPTIONALLIST, "FCustInstDlgProc", OPTIONALLISTHELP, HELPPROC$)
- ELSE
- sz$ = UIStartDlg(CUIDLL$, REINSTALLIST, "FCustInstDlgProc", REINSTALLISTHELP, HELPPROC$)
- END IF
- IF sz$ = "CONTINUE" THEN
- '' Clean Up Old Spaces Before Updating spaces.ini
- iniFile$ = GetSymbolValue("STF_CWDDIR") + SPACESINI$
- RemoveIniSection iniFile$, WINCOMMSPACES$, cmoNone
- RecalcSpaceNeeded
- IF ENOUGH% = 0 THEN
- GOSUB TOOBIG
- GOTO CUSTOMDLG
- END IF
- AtLeastOne% = 0
- FOR i%=EXES TO CAMEL STEP 1
- IF GetListItem(CHECKSTATES$, i%) = VON$ THEN
- AtLeastOne% = 1
- END IF
- NEXT i%
- IF AtLeastOne% = 0 THEN
- j% = DoMsgBox ("You must enter at least one option to install, or press 'Exit Setup' if you wish to leave.", "WinComm Setup Error", MB_OK)
- GOTO CUSTOMDLG
- END IF
- UIPop 1
- GOTO INSTCUST
- ELSEIF sz$="CHK1" OR sz$="CHK2" OR sz$="CHK3" OR sz$="CHK4" OR sz$="CHK5" OR sz$="CHK6" THEN
- option% = VAL(MID$(sz$, 4,1))
- cost& = 0
- IF sz$="CHK1" THEN
- cost& = CalcOptCost& (APPFILES)
- IF cost& < 0 THEN
- cost& = 0
- END IF
- END IF
- cost& = cost& + CalcOptCost& (option%)
- IF cost& < 0 THEN
- cost& = 0
- END IF
- IF GetListItem (CHECKSTATES$, option%) = VON$ THEN
- TotalSpace& = TotalSpace& + cost&
- ELSE
- TotalSpace& = TotalSpace& - cost&
- cost& = 0
- END IF
- ReplaceListItem STATUSITEMS$, option%, MakeBytes(cost&)
- ReplaceListItem DRIVETEXT$, 2, MakeBytes(TotalSpace&)
- GOTO CUSTOMDLG
- ELSEIF sz$ = "PATH" THEN
- GOSUB GETPATH
- '' Clean Up Old Spaces Before Updating spaces.ini
- iniFile$ = GetSymbolValue("STF_CWDDIR") + SPACESINI$
- RemoveIniSection iniFile$, WINCOMMSPACES$, cmoNone
- GetWinDriveFreeCost
- RecalcSpaceNeeded
- GOTO CUSTOMDLG
- ELSEIF sz$ = "BACK" THEN
- UIPop 1
- GOTO INSTALLTYPE
- ELSEIF sz$ = "REACTIVATE" THEN
- '' Clean Up Old Spaces Before Updating spaces.ini
- iniFile$ = GetSymbolValue("STF_CWDDIR") + SPACESINI$
- RemoveIniSection iniFile$, WINCOMMSPACES$, cmoNone
- RecalcSpaceNeeded
- GOTO CUSTOMDLG
- ELSEIF sz$ = "EXIT" THEN
- GOSUB ASKQUIT
- GOTO CUSTOMDLG
- ELSE
- GOSUB ASKQUIT
- GOTO CUSTOMDLG
- END IF
-
- INSTCUST:
- IF GetListItem (CHECKSTATES$, EXES) = VON$ THEN
- WriteToLogFile "Executables chosen"
- END IF
- IF GetListItem (CHECKSTATES$, SSFILES) = VON$ THEN
- WriteToLogFile "Session files chosen"
- END IF
- IF GetListItem (CHECKSTATES$, HMFILES) = VON$ THEN
- WriteToLogFile "Host Mode files chosen"
- END IF
- IF GetListItem (CHECKSTATES$, CONVERTS) = VON$ THEN
- WriteToLogFile "Import for WinComm chosen"
- END IF
- IF GetListItem (CHECKSTATES$, SCRSAMPLES) = VON$ THEN
- WriteToLogFile "DCAPI Manual and Sample files chosen"
- END IF
- IF GetListItem (CHECKSTATES$, CAMEL) = VON$ THEN
- WriteToLogFile "Internet Messenger files chosen"
- END IF
-
-
-
- INST:
- WriteToLogFile stars$+" STARTING INSTALLATION "+stars$
-
- IF Install_Pass$ <> "2" THEN
- bOverwrite$ = "0"
- bKeepMsgFolder$ = "0"
- IF GetListItem(CHECKSTATES$, CAMEL) = VON$ THEN
- path$ = MakePath(DEST$, DIMTEXT$)
- path$ = MakePath(path$, "$COMPIPE")
- path$ = MakePath(path$, "dbnote.dbf")
- IF DoesFileExist (path$, cmoExists) THEN
- bKeepMsgFolder$ = "1"
- OVERWRTIEMSGFDL:
- sz$ = UIStartDlg(CUIDLL$, OVERWRITEMSGFOLDER, "FInfoDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO OVERWRTIEMSGFDL
- ELSEIF sz$ = "EXIT" THEN
- WriteToLogFile "NOTE: Chose to Keep Existing Message Folder"
- bKeepMsgFolder$ = "0"
- END IF
- UIPop 1
- END IF
- END IF
- IF GetListItem(CHECKSTATES$, SSFILES) = VON$ THEN
- IF DoesFileExist (MakePath (DEST$, "default.wcs"), cmoExists) THEN
- OVERWRITESESSDLG:
- sz$ = UIStartDlg(CUIDLL$, ASKOVERWRITESESS, "FInfoDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO OVERWRITESESSDLG
- ELSEIF sz$ = "EXIT" THEN
- WriteToLogFile "NOTE: Chose to Overwrite Existing Phonebook Entries"
- bOverwrite$ = "1"
- END IF
- UIPop 1
- END IF
- END IF
- IF Install_Pass$ = "1" OR Install_Pass$ = "5" THEN
- SaveContext
- CreateIniKeyValue INI$, "CommSuite-Inst", "PassOneStatus", "1", cmoOverwrite
- CreateIniKeyValue INI$, "CommSuite-Inst", "PassTwoStatus", "1", cmoOverwrite
- CreateIniKeyValue INI$, "CommSuite-Inst", "DEST", DEST$, cmoOverwrite
- GOTO PASSONEQUIT
- END IF
-
- END IF
-
- install
-
- REG:
-
- szWinDir$ = GetWindowsDir()
- szRegFile$ = MakePath(szWinDir$, "REG.DAT")
- i% = IsFileWritable(szRegFile$)
- IF i% = 0 THEN
- goto ENDINST
- END IF
-
- i% = DoesRegKeyExist(".WCS")
- IF i% = 0 THEN
- CreateRegKeyValue ".WCS", "WinComm"
- END IF
-
- CreateRegKeyValue "WinComm", "Delrina WinComm PRO"
- szValue$ = MakePath(DEST$, "wincomm.EXE %1")
- CreateRegKeyValue "wincomm\shell\open\command", szValue$
- CreateRegKeyValue "wincomm\protocol\StdFileEditing\verb\0", "Edit"
- szValue$ = MakePath(DEST$, "wincomm.EXE")
- CreateRegKeyValue "wincomm\protocol\StdFileEditing\server", szValue$
-
- ENDINST:
-
- '' Update/Create wincomm.ini entries
- CreateIniKeyValue WINCOMMINI$, WCSECTION$, "VERSION", VERSION$, cmoOverwrite
- CreateIniKeyValue WINCOMMINI$, WCSECTION$, "EXEPATH", DEST$, cmoOverwrite
- CreateIniKeyValue WINCOMMINI$, WCSECTION$, "Directory", DEST$, cmoOverwrite
- CreateIniKeyValue WINCOMMINI$, WCSECTION$, "RegInitString", "AT&FB0V1M1L2X4&D2S7=120\", cmoOverwrite
-
- '' Remove wincomm.ini entries
- '' SP don't want to force registration if user have registered
- '' RemoveIniKey WINCOMMINI$, WCSECTION$, "GWN", cmoNone
- RemoveIniKey WINCOMMINI$, WCSECTION$, "IRQindex", cmoNone
-
- '' Copy Old wincomm section entries from win.ini to wincomm.ini
- tmp$ = GetIniKeyString (INI$, "WinComm", "PORTNAME")
- IF tmp$ <> "" THEN
- CreateIniKeyValue WINCOMMINI$, WCSECTION$, "PORTNAME", tmp$, cmoOverwrite
- END IF
-
- tmp$ = GetIniKeyString (INI$, "WinComm", "PORTTYPE")
- IF tmp$ <> "" THEN
- CreateIniKeyValue WINCOMMINI$, WCSECTION$, "PORTTYPE", tmp$, cmoOverwrite
- END IF
-
- tmp$ = GetIniKeyString (INI$, "WinComm", "MODEMNAME")
- IF tmp$ <> "" THEN
- CreateIniKeyValue WINCOMMINI$, WCSECTION$, "MODEMNAME", tmp$, cmoOverwrite
- END IF
-
- tmp$ = GetIniKeyString (INI$, "WinComm", "PULSE")
- IF tmp$ <> "" THEN
- CreateIniKeyValue WINCOMMINI$, WCSECTION$, "PULSE", tmp$, cmoOverwrite
- END IF
-
- tmp$ = GetIniKeyString (INI$, "WinComm", "DIALPREFIX")
- IF tmp$ <> "" THEN
- CreateIniKeyValue WINCOMMINI$, WCSECTION$, "DIALPREFIX", tmp$, cmoOverwrite
- END IF
-
- tmp$ = GetIniKeyString (INI$, "WinComm", "BAUDRATE")
- IF tmp$ <> "" THEN
- CreateIniKeyValue WINCOMMINI$, WCSECTION$, "BAUDRATE", tmp$, cmoOverwrite
- END IF
-
- tmp$ = GetIniKeyString (INI$, "WinComm", "DOWNLOADDIR")
- IF tmp$ <> "" THEN
- CreateIniKeyValue WINCOMMINI$, WCSECTION$, "DOWNLOADDIR", tmp$, cmoOverwrite
- END IF
-
- tmp$ = GetIniKeyString (INI$, "WinComm", "UPLOADDIR")
- IF tmp$ <> "" THEN
- CreateIniKeyValue WINCOMMINI$, WCSECTION$, "UPLOADDIR", tmp$, cmoOverwrite
- END IF
-
-
- '' Create Internet Messenger Section
- IF GetListItem (CHECKSTATES$, CAMEL) = VON$ THEN
- CreateIniKeyValue WINCOMMINI$, IMSECTION$, "ExePath", DEST$+ "\" + DIMTEXT$, cmoOverwrite
- END IF
-
- '' for hsetup.c (wcsetup.exe)
- CreateIniKeyValue WINCOMMINI$, WCSECTION$, "FromInstall", "Yes", cmoOverwrite
-
-
- IF SUITEINSTALL% = 0 THEN
- path$ = MakePath(DEST$, "WCSETUP.EXE")
-
- A$ = CURDIR$
- CHDRIVE DEST$
- CHDIR DEST$
-
- MaxWindow HwndFrame ()
-
- IF GetListItem(CHECKSTATES$, EXES) = VON$ THEN
- j% = LaunchWait (path$, "")
- ELSE
- j% = DoMsgBox ("Components of WinComm PRO 1.1 are installed successfully.", "WinComm PRO 1.1 Setup", MB_OK)
- END IF
-
- CHDRIVE A$
- CHDIR A$
- END IF
-
- '' Remove Old wincomm section from win.ini
- RemoveIniSection INI$, WCSECTION$, cmoNone
-
-
-
- QUIT:
- ON ERROR GOTO ERRQUIT
-
- IF ERR = 0 THEN
- GOTO ERRQUIT
- ELSEIF ERR = STFQUIT THEN
- dlg% = EXITQUIT
- WriteToLogFile "User Canceled out of Setup"
- ELSEIF ERR = 13 THEN
- ERR = 0
- RESUME INST
- ELSE
- dlg% = EXITFAILURE
- WriteToLogFile "Setup Failed"
- END IF
-
-
- QUITL1:
- IF SUITEINSTALL% = 0 THEN
- sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
- END IF
- IF sz$ = "REACTIVATE" THEN
- GOTO QUITL1
- END IF
- UIPop 1
-
- cursor% = ShowWaitCursor ()
- EndCTL3D HinstFrame()
- iniFile$ = GetSymbolValue("STF_CWDDIR") + SPACESINI$
- RemoveFile iniFile$, cmoForce
- CloseLogFile
- END
-
- ERRQUIT:
- IF ERR = 0 THEN
- sz$ = "Setup completed successfully"
- IF Install_Pass$ = "2" OR Install_Pass$ = "3" THEN
- CreateIniKeyValue INI$, "CommSuite-Inst", "PassTwoStatus", "1", cmoOverwrite
- CreateIniKeyValue INI$, "CommSuite-Inst", "DEST", DEST$, cmoOverwrite
- END IF
-
- ELSE
- sz$ = "Setup sources were corrupted, call Delrina Corporation!"
- END IF
-
- cursor% = ShowWaitCursor ()
- WriteToLogFile sz$
- EndCTL3D HinstFrame()
- iniFile$ = GetSymbolValue("STF_CWDDIR") + SPACESINI$
- RemoveFile iniFile$, cmoForce
- CloseLogFile
- END
-
- PASSONEQUIT:
- cursor% = ShowWaitCursor ()
- CloseLogFile
- EndCTL3D HinstFrame()
- END
-
- CHECKFOROLD:
-
- IF REINSTALL% <> 3 THEN
- REINSTALL% = 0
- tmp$ = GetIniKeyString (INI$, WCSECTION$, "EXEPATH")
- ''***********************************************************************
- '' from version 1.1, no win.ini section for wincomm, moved to wincomm.ini
- ''***********************************************************************
- IF tmp$ = "" THEN
- tmp$ = GetIniKeyString (WINCOMMINI$, WCSECTION$, "EXEPATH")
- END IF
- WriteToLogFile "Checking for WinComm in WIN.INI"
- IF tmp$ = "" THEN
- WriteToLogFile "Not Found"
- DEST$ = "C" + ":\wincomm"
- ELSE
- exe$ = tmp$ + "\wincomm.exe"
- WriteToLogFile "Found EXEPATH="+tmp$
- WriteToLogFile "Checking if WINCOMM.EXE exists"
-
- IF DoesFileExist (exe$, cmoExists) THEN
- WriteToLogFile "WINCOMM.EXE found in the specified path"
- REINSTALL% = 1
- ELSE
- WriteToLogFile "WINCOMM.EXE not found in the specified path"
- END IF
- DEST$ = tmp$
- END IF
- ELSE
-
- exe$ = DEST$ + "\wincomm.exe"
- WriteToLogFile "User entered new path - checking existance: "+exe$
- IF DoesFileExist (exe$, cmoExists) THEN
- WriteToLogFile "WINCOMM.EXE found in the new path"
- REINSTALL% = 1
- ELSE
- WriteToLogFile "WINCOMM.EXE not found in the new path"
- REINSTALL% = 0
- END IF
- END IF
- IF REINSTALL% = 1 THEN
- CFODLG:
- ASKEDREINST% = 1
- WriteToLogFile stars$+" WELCOME/UPDATE SCREEN "+stars$
- sz$ = UIStartDlg(CUIDLL$, HAALREADYFOUND, "FInfoDlgProc", HAALREADYFOUNDHELP, HELPPROC$)
- IF sz$ = "REACTIVATE" THEN
- GOTO CFODLG
- ELSEIF sz$ = "CONTINUE" THEN
- WriteToLogFile "Continue from NEW/UPDATE screen (Update selected)"
- WriteToLogFile "************" + sz$
- REINSTALL% = 1
- ELSE
- GOSUB AskQuit
- GOTO CFODLG
- END IF
- UIPop 1
- END IF
- RETURN
-
-
-
-
- GETPATH:
- SetSymbolValue "EditTextIn", DEST$
- SetSymbolValue "EditFocus", "END"
- tmp$ = DEST$
-
- GETPATHL1:
- sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", DESTPATHHELP, HELPPROC$)
- IF sz$ = "CONTINUE" THEN
- DEST$ = GetSymbolValue("EditTextOut")
- IF MID$ (DEST$, LEN(DEST$), 1) = "\" THEN
- DEST$ = MID$ (DEST$, 1, LEN(DEST$)-1)
- END IF
- IF IsDirWritable(DEST$) = 0 THEN
- GOSUB BADPATH
- GOTO GETPATHL1
- END IF
- UIPop 1
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO GETPATHL1
- ELSEIF sz$ = "EXIT" THEN
- GOSUB ASKQUIT
- GOTO GETPATH
- ELSE
- GOTO GETPATHL1
- END IF
-
- IF ASKEDREINST% = 0 THEN
- REINSTALL% = 3
- GOSUB CHECKFOROLD
- END IF
-
- SetDriveStatus
- ReplaceListItem DRIVETEXT$, 1, MID$(DEST$, 1, 1) + ":"
-
- RETURN
-
-
- 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
-
-
-
-
-
- TOOBIG:
- sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- '' Clean Up Old Spaces Before Updating spaces.ini
- iniFile$ = GetSymbolValue("STF_CWDDIR") + SPACESINI$
- RemoveIniSection iniFile$, WINCOMMSPACES$, cmoNone
- RecalcSpaceNeeded
- SetDriveStatus
- GOTO TOOBIG
- ELSEIF sz$ = "CONTINUE" THEN
- UIPopAll
- SetSymbolValue "EditTextIn", DEST$
- GOTO GETPATHL1
- END IF
- UIPop 1
- RETURN
-
-
- DEMOERR1:
- sz$ = UIStartDlg(CUIDLL$, DEMODISKREADONLY, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO DEMOERR1
- END IF
- UIPop 1
- RETURN
-
-
- '*************************************************************************
- '**
- '** Purpose: Set Gauge Position to upper right corner
- '**
- '*************************************************************************
- SUB SetGaugePosition STATIC
-
- dx% = GetxDialogBaseUnits()
- x% = (( GetScreenWidth() * 4 ) / dx% ) - 160
-
- '' Copy Gauge is 190x90 Dlg Units
- SetCopyGaugePosition x%, 10
- END SUB
-
-
- '*************************************************************************
- '**
- '** Purpose: Save a list to an ini file
- '**
- '*************************************************************************
- SUB SaveList (list$, items%) STATIC
- iniFile$ = GetSymbolValue("STF_CWDDIR") + CONTXTINI$
- FOR i% = 1 TO items% STEP 1
- key$ = list$ + LTRIM$(STR$(i%))
- value$ = GetListItem(list$, i%)
- CreateIniKeyValue iniFile$, WCSECTION$, key$, value$, cmoOverwrite
- NEXT i%
- END SUB
-
-
- '**************************************************************************
- '**
- '** Purpose: Read disk space usage from spaces.ini WinFax_Spaces section
- '**
- '**************************************************************************
- SUB ReadAllDrvSpaces (list$) STATIC
- iniFile$ = GetSymbolValue("STF_CWDDIR") + SPACESINI$
- FOR i% = 1 TO 26 STEP 1
- key$ = LTRIM$(STR$(i%-1))
- value$ = GetIniKeyString (iniFile$, WINFAXSPACES$, key$)
- IF value$ <> "" THEN
- ReplaceListItem list$, i%, value$
- END IF
- NEXT i%
- END SUB
-
-
- '*************************************************************************
- '**
- '** Purpose: Write disk space usage to spaces.ini WinComm_Spaces section
- '**
- '*************************************************************************
- SUB WriteDrvSpaces (ddrv%, dspaces&) STATIC
- iniFile$ = GetSymbolValue("STF_CWDDIR") + SPACESINI$
- key$ = LTRIM$(STR$(ddrv%))
- value$ = LTRIM$(STR$(dspaces&))
- CreateIniKeyValue iniFile$, WINCOMMSPACES$, key$, value$, cmoOverwrite
- END SUB
-
-
- '*************************************************************************
- '**
- '** Purpose: Get spaces from SPACESTEXTS$
- '**
- '*************************************************************************
- FUNCTION GetDrvUsage (ddrv%) STATIC AS LONG
- usage$ = GetListItem(SPACESTEXT$, ddrv%)
- GetDrvUsage = VAL (usage$)
- END FUNCTION
-
-
- '*************************************************************************
- '**
- '** Purpose: Read a list from an ini file
- '**
- '*************************************************************************
- SUB ReadList (list$, items%) STATIC
- iniFile$ = GetSymbolValue("STF_CWDDIR") + CONTXTINI$
- FOR i% = 1 TO items% STEP 1
- key$ = list$ + LTRIM$(STR$(i%))
- value$ = GetIniKeyString (iniFile$, WCSECTION$, key$)
- ReplaceListItem list$, i%, value$
- NEXT i%
- END SUB
-
- '*************************************************************************
- '**
- '** Purpose: Save Context Just Before install is called
- '**
- '*************************************************************************
- SUB SaveContext STATIC
- iniFile$ = GetSymbolValue("STF_CWDDIR") + CONTXTINI$
- SaveList CHECKSTATES$, APPFILES
- SaveList STATUSITEMS$, APPFILES
- SaveList DRIVETEXT$, 7
- CreateIniKeyValue iniFile$, WCSECTION$, "DEST", DEST$, cmoOverwrite
- CreateIniKeyValue iniFile$, WCSECTION$, "bOverwrite", bOverwrite$, cmoOverwrite
- CreateIniKeyValue iniFile$, WCSECTION$, "bKeepMsgFolder", bKeepMsgFolder$, cmoOverwrite
- END SUB
-
-
- '*************************************************************************
- '**
- '** Purpose: Provide default Context Just Before install is called
- '**
- '*************************************************************************
- SUB DefaultContext STATIC
- FOR i% = 1 TO APPFILES STEP 1
- ReplaceListItem CHECKSTATES$, i%, VON$
- NEXT i%
- bOverwrite$ = "0"
- END SUB
-
- '*************************************************************************
- '**
- '** Purpose: Read Context Just Before install is called
- '**
- '*************************************************************************
- SUB ReadContext STATIC
- iniFile$ = GetSymbolValue("STF_CWDDIR") + CONTXTINI$
- ReadList CHECKSTATES$, APPFILES
- ReadList STATUSITEMS$, APPFILES
- ReadList DRIVETEXT$, 7
- DEST$ = GetIniKeyString (iniFile$, WCSECTION$, "DEST")
- bOverwrite$ = GetIniKeyString (iniFile$, WCSECTION$, "bOverwrite")
- bKeepMsgFolder$ = GetIniKeyString (iniFile$, WCSECTION$, "bKeepMsgFolder")
- ENOUGH% = 0
- SUITEINSTALL% = 1
- END SUB
-
-
- '*************************************************************************
- '**
- '** Purpose: Copy necessary and optional files onto the user's hard drive.
- '**
- '*************************************************************************
- SUB install STATIC
- SrcDir$ = GetSymbolValue("STF_SRCDIR")
- CreateDir DEST$, cmoNone
- convert% = 0
-
- ClearCopyList
- bFrominstall% = 1
-
- AddNeededToCopyList
- AddSectionFilesToCopyList "Files", SrcDir$, DEST$
-
- width% = GetScreenWidth()
- IF width% <= 800 THEN
- AddSectionKeyFileToCopyList "PRF Files", "prf1prf", SrcDir$, DEST$
- ELSE
- AddSectionKeyFileToCopyList "PRF Files", "prf2prf", SrcDir$, DEST$
- END IF
-
- AddSectionFilesToCopyList "WC Executables - EXCA", SrcDir$, DEST$
- convert% = 0
- FOR i% = EXES TO APPFILES-1 STEP 1
- IF GetListItem(CHECKSTATES$, i%) = VON$ THEN
- IF i% <> SSFILES THEN
- AddOptFilesToCopyList i%
- ELSE
- IF DoesFileExist (MakePath (DEST$, "default.wcs"), cmoExists) THEN
- IF bOverwrite$ = "1" THEN
- AddOptFilesToCopyList i%
- END IF
- ELSE
- AddOptFilesToCopyList i%
- END IF
-
-
- IF DoesFileExist (MakePath (DEST$, "hostlist.wcs"), cmoExists) THEN
- IF bOverwrite$ = "1" THEN
- AddSectionFilesToCopyList "XSession Files", GetSymbolValue("STF_SRCDIR"), DEST$
- END IF
- ELSE
- AddSectionFilesToCopyList "XSession Files", GetSymbolValue("STF_SRCDIR"), DEST$
- END IF
- END IF
- IF i% = CONVERTS THEN
- convert% = 1
- END IF
- END IF
- NEXT i%
-
- ClearBillboardList
- '' AddToBillboardList "mscuistf.dll", BILLBOARD1, "BillboardDlg", 1
- '' AddToBillboardList "mscuistf.dll", BILLBOARD2, "BillboardDlg", 1
- '' AddToBillboardList "mscuistf.dll", BILLBOARD3, "BillboardDlg", 1
- '' AddToBillboardList "mscuistf.dll", BILLBOARD4, "BillboardDlg", 1
- '' AddToBillboardList "mscuistf.dll", BILLBOARD5, "BillboardDlg", 1
-
- AddToBillboardList "mscuistf.dll", PANEL1, "FModelessBottomLeftDlgProc", 1
- AddToBillboardList "mscuistf.dll", PANEL2, "FModelessBottomLeftDlgProc", 1
- AddToBillboardList "mscuistf.dll", PANEL3, "FModelessBottomLeftDlgProc", 1
- AddToBillboardList "mscuistf.dll", PANEL4, "FModelessBottomLeftDlgProc", 1
- AddToBillboardList "mscuistf.dll", PANEL5, "FModelessBottomLeftDlgProc", 1
-
- IF GetListItem (CHECKSTATES$, CAMEL) = VON$ THEN
- AddToBillboardList "mscuistf.dll", PANEL6, "FModelessBottomLeftDlgProc", 1
- AddToBillboardList "mscuistf.dll", PANEL7, "FModelessBottomLeftDlgProc", 1
- AddToBillboardList "mscuistf.dll", PANEL8, "FModelessBottomLeftDlgProc", 1
- END IF
-
- MaxWindow HwndFrame ()
- SetGaugePosition
- CopyFilesInCopyList
-
- IF GetListItem (CHECKSTATES$, CAMEL) = VON$ THEN
-
-
- '' Create Camel Subdirectories
-
- path$ = MakePath(DEST$, DIMTEXT$)
-
- subpath$ = MakePath(path$, "$COMPIPE")
- CreateDir subpath$, cmoNone
-
- subpath$ = MakePath(path$, "$PACKFOL")
- CreateDir subpath$, cmoNone
-
- subpath$ = MakePath(path$, "$PENDING")
- CreateDir subpath$, cmoNone
-
- subpath$ = MakePath(path$, "DELETED")
- CreateDir subpath$, cmoNone
-
- subpath$ = MakePath(path$, "DRAFT")
- CreateDir subpath$, cmoNone
-
- subpath$ = MakePath(path$, "INCOMING")
- CreateDir subpath$, cmoNone
-
- subpath$ = MakePath(path$, "OUTGOING")
- CreateDir subpath$, cmoNone
-
- subpath$ = MakePath(path$, "PCNOTE.PC")
- CreateDir subpath$, cmoNone
-
- subpath$ = MakePath(path$, "$UIPIPE")
- CreateDir subpath$, cmoNone
-
- subpath$ = MakePath(path$, "TMP")
- CreateDir subpath$, cmoNone
-
- IF bKeepMsgFolder$ = "0" THEN
- '' Copy/Overwrite the dbnote.dbf and dbnote.dbt files to the subdir's
-
- DIMDIR$ = DEST$ + "\" + DIMTEXT$
- pass% = 0
- FILEN$ = "dbnote.dbf"
- Src$ = MakePath(DIMDIR$, FILEN$)
- CopyDbnote:
- Dst$ = MakePath(DIMDIR$, "$COMPIPE\" + FILEN$)
- CopyFile Src$, Dst$, cmoNone, 0
- Dst$ = MakePath(DIMDIR$, "$PENDING\" + FILEN$)
- CopyFile Src$, Dst$, cmoNone, 0
- Dst$ = MakePath(DIMDIR$, "$PACKFOL\" + FILEN$)
- CopyFile Src$, Dst$, cmoNone, 0
- Dst$ = MakePath(DIMDIR$, "DELETED\" + FILEN$)
- CopyFile Src$, Dst$, cmoNone, 0
- Dst$ = MakePath(DIMDIR$, "DRAFT\" + FILEN$)
- CopyFile Src$, Dst$, cmoNone, 0
- Dst$ = MakePath(DIMDIR$, "INCOMING\" + FILEN$)
- CopyFile Src$, Dst$, cmoNone, 0
- Dst$ = MakePath(DIMDIR$, "OUTGOING\" + FILEN$)
- CopyFile Src$, Dst$, cmoNone, 0
- Dst$ = MakePath(DIMDIR$, "PCNOTE.PC\" + FILEN$)
- CopyFile Src$, Dst$, cmoNone, 0
-
- IF pass% = 0 THEN
- pass% = 1
- FILEN$ = "dbnote.dbt"
- Src$ = MakePath(DIMDIR$, FILEN$)
- GOTO CopyDbnote
- END IF
- END IF
- END IF
-
- sz$ = "Delrina WinComm PRO 1.1"
- CurIniNum& = 0
-
- suite$ = GetSymbolValue("STF_CWDDIR") + ICONGROUPINI$
-
- IF SUITEINSTALL% = 0 THEN
- CreateProgmanGroup sz$, "", cmoNone
- ShowProgmanGroup sz$, 1, cmoNone
- WriteToLogFile sz$ + " Program Manager group created"
- END IF
- IF GetListItem(CHECKSTATES$, EXES) = VON$ THEN
- IF SUITEINSTALL% = 0 THEN
- CreateProgmanItem sz$, "Delrina WinComm PRO "+VERSION$, MakePath(DEST$,"wincomm.exe"), "", cmoOverwrite
- WriteToLogFile "Delrina WinComm PRO Program Manager item created"
- ELSE
- CreateIniKeyValue suite$, "WinComm", LTRIM$(STR$(CurIniNum&)), "[AddItem ("+MakePath(DEST$, "wincomm.exe")+", Delrina WinComm PRO "+VERSION$+")]", cmoOverwrite
- CurIniNum& = CurIniNum& + 1
- END IF
- END IF
-
- IF GetListItem(CHECKSTATES$, CAMEL) = VON$ THEN
- IF SUITEINSTALL% = 0 THEN
- CreateProgmanItem sz$, "Internet Messenger", MakePath(DEST$+"\"+DIMTEXT$, DIMTEXT$+".exe"), "", cmoOverwrite
- WriteToLogFile "Internet Messenger Program Manager item created"
- ELSE
- CreateIniKeyValue suite$, "WinComm", LTRIM$(STR$(CurIniNum&)), "[AddItem (" + MakePath(DEST$+"\"+DIMTEXT$, DIMTEXT$+".exe") + ", Internet Messenger)]", cmoOverwrite
- CurIniNum& = CurIniNum& + 1
- END IF
- END IF
-
-
- IF convert% = 1 THEN
- IF SUITEINSTALL% = 0 THEN
- CreateProgmanItem sz$, "Import for WinComm", MakePath(DEST$,"import.exe"), "", cmoOverwrite
- WriteToLogFile "Import for WinComm Program Manager item created"
- ELSE
- CreateIniKeyValue suite$, "WinComm", LTRIM$(STR$(CurIniNum&)), "[AddItem ("+MakePath(DEST$,"import.exe")+", Import for WinComm)]", cmoOverwrite
- CurIniNum& = CurIniNum& + 1
- END IF
- END IF
-
- IF SUITEINSTALL% = 0 THEN
- tmp$ = MakePath(szWinDir$, "notepad.exe") + " "+ MakePath(DEST$, "readme.")
- CreateProgmanItem sz$, "WinComm Read Me", tmp$, "", cmoOverwrite
- WriteToLogFile "Delrina WinComm PRO Read Me Program Manager item created"
- tmp$ = MakePath(szWinDir$, "notepad.exe") + " " + MakePath (GetWindowsDir (), "wincomm.log")
- CreateProgmanItem sz$, "WinComm Install Log", tmp$, "", cmoOverwrite
- WriteToLogFile "Delrina WinComm PRO Install Log Program Manager item created"
- tmp$ = MakePath(DEST$, "deltest.exe")
- CreateProgmanItem sz$, "Delrina TEST", tmp$, "", cmoOverwrite
- WriteToLogFile "Delrina TEST Program Manager item created"
- ELSE
- tmp$ = MakePath(szWinDir$, "notepad.exe") + " "+ MakePath(DEST$, "readme.")
- CreateIniKeyValue suite$, "WinComm", LTRIM$(STR$(CurIniNum&)), "[AddItem ("+tmp$+", WinComm Read Me)]", cmoOverwrite
- CurIniNum& = CurIniNum& + 1
- tmp$ = MakePath(szWinDir$, "notepad.exe") + " " + MakePath (GetWindowsDir (), "wincomm.log")
- CreateIniKeyValue suite$, "WinComm", LTRIM$(STR$(CurIniNum&)), "[AddItem ("+tmp$+", WinComm Install Log)]", cmoOverwrite
- CurIniNum& = CurIniNum& + 1
- tmp$ = MakePath(DEST$, "deltest.exe")
- CreateIniKeyValue suite$, "WinComm", LTRIM$(STR$(CurIniNum&)), "[AddItem (" + tmp$ + ", Delrina TEST)]", cmoOverwrite
- CurIniNum& = CurIniNum& + 1
- END IF
- tmp$ = ""
- sz$ = ""
- suite$ = ""
- END SUB
-
-
- '*************************************************************************
- '**
- '** Purpose:
- '**
- '*************************************************************************
- SUB GetWinDriveFreeCost STATIC
- CursorSave% = ShowWaitCursor()
-
- ClearCopyList
-
- SrcDir$ = GetSymbolValue("STF_SRCDIR")
- szSysDir$ = GetWindowsSysDir()
- szWinDir$ = GetWindowsDir()
-
-
- tmp$ = MakePath(szSysDir$, "wfxcomm.drv")
- IF DoesFileExist (tmp$, femExists) THEN
- szyourVer$ = GetVersionOfFile(tmp$)
- szourVer$ = GetSectionKeyVersion("Windows System", "wfxcommdrv")
- IF szourVer$ > szyourVer$ THEN
- AddSectionKeyFileToCopyList "Windows System", "wfxcommdrv", SrcDir$, szSysDir$
- END IF
- ELSE
- AddSectionKeyFileToCopyList "Windows System", "wfxcommdrv", SrcDir$, szSysDir$
- END IF
-
-
-
- tmp$ = MakePath(szSysDir$, "CTL3D.DLL")
- IF DoesFileExist (tmp$, femExists) THEN
- szyourVer$ = GetVersionOfFile(tmp$)
- szourVer$ = GetSectionKeyVersion("Needed DLL Files", "ctl3ddll")
- IF szourVer$ > szyourVer$ THEN
- AddSectionKeyFileToCopyList "Needed DLL Files", "ctl3ddll", SrcDir$, szSysDir$
- END IF
- ELSE
- AddSectionKeyFileToCopyList "Needed DLL Files", "ctl3ddll", SrcDir$, szSysDir$
- END IF
-
-
-
- '' Always add REGDATA.DAT for now
- AddSectionKeyFileToCopyList "Needed DLL Files", "regdatadat", SrcDir$, szWinDir$
-
-
-
- IF GetListItem (CHECKSTATES$, CAMEL) = VON$ THEN
- tmp$ = MakePath(szSysDir$, "CTL3DV2.DLL")
- IF DoesFileExist (tmp$, femExists) THEN
- szyourVer$ = GetVersionOfFile(tmp$)
- szourVer$ = GetSectionKeyVersion("Needed DLL Files", "ctl3dv2dll")
- IF szourVer$ > szyourVer$ THEN
- AddSectionKeyFileToCopyList "Needed DLL Files", "ctl3dv2dll", SrcDir$, szSysDir$
- END IF
- ELSE
- AddSectionKeyFileToCopyList "Needed DLL Files", "ctl3dv2dll", SrcDir$, szSysDir$
- END IF
- AddSectionKeyFileToCopyList "Windows", "imini", SrcDir$, szWinDir$
- END IF
-
-
- IF GetListItem (CHECKSTATES$, HMFILES) = VON$ THEN
- tmp$ = MakePath(szSysDir$, "VBRUN200.DLL")
- IF DoesFileExist (tmp$, femExists) THEN
- szyourVer$ = GetVersionOfFile(tmp$)
- szourVer$ = GetSectionKeyVersion("Host Mode Files", "vbrun200dll")
- IF szourVer$ > szyourVer$ THEN
- AddSectionKeyFileToCopyList "Host Mode Files", "vbrun200dll", SrcDir$, szSysDir$
- END IF
- ELSE
- AddSectionKeyFileToCopyList "Host Mode Files", "vbrun200dll", SrcDir$, szSysDir$
- END IF
- END IF
-
-
-
- IF IsDirWritable (szSysDir$) THEN
- WinDrive$ = MID$(GetWindowsDir, 1, 1)
- WinDriveFree& = GetFreeSpaceForDrive (WinDrive$)
- IF SUITEINSTALL% = 1 THEN
- WinDriveFree& = WinDriveFree& - (GetDrvUsage (ASC (WinDrive$) - ASC ("A") + 1) * 1024 )
- END IF
- AdditionalSpaceNeeded& = GetCopyListCost (EXTRACOST$, DLLNEEDS$, "")
- ndrive% = ASC(ucase$(WinDrive$)) - ASC("A") + 1
- WinDriveCost& = VAL(GetListItem(DLLNEEDS$, ndrive%))
- ELSE
- j% = DoMsgBox ("WinComm PRO Setup cannot write to: "+szSysDir$+" Please modify attributes using File Manager and try again.", "WinComm Setup Error", MB_ICONSTOP+MB_OK)
- RestoreCursor CursorSave%
- ERROR STFQUIT
- END IF
-
- ReplaceListItem DRIVETEXT$, 4, WinDrive$ + ":"
- ReplaceListItem DRIVETEXT$, 5, MakeBytes (WinDriveCost&)
- ReplaceListItem DRIVETEXT$, 6, MakeBytes (WinDriveFree&)
- ReplaceListItem DRIVETEXT$, 7, DEST$
-
-
- IF WinDriveCost& > WinDriveFree& THEN
- tmp$ = "WinComm PRO Setup must copy certain files to your Windows Drive, but there is not enough free drive space. "
- tmp$ = tmp$ + "Please free approximately " + MakeBytes (WinDriveCost& - WinDriveFree&)
- j% = DoMsgBox (tmp$, "WinComm PRO Setup Error", MB_OK)
- RestoreCursor CursorSave%
- ERROR STFQUIT
- END IF
-
- IF SUITEINSTALL% = 1 THEN
- WriteDrvSpaces (ASC (WinDrive$) - ASC ("A")), WinDriveCost& /1024
- END IF
-
- tmp$ = ""
- RestoreCursor CursorSave%
- END SUB
-
-
- '*************************************************************************
- '**
- '** Purpose: Adds the Needed DLLs to the copy list
- '**
- '*************************************************************************
- SUB AddNeededToCopyList STATIC
- CursorSave% = ShowWaitCursor()
-
- SrcDir$ = GetSymbolValue("STF_SRCDIR")
- szSysDir$ = GetWindowsSysDir()
- szWinDir$ = GetWindowsDir()
-
-
-
-
- tmp$ = MakePath(szSysDir$, "wfxcomm.drv")
- IF DoesFileExist (tmp$, femExists) THEN
- szyourVer$ = GetVersionOfFile(tmp$)
- szourVer$ = GetSectionKeyVersion("Windows System", "wfxcommdrv")
- IF szourVer$ > szyourVer$ THEN
- AddSectionKeyFileToCopyList "Windows System", "wfxcommdrv", SrcDir$, szSysDir$
- END IF
- ELSE
- AddSectionKeyFileToCopyList "Windows System", "wfxcommdrv", SrcDir$, szSysDir$
- END IF
-
-
-
- tmp$ = MakePath(szSysDir$, "CTL3D.DLL")
- IF DoesFileExist (tmp$, femExists) THEN
- szyourVer$ = GetVersionOfFile(tmp$)
- szourVer$ = GetSectionKeyVersion("Needed DLL Files", "ctl3ddll")
- IF szourVer$ > szyourVer$ THEN
- AddSectionKeyFileToCopyList "Needed DLL Files", "ctl3ddll", SrcDir$, szSysDir$
- END IF
- ELSE
- AddSectionKeyFileToCopyList "Needed DLL Files", "ctl3ddll", SrcDir$, szSysDir$
- END IF
-
-
- '' Always add REGDATA.DAT for now
- AddSectionKeyFileToCopyList "Needed DLL Files", "regdatadat", SrcDir$, szWinDir$
-
-
-
- IF GetListItem (CHECKSTATES$, CAMEL) = VON$ THEN
- tmp$ = MakePath(szSysDir$, "CTL3DV2.DLL")
- IF DoesFileExist (tmp$, femExists) THEN
- szyourVer$ = GetVersionOfFile(tmp$)
- szourVer$ = GetSectionKeyVersion("Needed DLL Files", "ctl3dv2dll")
- IF szourVer$ > szyourVer$ THEN
- AddSectionKeyFileToCopyList "Needed DLL Files", "ctl3dv2dll", SrcDir$, szSysDir$
- END IF
- ELSE
- AddSectionKeyFileToCopyList "Needed DLL Files", "ctl3dv2dll", SrcDir$, szSysDir$
- END IF
- AddSectionKeyFileToCopyList "Windows", "imini", SrcDir$, szWinDir$
- END IF
-
-
- tmp$ = ""
- RestoreCursor CursorSave%
- END SUB
-
-
- '*************************************************************************
- '**
- '** Purpose: Recalculates disk space for the given optional file.
- '**
- '*************************************************************************
- SUB RecalcOptFiles (ftype%, totsize&) STATIC
- IF GetListItem (CHECKSTATES$, ftype%) = VON$ OR ftype% = APPFILES THEN
- cost& = CalcOptCost& (ftype%)
- IF ftype% = EXES THEN
- cost& = cost& + CalcOptCost& (APPFILES)
- END IF
- IF cost& > 0 THEN
- totsize& = totsize& + cost&
- ReplaceListItem STATUSITEMS$, ftype%, MakeBytes(cost&)
- ELSE
- ReplaceListItem STATUSITEMS$, ftype%, MakeBytes(0)
- END IF
- ELSE
- ReplaceListItem STATUSITEMS$, ftype%, MakeBytes(0)
- END IF
- END SUB
-
-
- '*************************************************************************
- '**
- '** Purpose: Calculates disk space needed for the given option - ftype%
- '**
- '*************************************************************************
- FUNCTION CalcOptCost& (ftype%) STATIC
- CursorSave% = ShowWaitCursor()
-
- ClearCopyList
-
- AddOptFilesToCopyList ftype%
-
- IF ftype% = EXES THEN
- ListSym$ = EXENEEDS$
- ELSEIF ftype% = APPFILES THEN
- ListSym$ = APPNEEDS$
- ELSEIF ftype% = HMFILES THEN
- ListSym$ = HMODENEEDS$
- ELSEIF ftype% = SSFILES THEN
- ListSym$ = SESSNEEDS$
- ELSEIF ftype% = SCRSAMPLES THEN
- ListSym$ = SCRNEEDS$
- ELSEIF ftype% = CONVERTS THEN
- ListSym$ = CONVNEEDS$
- ELSEIF ftype% = CAMEL THEN
- ListSym$ = CAMELNEEDS$
- END IF
-
- AditionalSpaceNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
-
- drive$ = MID$(DEST$, 1, 1)
- ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
- CalcOptCost& = VAL(GetListItem(ListSym$, ndrive%))
- RestoreCursor CursorSave%
- ListSym$ = ""
- END FUNCTION
-
-
- '*************************************************************************
- '**
- '** Purpose: Recalculates disk space needed according to the current
- '** destination path.
- '**
- '*************************************************************************
- SUB RecalcSpaceNeeded STATIC
- CursorSave% = ShowWaitCursor()
-
-
- totneed& = 0
-
- FOR i% = EXES to APPFILES-1 STEP 1
- RecalcOptFiles i%, totneed&
- NEXT i%
- ReplaceListItem DRIVETEXT$, 2, MakeBytes(totneed&)
-
- free& = GetFreeSpaceForDrive(MakePath(DEST$,""))
- IF SUITEINSTALL% = 1 THEN
- free& = free& - ( GetDrvUsage (ASC (DEST$) - ASC ("A") + 1) * 1024 )
- END IF
- IF free& > totneed& THEN
- ENOUGH% = 1
- IF SUITEINSTALL% = 1 THEN
- WriteDrvSpaces (ASC (DEST$) - ASC ("A")), totneed&/1024
- END IF
- ELSE
- ENOUGH% = 0
- END IF
- TotalSpace& = totneed&
- RestoreCursor CursorSave%
- END SUB
-
-
- '*************************************************************************
- '**
- '** Purpose: Adds the specified option files to the copy list.
- '**
- '*************************************************************************
- SUB AddOptFilesToCopyList (ftype%) STATIC
- SrcDir$ = GetSymbolValue("STF_SRCDIR")
- IF ftype% = EXES THEN
-
- AddSectionFilesToCopyList "WC Executables", SrcDir$, DEST$
-
- AddSectionFilesToCopyList "WC Executables - EXCA", SrcDir$, DEST$
-
- ELSEIF ftype% = APPFILES THEN
- AddSectionFilesToCopyList "Files", SrcDir$, DEST$
-
- width% = GetScreenWidth()
- IF width% <= 800 THEN
- AddSectionKeyFileToCopyList "PRF Files", "prf1prf", SrcDir$, DEST$
- ELSE
- AddSectionKeyFileToCopyList "PRF Files", "prf2prf", SrcDir$, DEST$
- END IF
-
- ELSEIF ftype% = HMFILES THEN
- AddSectionKeyFileToCopyList "Host Mode Files", "welcometxt", SrcDir$, DEST$
- AddSectionKeyFileToCopyList "Host Mode Files", "wchostwcs", SrcDir$, DEST$
- AddSectionKeyFileToCopyList "Host Mode Files", "wchostexe", SrcDir$, DEST$
- AddSectionKeyFileToCopyList "Host Mode Files", "wcvbtxt", SrcDir$, DEST$
-
- szSysDir$ = GetWindowsSysDir()
- szVBRUNDLL$ = MakePath(szSysDir$, "VBRUN200.DLL")
- j% = IsDirWritable(szSysDir$)
-
- e% = DoesFileExist(szVBRUNDLL$, femExists)
- IF e% = 1 THEN
- szyourVer$ = GetVersionOfFile(szVBRUNDLL$)
- szourVer$ = GetSectionKeyVersion("Host Mode Files", "vbrun200dll")
- IF (szourVer$ > szyourVer$) THEN
- IF j% = 1 THEN
- AddSectionKeyFileToCopyList "Host Mode Files", "vbrun200dll", SrcDir$, szSysDir$
- ELSE
- AddSectionKeyFileToCopyList "Host Mode Files", "vbrun200dll", SrcDir$, DEST$
- END IF
- END IF
- ELSE
- AddSectionKeyFileToCopyList "Host Mode Files", "vbrun200dll", SrcDir$, szSysDir$
- END IF
-
- ELSEIF ftype% = SSFILES THEN
- AddSectionFilesToCopyList "Session Files", SrcDir$, DEST$
-
-
-
-
- ELSEIF ftype% = SCRSAMPLES THEN
-
- path$ = MakePath(DEST$, "EXAMPLES")
- IF bFrominstall% = 1 THEN
- CreateDir path$, cmoNone
- END IF
- AddSectionFilesToCopyList "API Doc", SrcDir$, path$
-
- path$ = MakePath(path$, "HOST")
- IF bFrominstall% = 1 THEN
- CreateDir path$, cmoNone
- END IF
- AddSectionFilesToCopyList "Host Sources", SrcDir$, path$
-
-
- ELSEIF ftype% = CONVERTS THEN
- AddSectionFilesToCopyList "Convert Programs", SrcDir$, DEST$
- AddSectionKeyFileToCopyList "WC Executables", "wcsfdll", SrcDir$, DEST$
-
- ELSEIF ftype% = CAMEL THEN
- path$ = MakePath(DEST$, DIMTEXT$)
- IF bFrominstall% = 1 THEN
- CreateDir path$, cmoNone
- END IF
- AddSectionFilesToCopyList DIMTEXT$, SrcDir$, path$
- AddSectionFilesToCopyList "IM Related", SrcDir$, DEST$
- END IF
-
- SrcDir$ = ""
- END SUB
-
-
- '*************************************************************************
- '**
- '** Purpose: Sets drive status info according to latest disk space calcs.
- '**
- '*************************************************************************
- SUB SetDriveStatus STATIC
-
- drive$ = MID$(DEST$, 1, 1)
- free& = GetFreeSpaceForDrive(drive$)
- IF SUITEINSTALL% = 1 THEN
- free& = free& - ( GetDrvUsage (ASC (drive$) - ASC ("A") + 1) * 1024 )
- END IF
- tempstr$ = MakeBytes(free&)
- ReplaceListItem DRIVETEXT$, 3, tempstr$
-
- END SUB
-
-
- '*************************************************************************
- '**
- '** Purpose: Appends a file name to the end of a directory path,
- '** inserting a backslash character as needed.
- '**
- '*************************************************************************
- 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
-
-
- '*************************************************************************
- '**
- '** Purpose: Prepare a string for display.
- '**
- '*************************************************************************
- FUNCTION MakeBytes (size&) STATIC AS STRING
- IF size& < 1024 THEN
- MakeBytes = STR$(size&) + " bytes"
- ELSE
- MakeBytes = STR$(size&/1024) + " K"
- END IF
- END FUNCTION
-