home *** CD-ROM | disk | FTP | other *** search
/ Atomic Age / ATOMIC_AGE.ISO / pc / setup.mst < prev   
Text File  |  1994-12-14  |  21KB  |  613 lines

  1. rem ---------------------------------------------------------------------
  2. rem
  3. rem SETUP.MST    - MSSETUP Installation Script
  4. rem
  5. rem                Version 2.0
  6. rem
  7. rem                (c) Copyright 1988-1994 Apple Computer, Inc. All Rights Reserved.
  8. rem
  9. rem                Revised: 12 October 1994
  10. rem                Tony Knight, Apple Computer
  11. rem ---------------------------------------------------------------------
  12.  
  13.  
  14. rem Required includes to interface with MSSETUP DLL's
  15. rem -------------------------------------------------
  16. '$INCLUDE 'setupapi.inc'
  17. '$INCLUDE 'msdetect.inc'
  18.  
  19.  
  20. rem Dialog box id's
  21. rem ---------------
  22. rem Note: If MSSETUP were really smart, we could use the
  23. rem #defines in DIALOGS.HR. Instead, we must manually
  24. rem keep them in step
  25. rem ----------------------------------------------------
  26.     CONST NUKEOLD       = 101          ''  WARNING FOR OLDER VERSIONS
  27.     CONST OLDMESS       = 102          '' MODELESS DIALOGUE BOX FOR OLDER VERSIONS
  28.     CONST DESTPATH      = 300          ''Gets destination path
  29.     CONST EXITQUIT      = 600          ''Exits on user request
  30.     CONST EXITSUCCESS   = 700          ''Exits when install is done
  31.     CONST OPTIONS       = 800          ''Gets AUTOEXEC.BAT options
  32.     CONST ASKSETUP      = 1100         ''Gets installation type (Local etc)
  33.     CONST TOOBIG        = 6300         ''Not enough space on target disk error
  34.     CONST BADPATH       = 6400         ''Bad destination path error
  35.     CONST BADWINDOWS    = 6500         ''Wrong Windows release
  36.     CONST EXITFAILURE   = 6600         ''Exits on error
  37.  
  38.  
  39. rem String id's
  40. rem -----------
  41. rem Note: If MSSETUP were really smart, we could use the
  42. rem #defines in DIALOGS.HR. Instead, we must manually
  43. rem keep them in step
  44. rem ----------------------------------------------------
  45.     CONST STR_PLAYER    = 1024         ''Movie Player
  46.     CONST STR_VIEWER    = 1025         ''Picture Viewer
  47.     CONST STR_GROUP     = 1026         ''Program Manager group
  48.     CONST STR_TITLE     = 1027         ''Installer Title
  49.     CONST STR_MSG1      = 1028         ''Version error message part 1
  50.     CONST STR_MSG2      = 1029         ''Version error message part 2
  51.     CONST STR_MSG3      = 1030         ''Remove obsolete files?
  52.     CONST STR_WARNING   = 1031         ''Warning
  53.     CONST STR_HELP      = 1032         ''Help
  54.     CONST STR_SAMPLE    = 1033         ''Sample movie
  55.  
  56.  
  57. rem Miscellaneous Constants
  58. rem -----------------------
  59.     CONST NOLOGO = 1                   ''Dummy NULL bitmap (must be 1)
  60.     CONST LOGO = 2                     ''Background bitmap
  61.     CONST MOVIE = 2                    ''Movie placeholder bitmap
  62.     CONST NOSPACE = 1                  ''No space to complete install
  63.     CONST INSTALLOK = 2                ''Install completed OK
  64.     CONST INSTALLFAILED =3             ''Install failed for some reason
  65.     CONST FILES_REMOVED = 1
  66.     CONST FILES_SKIPPED = 2
  67.  
  68. rem Global Variables
  69. rem ----------------
  70.     GLOBAL SOURCE$                     ''Source directory
  71.     GLOBAL AADEST$                       ''Default destination directory
  72.     GLOBAL DEST$                       ''Default destination directory
  73.     GLOBAL DEST2$                       '' DEST FOR WINDOWS QTW .EXE'S
  74.     GLOBAL DEST3$                       '' DEST FOR DOCUMENTATION AND INTERFACES
  75.     GLOBAL LOCALINST$                  ''Local install
  76.     GLOBAL CLIENTINST$                 ''Client install
  77.     GLOBAL SERVERINST$                 ''Server install
  78.     GLOBAL SETUPPATH$                  ''Setup destination path
  79.     GLOBAL SETUPTYPE$                  ''local,client,server
  80.     GLOBAL EXTRACOSTS$                 ''List of extra costs to add per drive
  81.     GLOBAL APPNEEDS$                   ''Disk space costs per drive
  82.     GLOBAL SECTIONKEY$                 ''INF file section key
  83.     GLOBAL SUCCESS%                    ''Installation completion code
  84.  
  85.     GLOBAL CUIDLL$                     ''User interface DLL
  86.     GLOBAL HELPPROC$                   ''Help dialog procedure
  87.  
  88.  
  89. rem Initialize global vriables
  90. rem --------------------------
  91.     SOURCE$         = GetSymbolValue("STF_SRCDIR")
  92.      AADEST$                          = "C:\ATOMAGE"
  93.     DEST$           = GetWindowsSysDir
  94.     DEST2$          = GetWindowsDir
  95.     DEST3$          = "C:\QTW"
  96.     LOCALINST$      = "1"
  97.     CLIENTINST$     = "2"
  98.     SERVERINST$     = "3"
  99.     SETUPPATH$      = DEST$
  100.     SETUPTYPE$      = LOCALINST$
  101.     APPNEEDS$       = "AppNeeds"
  102.     EXTRACOSTS$     = "ExtraCosts"
  103.     SECTIONKEY$     = "SectionKey"
  104.     SUCCESS%        = INSTALLFAILED
  105.  
  106.     FOR i% = 1 TO 26 STEP 1
  107.     AddListItem EXTRACOSTS$, "16384"
  108.     NEXT i%
  109.  
  110.     rem
  111.     rem default dest to first hard drive
  112.     rem since some OEM systems don't start at C:
  113.     rem
  114.     GetLocalHardDrivesList "HardDrives"
  115.     NumDrives% = GetListLength("HardDrives")
  116.  
  117.     IF (NUMDRIVES% > 0) THEN
  118.     DEST3$ = GetListItem("HardDrives",1) + ":\QTW"
  119.     END IF
  120.  
  121. rem Get name of localized user interface dialogs
  122. rem --------------------------------------------
  123.     CUIDLL$ = "SETUP"+GetIniKeyString("WIN.INI", "intl", "sLanguage")+".DLL"
  124.     IF DoesFileExist(CUIDLL$, femExists) = 0 THEN
  125.        CUIDLL$ = "SETUPENU.DLL"
  126.     END IF
  127.  
  128.  
  129. rem Subroutines and Functions
  130. rem -------------------------
  131.     DECLARE FUNCTION Install AS INTEGER
  132.     DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  133.     DECLARE FUNCTION GetQTWVersion LIB "setupenu.dll" (szDLL$) AS INTEGER
  134.     DECLARE FUNCTION GetResourceString LIB "setupenu.dll" (szResource$, idString%) AS INTEGER
  135.     DECLARE FUNCTION StartCustomSetup LIB "setupenu.dll" (hinst%, hwnd%) AS INTEGER
  136.     DECLARE FUNCTION StopCustomSetup LIB "setupenu.dll" (hinst%, hwnd%) AS INTEGER
  137.     DECLARE FUNCTION WritePrivateProfileString LIB "krnl386.exe" (szSect$, szEntry$, szString$, szINI$) AS INTEGER
  138.     DECLARE FUNCTION CheckForOld AS INTEGER
  139.     DECLARE FUNCTION RemoveOldQTFiles (FilePath$) AS INTEGER
  140.     DECLARE FUNCTION CheckForSpace (DrivePath$) AS INTEGER
  141.  
  142. rem Initialize custom setup logic
  143. rem -----------------------------
  144.     SetBitmap CUIDLL$, NOLOGO
  145.     i% = GetResourceString (CUIDLL$, STR_TITLE)
  146.     SetTitle GetSymbolValue ("ResourceString")
  147.     i% = StartCustomSetup (HinstFrame(), HwndFrame ())
  148.     i% = SetBeepingMode(1)
  149.  
  150. rem Make sure that we are running on Windows 3.1 or better
  151. rem ------------------------------------------------------
  152.     IF GetWindowsMajorVersion() < 3 THEN
  153.        sz$ = UIStartDlg(CUIDLL$, BADWINDOWS, "FInfo0DlgProc", 0, "")
  154.        UIPop 1
  155.        GOTO CLEANUP
  156.     END IF
  157.  
  158.     IF (GetWindowsMajorVersion() = 3) AND (GetWindowsMinorVersion() < 10) THEN
  159.        sz$ = UIStartDlg(CUIDLL$, BADWINDOWS, "FInfo0DlgProc", 0, "")
  160.        UIPop 1
  161.        GOTO CLEANUP
  162.     END IF
  163.  
  164.  
  165. rem Make sure that we are running on a 286 or better
  166. rem ------------------------------------------------
  167.     IF GetWinFlags() AND 2 THEN
  168.        sz$ = UIStartDlg(CUIDLL$, BADWINDOWS, "FInfo0DlgProc", 0, "")
  169.        UIPop 1
  170.        GOTO CLEANUP
  171.     END IF
  172.  
  173. rem -------------------------------------------------------------------
  174.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  175.  
  176.     IF szInf$ = "" THEN
  177.        szTemp$ = GetSymbolValue("STF_SRCDIR")
  178.        SPLITPATH szTemp$, drv$, dir$, filename$, ext$
  179.        szInf$ = szTemp$ + "SETUP.INF"
  180.     END IF
  181.  
  182.     ReadInfFile szInf$
  183.  
  184.  
  185. rem Get the setup type: Local, Client or Server
  186. rem -------------------------------------------
  187. ITYPE:
  188.     SetSymbolValue "RadioDefault", SETUPTYPE$
  189.  
  190. ITYPEL1:
  191.     sz$ = UIStartDlg(CUIDLL$, ASKSETUP, "FRadioDlgProc", 0, "")
  192.  
  193.     SETUPTYPE$ = GetSymbolValue("ButtonChecked")
  194.  
  195.  
  196.     IF sz$ = "CONTINUE" THEN
  197.        UIPop(1)
  198.  
  199.     ELSEIF sz$ = "REACTIVATE" THEN
  200.        GOTO ITYPEL1
  201.  
  202.     ELSE
  203.        GOSUB ASKQUIT
  204.        GOTO ITYPE
  205.  
  206.     END IF
  207.  
  208.     rem Get the destination path for server install; if it's bad, we display an error
  209.     rem ----------------------------------------------------------------
  210.  
  211. GETPATH2:
  212.     IF (SETUPTYPE$ = SERVERINST$) THEN
  213.     SetSymbolValue "EditTextIn",DEST3$
  214.  
  215.     SetSymbolValue "EditFocus","ALL"
  216.  
  217.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0, "")
  218.     DEST3$ = GetSymbolValue("EditTextOut")
  219.     UIPop 1
  220.  
  221.     IF sz$ = "CONTINUE" THEN
  222.         IF IsDirWritable(DEST3$) = 1 THEN
  223.         GOTO INSTALLER
  224.         END IF
  225.     END IF
  226.  
  227.     IF sz$ = "BACK" THEN
  228.         GOTO ITYPE
  229.     END IF
  230.  
  231.     IF sz$ = "EXIT" THEN
  232.         GOTO ASKQUIT3
  233.     END IF
  234.  
  235.     IF IsDirWritable(DEST3$) = 0 THEN
  236.         sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  237.         UIPop 1
  238.         GOTO GETPATH2
  239.     END IF
  240.     END IF
  241.     GOTO INSTALLER
  242.  
  243. rem ASKQUIT: The user requested quit; does (s)he really want to?
  244. rem ------------------------------------------------------------
  245. ASKQUIT3:
  246.     sz$ = UIStartDlg(CUIDLL$, EXITQUIT, "FInfoDlgProc", 0, "")
  247.     UIPop 1
  248.     IF sz$ = "CONTINUE" THEN
  249.        GOTO GETPATH2
  250.     END IF
  251.     GOTO CLEANUP
  252.  
  253.  
  254. rem Perform actual installation
  255. rem ---------------------------
  256. INSTALLER:
  257.     SUCCESS% = Install
  258.  
  259.     IF SUCCESS% = NOSPACE THEN
  260.        GOSUB TOOBIG
  261.     END IF
  262.  
  263.  
  264. rem When done, issue dialog
  265. rem -----------------------
  266. QUIT:
  267.     IF SUCCESS% = INSTALLOK THEN
  268.        sz$ = UIStartDlg(CUIDLL$, EXITSUCCESS, "FInfo0DlgProc", 0, "")
  269.     ELSE
  270.        sz$ = UIStartDlg(CUIDLL$, EXITFAILURE, "FInfo0DlgProc", 0, "")
  271.     END IF
  272.     UIPop 1
  273.  
  274.  
  275. rem Clean up all processing
  276. rem -----------------------
  277. CLEANUP:
  278.     i% = StopCustomSetup (HinstFrame(), HwndFrame ())
  279.  
  280.     END
  281.  
  282.  
  283. rem ASKQUIT: The user requested quit; does (s)he really want to?
  284. rem ------------------------------------------------------------
  285. ASKQUIT:
  286.     sz$ = UIStartDlg(CUIDLL$, EXITQUIT, "FInfoDlgProc", 0, "")
  287.     UIPop 1
  288.     IF sz$ = "CONTINUE" THEN
  289.        RETURN
  290.     END IF
  291.     GOTO CLEANUP
  292.  
  293.  
  294. rem BADPATH: The user entered an invalid destination directory
  295. rem ----------------------------------------------------------
  296. BADPATH:
  297.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  298.     IF sz$ = "REACTIVATE" THEN
  299.        GOTO BADPATH
  300.     END IF
  301.     UIPop 1
  302.  
  303.     RETURN
  304.  
  305.  
  306. rem TOOBIG: The source files won't fit on the requested destination disk
  307. rem --------------------------------------------------------------------
  308. TOOBIG:
  309.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  310.     IF sz$ = "REACTIVATE" THEN
  311.        GOTO TOOBIG
  312.     END IF
  313.     UIPop 1
  314.  
  315.     RETURN
  316.  
  317. rem Install: Perform actual installation
  318. rem ------------------------------------
  319. FUNCTION Install STATIC AS INTEGER
  320.  
  321.     ClearCopyList
  322.     rem For Local or Server installs ...
  323.     rem --------------------------------
  324.     IF (SETUPTYPE$ = LOCALINST$) OR (SETUPTYPE$ = CLIENTINST$) THEN
  325.                 AddSectionFilesToCopyList "AtomAge", SOURCE$, AADEST$
  326.         AddSectionFilesToCopyList "Files", SOURCE$, DEST$
  327.         AddSectionFilesToCopyList "Winexe", SOURCE$, DEST2$
  328.         spaceCheck% = CheckForSpace(DEST$)
  329.         IF (spaceCheck% = NOSPACE) THEN
  330.         Install = NOSPACE
  331.         EXIT FUNCTION
  332.         END IF
  333.         spaceCheck% = CheckForSpace(DEST2$)
  334.         IF (spaceCheck% = NOSPACE) THEN
  335.         Install = NOSPACE
  336.         EXIT FUNCTION
  337.         END IF
  338.     END IF
  339.  
  340.     IF (SETUPTYPE$ = SERVERINST$) THEN
  341.                 AddSectionFilesToCopyList "AtomAge", SOURCE$, AADEST$
  342.         AddSectionFilesToCopyList "Files", SOURCE$, DEST3$ + "BIN\"
  343.         AddSectionFilesToCopyList "Winexe", SOURCE$, DEST3$ + "BIN\"
  344.         AddSectionFilesToCopyList "Setup", SOURCE$, DEST3$
  345.         spaceCheck% = CheckForSpace(DEST3$)
  346.         IF (spaceCheck% = NOSPACE) THEN
  347.         Install = NOSPACE
  348.         EXIT FUNCTION
  349.         END IF
  350.     ELSE 
  351.         j% = CheckForOld()
  352.     END IF
  353.  
  354.     rem Copy files necessary for installation from server
  355.     rem -------------------------------------------------
  356.     IF SETUPTYPE$ = SERVERINST$ THEN
  357.         CopyFile MakePath(SOURCE$, "SETUP.INF"), MakePath(DEST3$, "SETUP.INF"), cmoOverwrite, 0
  358.         CopyFile MakePath(SOURCE$, "DISK1.ID"), MakePath(DEST3$, "DISK1.ID"), cmoOverwrite, 0
  359.     END IF
  360.  
  361.     rem Copy all the files from the source to the destination
  362.     rem -----------------------------------------------------
  363.  
  364.     CopyFilesInCopyList
  365.  
  366.     rem Update WIN.INI and SYSTEM.INI
  367.     rem -----------------------------
  368.     IF (SETUPTYPE$ = LOCALINST$) OR (SETUPTYPE$ = CLIENTINST$) THEN
  369.        inia$ = MakePath(DEST2$, "WIN.INI")
  370.        inib$ = MakePath(DEST2$, "WIN.QTW")
  371.        CopyFile inia$, inib$, cmoOverwrite, 0
  372.        inia$ = MakePath(DEST2$, "SYSTEM.INI")
  373.        inib$ = MakePath(DEST2$, "SYSTEM.QTW")
  374.        CopyFile inia$, inib$, cmoOverwrite, 0
  375.        CreateIniKeyValue "WIN.INI", "Extensions", "mov", MakePath(DEST2$,"player.exe") + " ^.mov", cmoOverwrite
  376.        CreateIniKeyValue "WIN.INI", "Extensions", "pic", MakePath(DEST2$,"viewer.exe") + " ^.pic", cmoOverwrite
  377.        CreateIniKeyValue "WIN.INI", "MCI Extensions", "mov", "QTWVideo", cmoOverwrite
  378.        CreateIniKeyValue "WIN.INI", "MCI Extensions", "pic", "QTWVideo", cmoOverwrite
  379.        CreateIniKeyValue "WIN.INI", "MCI Extensions", "jpg", "QTWVideo", cmoOverwrite
  380.        i% = WritePrivateProfileString("MCI", "QTWVideo", MakePath(DEST$, "mciqtw.drv"), "SYSTEM.INI")
  381.  
  382.     rem Compatibility hacks.
  383.        i% = WritePrivateProfileString("Macx", "DeviceBitmaps", "OFF", "SYSTEM.INI")
  384.        CreateIniKeyValue "WIN.INI", "Mach", "devicebitmap", "off", cmoOverwrite
  385.  
  386.     rem Update Registration Database
  387.     rem ----------------------------
  388.        RUN MakePath(DEST2$, "player.exe") + " install"
  389.        RUN MakePath(DEST2$, "viewer.exe") + " install"
  390.  
  391.     rem Create QTW.INI
  392.     rem ----------------
  393.        ini$ = MakePath(DEST2$, "QTW.INI")
  394.        CreateIniKeyValue ini$, "QuickTime for Windows", "Implementation", "Full" , cmoOverwrite
  395.  
  396.  
  397. '***********************************************************************************
  398. rem end of runtime install functionality
  399. rem uncomment the following lines to have a strictly runtime installation script
  400. rem Indicate install completed OK
  401. rem -----------------------------
  402.  
  403.     rem Create a Program Manager group
  404.     rem ------------------------------
  405.        i% = GetResourceString (CUIDLL$, STR_GROUP)
  406.        GROUP$ = GetSymbolValue ("ResourceString")
  407.        CreateProgmanGroup GROUP$, "", cmoNone
  408.        i% = GetResourceString (CUIDLL$, STR_PLAYER)
  409.        CreateProgmanItem GROUP$, GetSymbolValue ("ResourceString"), MakePath(DEST2$,"player.exe"), "", cmoOverwrite
  410.        i% = GetResourceString (CUIDLL$, STR_VIEWER)
  411.        CreateProgmanItem GROUP$, GetSymbolValue ("ResourceString"), MakePath(DEST2$,"viewer.exe"), "", cmoOverwrite
  412.        CreateProgmanItem GROUP$, "Read Me", MakePath(DEST2$,"readme.exe"), "", cmoOverwrite
  413.                 AAGROUP$ = "Atomic Age"
  414.                 CreateProgmanGroup AAGROUP$, "", cmoNone
  415.                 CreateProgmanItem AAGROUP$, "Read Me", MakePath(AADEST$, "readme.txt"),"", cmoOverwrite
  416.                 CreateProgmanItem AAGROUP$, "Atomic Age", MakePath(AADEST$, "atomage.exe"), MakePath(AADEST$,"atomage.ico"), cmoOverwrite
  417.     END IF
  418.  
  419.     rem Indicate install completed OK
  420.     rem -----------------------------
  421.     Install = INSTALLOK
  422.  
  423. END FUNCTION
  424.  
  425. rem MakePath: Builds path from directory and file
  426. rem ---------------------------------------------
  427. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  428.  
  429.     IF szDir$ = "" THEN
  430.        MakePath = szFile$
  431.  
  432.     ELSEIF szFile$ = "" THEN
  433.        MakePath = szDir$
  434.  
  435.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  436.        MakePath = szDir$ + szFile$
  437.  
  438.     ELSE
  439.        MakePath = szDir$ + "\" + szFile$
  440.  
  441.     END IF
  442.  
  443. END FUNCTION
  444.  
  445. rem Check for Older versions of the Quicktime For Windows components
  446. rem ---------------------------------------------------------------
  447. FUNCTION CheckForOld STATIC AS INTEGER
  448.  
  449.     sz$ = UIStartDlg(CUIDLL$, OLDMESS, "FModelessDlgProc", 0, "")
  450.  
  451. CheckForOld1:
  452.     cursor% = ShowWaitCursor()
  453.     OldFilePath$ = FindFileUsingFileOpen("qtim.dll")
  454.     RestoreCursor cursor%
  455.     IF (OldFilePath$ <> "") THEN
  456.     j% = RemoveOldQTFiles(OldFilePath$)
  457.     IF j% = FILES_REMOVED THEN
  458.         GOTO CheckForOld1
  459.     END IF
  460.     END IF
  461.  
  462. CheckForOld2:
  463.     cursor% = ShowWaitCursor()
  464.     OldFilePath$ = FindFileUsingFileOpen("qtimcmgr.dll")
  465.     RestoreCursor cursor%
  466.     IF (OldFilePath$ <> "") THEN
  467.     j% = RemoveOldQTFiles(OldFilePath$)
  468.     IF j% = FILES_REMOVED THEN
  469.         GOTO CheckForOld2
  470.     END IF
  471.     END IF
  472.  
  473.     GetLocalHardDrivesList "HardDrives"
  474.     NumDrives% = GetListLength("HardDrives")
  475.  
  476.     IF (NUMDRIVES% > 0) THEN
  477.     FOR i% = 1 TO NumDrives% STEP 1
  478.         CurrentDrive$ = GetListItem("HardDrives",i%) + ":\"
  479.         CheckForOld3:
  480.         cursor% = ShowWaitCursor()
  481.         OldFilePath$ = FindFileInTree("qtim.dll",CurrentDrive$)
  482.         RestoreCursor cursor%
  483.         IF (OldFilePath$ <> "") THEN
  484.             j% = RemoveOldQTFiles(OldFilePath$)
  485.             IF j% = FILES_REMOVED THEN
  486.             GOTO CheckForOld3
  487.             END IF
  488.         END IF
  489.  
  490.         CheckForOld4:
  491.         cursor% = ShowWaitCursor()
  492.         OldFilePath$ = FindFileInTree("qtimcmgr.dll",CurrentDrive$)
  493.         RestoreCursor cursor%
  494.         IF (OldFilePath$ <> "") THEN
  495.             j% = RemoveOldQTFiles(OldFilePath$)
  496.             IF j% = FILES_REMOVED THEN
  497.             GOTO CheckForOld4
  498.             END IF
  499.         END IF
  500.     NEXT i%
  501.     END IF
  502.  
  503.     UIPOP 1
  504.  
  505. END FUNCTION
  506.  
  507. FUNCTION RemoveOldQTFiles (FilePath$) STATIC AS INTEGER
  508.  
  509.     RemoveOldQTFiles = FILES_SKIPPED
  510.  
  511.     SPLITPATH FilePath$, drv$, dir$, filename$, ext$
  512.     DeadPath$ = drv$ + dir$
  513.  
  514.   rem check version resources if they exist
  515.       i% = GetQTWVersion(FilePath$)
  516.       szVersion$ = GetSymbolValue ("VersionString")
  517.  
  518.   rem dialog choices are Remove,Skip ("Continue","Back" buttons)
  519.     SetSymbolValue "EditTextIn", "Found Version [" + szVersion$ + "] on " + DeadPath$
  520.     sz$ = UIStartDlg(CUIDLL$, NUKEOLD, "FEditDlgProc", 0, "")
  521.     UIPop 1
  522.  
  523.     IF sz$ = "BACK" THEN
  524.     EXIT FUNCTION
  525.     END IF
  526.  
  527.     IF sz$ <> "CONTINUE" THEN
  528.     EXIT FUNCTION
  529.     END IF
  530.  
  531.     rem all versions
  532.     RemoveFile MakePath(DeadPath$, "qtim.dll"), cmoForce
  533.     RemoveFile MakePath(DeadPath$, "qtimcmgr.dll"), cmoForce
  534.     rem version 1.0.0
  535.     RemoveFile MakePath(DeadPath$, "qcmc.dll"), cmoForce
  536.     RemoveFile MakePath(DeadPath$, "qtjpeg.dll"), cmoForce
  537.     RemoveFile MakePath(DeadPath$, "qtraw.dll"), cmoForce
  538.     RemoveFile MakePath(DeadPath$, "qtsmc.dll"), cmoForce
  539.     RemoveFile MakePath(DeadPath$, "qtrpza.dll"), cmoForce
  540.     RemoveFile MakePath(DeadPath$, "qtrle.dll"), cmoForce
  541.     RemoveFile MakePath(DeadPath$, "qtcvid.dll"), cmoForce
  542.     RemoveFile MakePath(DeadPath$, "qtrt21.dll"), cmoForce
  543.     RemoveFile MakePath(DeadPath$, "qtvhdw.dll"), cmoForce
  544.     rem version 1.1.x and later
  545.     RemoveFile MakePath(DeadPath$, "mciqtw.drv"), cmoForce
  546.     RemoveFile MakePath(DeadPath$, "qcmc.qtc"), cmoForce
  547.     RemoveFile MakePath(DeadPath$, "qtjpeg.qtc"), cmoForce
  548.     RemoveFile MakePath(DeadPath$, "qtraw.qtc"), cmoForce
  549.     RemoveFile MakePath(DeadPath$, "qtsmc.qtc"), cmoForce
  550.     RemoveFile MakePath(DeadPath$, "qtrpza.qtc"), cmoForce
  551.     RemoveFile MakePath(DeadPath$, "qtrle.qtc"), cmoForce
  552.     RemoveFile MakePath(DeadPath$, "qtcvid.qtc"), cmoForce
  553.     RemoveFile MakePath(DeadPath$, "qtrt21.qtc"), cmoForce
  554.     RemoveFile MakePath(DeadPath$, "navg.qtc"), cmoForce
  555.     RemoveFile MakePath(DeadPath$, "qtiv31.qtc"), cmoForce
  556.     rem version 1.9 and later
  557.     RemoveFile MakePath(DeadPath$, "qtvhdw.qtc"), cmoForce
  558.     RemoveFile MakePath(DeadPath$, "qtyvu9.qtc"), cmoForce
  559.     RemoveFile MakePath(DeadPath$, "qtmsvc.qtc"), cmoForce
  560.     RemoveFile MakePath(DeadPath$, "qtiv32.qtc"), cmoForce
  561.     RemoveFile MakePath(DeadPath$, "qtiyvu9.qtc"), cmoForce
  562.     RemoveFile MakePath(DeadPath$, "qtvhdw.qtc"), cmoForce
  563.     RemoveFile MakePath(DeadPath$, "dhio_dh.qtc"), cmoForce
  564.     RemoveFile MakePath(DeadPath$, "reelmgic.qtc"), cmoForce
  565.  
  566.     RemoveOldQTFiles = FILES_REMOVED
  567.  
  568. END FUNCTION
  569.  
  570. '$IFDEF DEBUG
  571.        IF DoesFileExist(MakePath(DEST$, "bin\qtim.dll"), femExists) = 1 THEN
  572.       szError$ = MakePath(DEST$, "BIN")
  573.       i% = GetResourceString (CUIDLL$, STR_MSG1)
  574.       szError$ = szError$ + GetSymbolValue ("ResourceString")
  575.       i% = GetQTWVersion(MakePath(DEST$, "bin\qtim.dll"))
  576.       szVersion$ = GetSymbolValue ("VersionString")
  577.       szError$ = szError$ + szVersion$
  578.       i% = GetResourceString (CUIDLL$, STR_MSG2)
  579.       szError$ = szError$ + GetSymbolValue ("ResourceString")
  580.       i% = GetResourceString (CUIDLL$, STR_WARNING)
  581.       szCaption$ = GetSymbolValue ("ResourceString")
  582.       i% = DoMsgBox(szError$, szCaption$, 20)
  583.       UIPop 1
  584.       IF i% = 7 THEN
  585.          GOTO GETPATHL1
  586.       END IF
  587.       IF szVersion$ = "1.0.0" THEN
  588.          i% = GetResourceString (CUIDLL$, STR_MSG3)
  589.          szError$ = GetSymbolValue ("ResourceString")
  590.          i% = GetResourceString (CUIDLL$, STR_WARNING)
  591.          szCaption$ = GetSymbolValue ("ResourceString")
  592.          i% = DoMsgBox(szError$, szCaption$, 20)
  593.        END IF
  594. '$ENDIF
  595.  
  596. FUNCTION CheckForSpace (DrivePath$) STATIC AS INTEGER
  597.     CheckForSpace = 0
  598.     
  599.     rem Check that we have enough free space to perform the install
  600.     rem -----------------------------------------------------------
  601.     ListSym$ = APPNEEDS$
  602.     StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
  603.  
  604.     drive$ = MID$(DrivePath$, 1, 1)
  605.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  606.     cost& = VAL(GetListItem(APPNEEDS$, ndrive%))
  607.     free& = GetFreeSpaceForDrive(drive$)
  608.  
  609.     IF cost& >= free& THEN
  610.     CheckForSpace = NOSPACE
  611.     END IF
  612. END FUNCTION
  613.