home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Today (UK) 12 / cdromtoday12.bin / qtsetup / setup.mst < prev    next >
Text File  |  1995-01-10  |  18KB  |  494 lines

  1.  
  2. rem ---------------------------------------------------------------------
  3. rem
  4. rem SETUP.MST    - MSSETUP Installation Script
  5. rem
  6. rem                Version 1.0
  7. rem
  8. rem                (c) 1988-1992 Apple Computer, Inc. All Rights Reserved.
  9. rem
  10. rem ---------------------------------------------------------------------
  11.  
  12.  
  13. rem Required includes to interface with MSSETUP DLL's
  14. rem -------------------------------------------------
  15. '$INCLUDE 'setupapi.inc'
  16. '$INCLUDE 'msdetect.inc'
  17.  
  18.  
  19. rem Dialog box id's
  20. rem ---------------
  21. rem Note: If MSSETUP were really smart, we could use the
  22. rem #defines in DIALOGS.HR. Instead, we must manually
  23. rem keep them in step
  24. rem ----------------------------------------------------
  25.     CONST DESTPATH      = 300          ''Gets destination path
  26.     CONST EXITQUIT      = 600          ''Exits on user request
  27.     CONST EXITSUCCESS   = 700          ''Exits when install is done
  28.     CONST OPTIONS       = 800          ''Gets AUTOEXEC.BAT options
  29.     CONST ASKSETUP      = 1100         ''Gets installation type (Local etc)
  30.     CONST TOOBIG        = 6300         ''Not enough space on target disk error
  31.     CONST BADPATH       = 6400         ''Bad destination path error
  32.     CONST BADWINDOWS    = 6500         ''Wrong Windows release
  33.     CONST EXITFAILURE   = 6600         ''Exits on error
  34.  
  35.  
  36. rem String id's
  37. rem -----------
  38. rem Note: If MSSETUP were really smart, we could use the
  39. rem #defines in DIALOGS.HR. Instead, we must manually
  40. rem keep them in step
  41. rem ----------------------------------------------------
  42.     CONST STR_PLAYER    = 1024         ''Movie Player
  43.     CONST STR_VIEWER    = 1025         ''Picture Viewer
  44.     CONST STR_GROUP     = 1026         ''Program Manager group
  45.     CONST STR_TITLE     = 1027         ''Installer Title
  46.     CONST STR_MSG1      = 1028         ''Version error message part 1
  47.     CONST STR_MSG2      = 1029         ''Version error message part 2
  48.     CONST STR_MSG3      = 1030         ''Remove obsolete files?
  49.     CONST STR_WARNING   = 1031         ''Warning
  50.     CONST STR_HELP      = 1032         ''Help
  51.  
  52.  
  53. rem Miscellaneous Constants
  54. rem -----------------------
  55.     CONST NOLOGO = 1                   ''Dummy NULL bitmap (must be 1)
  56.     CONST LOGO = 2                     ''Background bitmap
  57.     CONST MOVIE = 2                    ''Movie placeholder bitmap
  58.     CONST NOSPACE = 1                  ''No space to complete install
  59.     CONST INSTALLOK = 2                ''Install completed OK
  60.     CONST INSTALLFAILED =3             ''Install failed for some reason
  61.  
  62.  
  63. rem Global Variables
  64. rem ----------------
  65.     GLOBAL SOURCE$                     ''Source directory
  66.     GLOBAL DEST$                       ''Default destination directory
  67.     GLOBAL SETUPTYPE$                  ''Setup type (Local, Client, Server)
  68.     GLOBAL LOCALINST$                  ''Local install
  69.     GLOBAL CLIENTINST$                 ''Client install
  70.     GLOBAL SERVERINST$                 ''Server install
  71.     GLOBAL MODAUTOEXECOPT$             ''Modify AUTOEXEC.BAT option
  72.     GLOBAL MODAUTOEXEC$                ''Modify AUTOEXEC.BAT
  73.     GLOBAL COPYAUTOEXEC$               ''Copy AUTOEXEC.BAT and modify it
  74.     GLOBAL CUIDLL$                     ''User interface DLL
  75.     GLOBAL SETUPPATH$                  ''Setup destination path
  76.     GLOBAL HELPPROC$                   ''Help dialog procedure
  77.     GLOBAL EXTRACOSTS$                 ''List of extra costs to add per drive
  78.     GLOBAL APPNEEDS$                   ''Disk space costs per drive
  79.     GLOBAL SECTIONKEY$                 ''INF file section key
  80.     GLOBAL SUCCESS%                    ''Installation completion code
  81.  
  82.  
  83. rem Initialize global vriables
  84. rem --------------------------
  85.     LOCALINST$      = "1"
  86.     CLIENTINST$     = "2"
  87.     SERVERINST$     = "3"
  88.     MODAUTOEXEC$    = "1"
  89.     COPYAUTOEXEC$   = "2"
  90.     SETUPPATH$      = "C:\QTW"
  91.     SETUPTYPE$      = LOCALINST$
  92.     SOURCE$         = GetSymbolValue("STF_SRCDIR")
  93.     DEST$           = SETUPPATH$
  94.     MODAUTOEXECOPT$ = MODAUTOEXEC$
  95.     SUCCESS%        = INSTALLFAILED
  96.     EXTRACOSTS$     = "ExtraCosts"
  97.     APPNEEDS$       = "AppNeeds"
  98.     SECTIONKEY$     = "SectionKey"
  99.  
  100.     FOR i% = 1 TO 26 STEP 1
  101.         AddListItem EXTRACOSTS$, "16384"
  102.     NEXT i%
  103.  
  104.  
  105. rem Get name of localized user interface dialogs
  106. rem --------------------------------------------
  107. rem    CUIDLL$ = "SETUP"+GetIniKeyString("WIN.INI", "intl", "sLanguage")+".DLL"
  108. rem    IF DoesFileExist(CUIDLL$, femExists) = 0 THEN
  109.        CUIDLL$ = "SETUPENU.DLL"
  110. rem    END IF
  111.  
  112.  
  113. rem Subroutines and Functions
  114. rem -------------------------
  115.     DECLARE FUNCTION Install AS INTEGER
  116.     DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  117.     DECLARE FUNCTION GetQTWVersion LIB "setupenu.dll" (szDLL$) AS INTEGER
  118.     DECLARE FUNCTION GetResourceString LIB "setupenu.dll" (szResource$, idString%) AS INTEGER
  119.     DECLARE FUNCTION StartCustomSetup LIB "setupenu.dll" (hinst%, hwnd%) AS INTEGER
  120.     DECLARE FUNCTION StopCustomSetup LIB "setupenu.dll" (hinst%, hwnd%) AS INTEGER
  121.     DECLARE FUNCTION UpdateAutoExecBat LIB "setupenu.dll" (szIn$, szOut$, szDest$) AS INTEGER
  122.     DECLARE FUNCTION WritePrivateProfileString LIB "krnl386.exe" (szSect$, szEntry$, szString$, szINI$) AS INTEGER
  123.  
  124.  
  125. rem Initialize custom setup logic
  126. rem -----------------------------
  127.     SetBitmap CUIDLL$, NOLOGO
  128.     i% = GetResourceString (CUIDLL$, STR_TITLE)
  129.     SetTitle GetSymbolValue ("ResourceString")
  130.     i% = StartCustomSetup (HinstFrame(), HwndFrame ())
  131.     i% = SetBeepingMode(1)
  132.  
  133.  
  134. rem Make sure that we are running on Windows 3.1 or better
  135. rem ------------------------------------------------------
  136.     IF GetWindowsMajorVersion() < 3 THEN
  137.        sz$ = UIStartDlg(CUIDLL$, BADWINDOWS, "FInfo0DlgProc", 0, "")
  138.        UIPop 1
  139.        GOTO CLEANUP
  140.     END IF
  141.  
  142.     IF (GetWindowsMajorVersion() = 3) AND (GetWindowsMinorVersion() < 10) THEN
  143.        sz$ = UIStartDlg(CUIDLL$, BADWINDOWS, "FInfo0DlgProc", 0, "")
  144.        UIPop 1
  145.        GOTO CLEANUP
  146.     END IF
  147.  
  148.  
  149. rem Make sure that we are running on a 286 or better
  150. rem ------------------------------------------------
  151.     IF GetWinFlags() AND 2 THEN
  152.        sz$ = UIStartDlg(CUIDLL$, BADWINDOWS, "FInfo0DlgProc", 0, "")
  153.        UIPop 1
  154.        GOTO CLEANUP
  155.     END IF
  156.  
  157.  
  158. rem Find and read the .INF file. We'll use DISKETTE.INF when installing
  159. rem from drive A: or B:, CD.INF otherwise.
  160. rem -------------------------------------------------------------------
  161.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  162.  
  163.     IF szInf$ = "" THEN
  164.        szTemp$ = GetSymbolValue("STF_SRCDIR")
  165.        SPLITPATH szTemp$, drv$, dir$, filename$, ext$
  166. rem       IF (drv$ = "A:") OR (drv$ = "B:") THEN
  167. rem          szInf$ = szTemp$ + "DISKETTE.INF"
  168. rem       ELSE
  169.           szInf$ = szTemp$ + "CD.INF"
  170.     END IF
  171.  
  172.     ReadInfFile szInf$
  173.  
  174.  
  175. rem Get the setup type: Local, Client or Server
  176. rem -------------------------------------------
  177. ITYPE:
  178.     SetSymbolValue "RadioDefault", SETUPTYPE$
  179.  
  180. ITYPEL1:
  181.     sz$ = UIStartDlg(CUIDLL$, ASKSETUP, "FRadioDlgProc", 0, "")
  182.  
  183.     SETUPTYPE$ = GetSymbolValue("ButtonChecked")
  184.  
  185.     IF sz$ = "CONTINUE" THEN
  186.        UIPop(1)
  187.  
  188.     ELSEIF sz$ = "REACTIVATE" THEN
  189.        GOTO ITYPEL1
  190.  
  191.     ELSE
  192.        GOSUB ASKQUIT
  193.        GOTO ITYPE
  194.  
  195.     END IF
  196.  
  197.  
  198. rem Get the AUTOEXEC.BAT modification option
  199. rem ----------------------------------------
  200. OPTIONC:
  201.     IF SETUPTYPE$ = SERVERINST$ THEN
  202.        GOTO GETPATH
  203.     END IF
  204.  
  205.     SetSymbolValue "RadioDefault", MODAUTOEXECOPT$
  206.  
  207. OPTL1:
  208.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", 0, "")
  209.  
  210.     MODAUTOEXECOPT$ = GetSymbolValue("ButtonChecked")
  211.  
  212.     IF sz$ = "CONTINUE" THEN
  213.        UIPop(1)
  214.  
  215.     ELSEIF sz$ = "REACTIVATE" THEN
  216.        GOTO OPTL1
  217.  
  218.     ELSEIF sz$ = "BACK" THEN
  219.        UIPop 1
  220.        GOTO ITYPE
  221.  
  222.     ELSE
  223.        GOSUB ASKQUIT
  224.        GOTO OPTIONC
  225.  
  226.     END IF
  227.  
  228.  
  229. rem Get the destination path; if it's bad, we display an error
  230. rem ----------------------------------------------------------------
  231. GETPATH:
  232.     IF SETUPTYPE$ = CLIENTINST$ THEN
  233.        DEST$ = SOURCE$
  234.        GOT