home *** CD-ROM | disk | FTP | other *** search
/ Bill James Electronic Baseball Encyclopedia 1.51 / BJE151.iso / bjebe.ms_ / bjebe.ms
Text File  |  1996-12-08  |  22KB  |  667 lines

  1. '**************************************************************************
  2. '*            Bill James Electronic Baseball Encyclopedia Setup
  3. '**************************************************************************
  4. '$INCLUDE 'setupapi.inc'
  5. '$INCLUDE 'msdetect.inc'
  6.  
  7. 'Dialog ID's
  8. CONST WELCOME         = 100
  9. CONST APPHELP       = 901
  10. CONST ASKQUIT         = 200
  11. CONST DESTPATH        = 300
  12. CONST EXITFAILURE     = 400
  13. CONST EXITQUIT        = 600
  14. CONST OPTIONSSUCCESS  = 750
  15. CONST REGULAROPTIONS = 850
  16. CONST INSTALLHELP    = 851
  17. CONST INSTALLEDOPTIONS = 860
  18. CONST INSTALLEDHELP    = 861
  19. CONST CONFIRMINSTALL   = 870
  20. CONST CONFIRMUNINSTALL = 880
  21. CONST UNINSTALLING     = 885
  22. CONST CLEANUP          = 886
  23. CONST DELETEGROUP      = 890
  24. CONST DELETEICONS      = 895    
  25. CONST DISKSMALL     = 6300
  26. CONST BADPATH       = 6400
  27. CONST LOGO = 2          'BitMap for Title
  28.  
  29. GLOBAL DEST$           'Default destination directory.
  30. GLOBAL FIRSTINSTALL$   'Is this the first installation true/false
  31. GLOBAL INSTALLAPP$     'Install the Application files true/false
  32. GLOBAL INSTALLDATA$    'Install the Data Files
  33. GLOBAL REMOVEAPP$      'Uninstall app from hard drive
  34. GLOBAL REMOVEDATA$     'Uninstall data from hard drive
  35. GLOBAL FILENAMES$      'List of files to UnInstall
  36. GLOBAL INISECTIONARRAY$(11)
  37.  
  38. GLOBAL SrcDir$         'Source directory where setup resides
  39. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  40. DECLARE FUNCTION FindKey (szKEY$) AS INTEGER
  41.  
  42. DECLARE SUB   UpdateMABBINI
  43.  
  44. DECLARE FUNCTION GetGroupName AS STRING
  45. DECLARE FUNCTION GetFileName AS STRING
  46.  
  47. '****************************************** Initialization ************************************
  48. INIT:
  49.  
  50.     CUIDLL$ = "mscuistf.dll"           'Custom user interface dll which has user dialogs
  51.     HELPPROC$ = "FHelpDlgProc"         'Help dialog procedure
  52.  
  53.     SetBitmap CUIDLL$, LOGO
  54.     SetTitle "Bill James Encyclopedia Setup"
  55.     SetAbout "Bill James Electronic Baseball Encyclopedia","Copyright (C) 1996, Miller Associates,Inc"
  56.                             'STF_SRCINFPATH = Defult symbol which has the path for the .INF file
  57.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  58.     IF szInf$ = "" THEN         'STF_CWDDIR = Default symbol which has the current working or temporary directory for SETUP.EXE
  59.       szInf$ = GetSymbolValue("STF_CWDDIR") + "BJEBE.INF"
  60.       END IF
  61.  
  62.     ReadInfFile szInf$            'Crucial first step
  63.  
  64.     SzDir$ = MID$(GetWindowsDir, 1, 1) +":\"
  65.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  66.  
  67.     INSTALLAPP$    = "True"
  68.     FIRSTINSTALL$  = "True"
  69.     INSTALLDATA$   = "False"
  70.     REMOVEAPP$     = "False"
  71.     REMOVEDATA$    = "False"
  72.  
  73.     INISECTIONARRAY$(1)  = "BJEBEW"
  74.     INISECTIONARRAY$(2)  = "BJOBJECT"
  75.     INISECTIONARRAY$(3)  = "BJSTRUCT"
  76.     INISECTIONARRAY$(4)  = "BJBIO"
  77.     INISECTIONARRAY$(5)  = "BJLCYCLE"
  78.     INISECTIONARRAY$(6)  = "BJTEAM1"
  79.     INISECTIONARRAY$(7)  = "BJTEAM2"
  80.     INISECTIONARRAY$(8)  = "BJOFFENSE"
  81.     INISECTIONARRAY$(9)  = "BJPITCHING"
  82.     INISECTIONARRAY$(10) = "BJDEFENSE"
  83.     INISECTIONARRAY$(11) = "BJQUOTES"
  84.    ' INISECTIONARRAY$(12) = "BJEREG" 
  85.  
  86. CHECKWINVERSION:
  87.   TEMP% = GetWindowsMajorVersion    'if Windows version >= 3.1 then OKAY to install
  88.   IF (Temp% > 3) OR ((TEMP% = 3) AND (GetWindowsMinorVersion <> 0)) THEN
  89.     GOTO WELCOMEDIALOG
  90.   ELSE
  91.     GOTO ERRORWRONGVERSION
  92.   END IF
  93.  
  94.  
  95.  DEST$ = ""
  96.  
  97. '*************************************** Welcome Dialog **************************************
  98. WELCOMEDIALOG:
  99.   sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", 0, "")
  100.   IF sz$ = "CONTINUE" THEN
  101.     UIPop 1
  102.   ELSE
  103.     GOSUB ASKQUIT
  104.     GOTO WELCOMEDIALOG
  105.   END IF
  106.  
  107.   IF LEN(DEST$) = 0 THEN
  108.     IF DoesFileExist(MakePath(GetWindowsDir,"ma_bb.ini"),femExists) = 0 THEN
  109.       DEST$ = "C:\BJEBEW"
  110.     ELSE
  111.       DEST$ = GetIniKeyString (MakePath(GetWindowsDir, "ma_bb.ini"), "ENCYCLOPEDIA", "InstallPath")
  112.       IF DoesFileExist(MakePath(DEST$,"Winbjebe.exe"),femExists) = 0 THEN
  113.         DEST$ = "C:\BJEBEW"
  114.       ELSE
  115.         FIRSTINSTALL$ = "False"
  116.         VHD$ = GetVersionofFile(MakePath(DEST$,"WinBJEBE.exe"))
  117.         VCD$ = GetVersionofFile(MakePath(SRCDIR$,"BJEBEW\WinBJEBE.exe"))                                    '*** <=
  118.         IF (GetVersionNthField(VHD$,1) > GetVersionNthField(VCD$,1)) THEN
  119.           INSTALLAPP$ = "False"
  120.           GOTO WRONGBJEBEVERSION
  121.         ELSEIF (GetVersionNthField(VHD$,1) = GetVersionNthField(VCD$,1))  AND (GetVersionNthField(VHD$,2) > GetVersionNthField(VCD$,2)) THEN
  122.           INSTALLAPP$ = "False"
  123.           GOTO WRONGBJEBEVERSION
  124.         END IF
  125.       END IF
  126.     END IF
  127.   END IF
  128.  
  129. '**************************************** Get Install Path ***********************************
  130. GETPATH:
  131.   IF FIRSTINSTALL$ = "False" THEN
  132.     GOTO INSTALLEDOPTIONS
  133.     END IF
  134. 'Getting the Install path using DEST$ as default
  135.     SetSymbolValue "EditTextIn", DEST$
  136.     SetSymbolValue "EditFocus", "END"
  137. GETPATHDIALOG:
  138.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  139.     DEST$ = GetSymbolValue("EditTextOut")
  140.     IF sz$ = "CONTINUE" THEN
  141.       DESTDRIVE$ = MID$(DEST$, 1, 1)
  142.       IF IsDirWritable(DEST$) = 0 THEN
  143.         GOSUB BADPATH
  144.         GOTO GETPATHDIALOG
  145.       END IF
  146.       UIPop 1
  147.     ELSEIF sz$ = "REACTIVATE" THEN
  148.       GOTO GETPATHDIALOG
  149.     ELSEIF sz$ = "BACK" THEN
  150.       UIPop 1
  151.       GOTO WELCOMEDIALOG
  152.     ELSE
  153.       GOSUB ASKQUIT
  154.       GOTO GETPATH
  155.     END IF
  156.  
  157.  
  158. '************************************** First Time Install ******************************
  159. OPTIONS:   'Select the installation options
  160.  
  161.     IF INSTALLDATA$ = "True" then
  162.       SetSymbolValue "RadioDefault","2"
  163.     ELSE
  164.       SetSymbolValue "RadioDefault","1"
  165.     END IF
  166.  
  167. OPTIONSDIALOG:
  168.  
  169.     sz$ = UIStartDlg(CUIDLL$, REGULAROPTIONS, "FRadioDlgProc", INSTALLHELP, HELPPROC$)
  170.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  171.  
  172.     IF sz$ = "CONTINUE" THEN
  173.       UIPop 1
  174.     ELSEIF sz$ = "REACTIVATE" THEN
  175.       GOTO OPTIONSDIALOG
  176.     ELSEIF sz$ = "BACK" THEN
  177.       UIPop 1
  178.       GOTO WELCOMEDIALOG
  179.     ELSE
  180.       GOSUB ASKQUIT
  181.       GOTO OPTIONSDIALOG
  182.     END IF
  183.  
  184.     IF OPTCUR$ = "2" THEN
  185.       INSTALLDATA$ = "True"
  186.       INSTALLAPP$  = "True"
  187.     ELSE
  188.       INSTALLDATA$ = "False"
  189.       INSTALLAPP$  = "True"
  190.     END IF
  191.  
  192. CONFIRMINSTALL:
  193.   sz$ = UIStartDlg(CUIDLL$, CONFIRMINSTALL, "FCheckDlgProc", 0, "")
  194.   IF sz$ = "CONTINUE" THEN
  195.     UIPop 1
  196.     GOTO INSTALL
  197.   ELSEIF sz$ = "REACTIVATE" THEN
  198.     GOTO CONFIRMINSTALL
  199.   ELSEIF sz$ = "BACK" THEN
  200.     UIPop 1
  201.     IF FIRSTINSTALL = "True" THEN
  202.       GOTO OPTIONS   
  203.     ELSE  
  204.       GOTO INSTALLEDOPTIONS
  205.     END IF 
  206.   ELSE
  207.     GOSUB ASKQUIT
  208.     GOTO CONFIRMINSTALL
  209.     END IF
  210.  
  211.  
  212. '**************************************** Uninstall/Install Data ******************************
  213. INSTALLEDOPTIONS:   'Select the installation options
  214.  
  215.     IF REMOVEAPP$ = "True" then
  216.       SetSymbolValue "RadioDefault","1"
  217.     ELSEIF INSTALLDATA$ = "True" Then
  218.       SetSymbolValue "RadioDefault","3"
  219.     ELSE
  220.       SetSymbolValue "RadioDefault","2"
  221.     END IF
  222.  
  223. INSTALLEDDIALOG:
  224.  
  225.     sz$ = UIStartDlg(CUIDLL$, INSTALLEDOPTIONS, "FRadioDlgProc", INSTALLEDHELP, HELPPROC$)
  226.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  227.  
  228.     IF sz$ = "CONTINUE" THEN
  229.       UIPop 1
  230.     ELSEIF sz$ = "REACTIVATE" THEN
  231.       GOTO INSTALLEDDIALOG
  232.     ELSEIF sz$ = "BACK" THEN
  233.       UIPop 1
  234.       GOTO WELCOMEDIALOG
  235.     ELSE
  236.       GOSUB ASKQUIT
  237.       GOTO INSTALLEDDIALOG
  238.     END IF
  239.  
  240.     IF OPTCUR$ = "3" THEN
  241.       INSTALLDATA$ = "True"
  242.       INSTALLAPP$  = "True"
  243.       REMOVEAPP$   = "False"
  244.       REMOVEDATA$  = "False"
  245.       GOTO CONFIRMINSTALL
  246.     ELSEIF OPTCUR$ = "2" THEN
  247.       INSTALLAPP$  = "True"
  248.       INSTALLDATA$ = "False"
  249.       REMOVEAPP$   = "False"
  250.       REMOVEDATA$  = "True"
  251.       GOTO CONFIRMINSTALL
  252.     ELSE
  253.       INSTALLDATA$ = "False"
  254.       INSTALLAPP$  = "False"
  255.       REMOVEAPP$   = "True"
  256.       REMOVEDATA$  = "True"
  257.     END IF
  258.  
  259.  CONFIRMUNINSTALL:
  260.   sz$ = UIStartDlg(CUIDLL$, CONFIRMUNINSTALL, "FCheckDlgProc", 0, "")
  261.   IF sz$ = "CONTINUE" THEN
  262.     UIPop 1
  263.