home *** CD-ROM | disk | FTP | other *** search
/ TriplePlayPlus! Language Sampler / TriplePlayPlusLanguageSampler.iso / setup.mst < prev    next >
Text File  |  1996-03-14  |  9KB  |  356 lines

  1. '**************************************************************************
  2. '*                       MSSetup for TPP Language Sampler
  3. '**************************************************************************
  4.  
  5.  
  6. '$INCLUDE 'setupapi.inc'
  7. '$INCLUDE 'msdetect.inc'
  8.  
  9. ''Dialog ID's
  10. CONST ASKQUIT       = 200
  11. CONST DESTPATH      = 300
  12. CONST EXITFAILURE   = 400
  13. CONST EXITQUIT      = 600
  14. CONST EXITSUCCESS   = 70
  15. CONST CUSTINFO      = 700
  16. CONST OPTIONS       = 800
  17. CONST APPHELP       = 900
  18. CONST NOFREESPACE   = 1000
  19. CONST BADPATH       = 6400
  20. CONST NOAVISPACE    = 1300
  21. CONST REBOOTLATER   = 1400
  22.  
  23. CONST AVISPACE      = 335344            ''SIZE OF MCIAVI.DRV approx 150K
  24. CONST MINSPACE      = 12000000           ''12 million bytes (less than 6MB)
  25.  
  26. ''Bitmap ID
  27. CONST LOGO = 1
  28.  
  29. GLOBAL DEST$        ''Default destination directory.
  30. GLOBAL OPTCUR$      ''Option selection from option dialog.
  31. GLOBAL SRCDIR$
  32. GLOBAL INSTDIR$
  33. GLOBAL APPNAME$
  34. GLOBAL HELPNAME$
  35. GLOBAL WINTITLE$
  36. GLOBAL DIRNAME$
  37. GLOBAL TmpSrc$
  38. GLOBAL TmpDest$
  39. GLOBAL AviSrc$
  40. GLOBAL MinorVersion
  41. GLOBAL MajorVersion
  42. GLOBAL WINDIR$
  43. GLOBAL WINSYSDIR$
  44. GLOBAL mciavistring$
  45. GLOBAL RebootFlag
  46. GLOBAL CUIDLL$
  47. GLOBAL MainIwmName$
  48. GLOBAL MainIconName$
  49. GLOBAL OrderIconName$
  50.  
  51. DECLARE SUB Install
  52. DECLARE SUB EditSystemIni
  53. DECLARE SUB BuildGroup
  54. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  55.  
  56. INIT:
  57.     APPNAME$ = "TriplePlay Plus! Language Sampler"
  58.     DIRNAME$ = "TPP5Demo"        
  59.     WINTITLE$ = APPNAME$ + " - Installation"
  60.     MainIwmName$ = "STARTUP.IWM"
  61.     MainIconName$ = "TPP5DEMO.ICO"
  62.     OrderIconName$ = "NOTEPAD.ICO"
  63.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  64.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  65.     SetBitmap CUIDLL$, LOGO
  66.     SetTitle  WINTITLE$
  67.  
  68.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  69.     IF szInf$ = "" THEN
  70.     szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  71.     END IF
  72.     ReadInfFile szInf$
  73.  
  74.     SRCDIR$ = (GetSymbolValue("STF_SRCDIR") + DIRNAME$ + "\")
  75.     WINDIR$ = GetWindowsDir()
  76.     WINSYSDIR$ = GetWindowsSysDir()
  77.  
  78.     RebootFlag = 0    ''if system ini and win ini don't have the
  79.             ''appropriate entry for mci drivers, then the 
  80.             ''RebootFlag is set TRUE and a reboot dialog box
  81.             ''appears on the screen reminding them to reboot
  82.  
  83.  
  84.     OPTCUR$ = "1"
  85.     DEST$ = ("C:\" + DIRNAME$)
  86.     MinorVersion=GetWindowsMinorVersion()
  87.     MajorVersion=GetWindowsMajorVersion()
  88.  
  89.     IF MajorVersion < 3 OR (MajorVersion = 3 AND MinorVersion < 10) THEN
  90.     i% = DoMsgBox("Microsoft Windows Version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  91.     END
  92.     END IF
  93.  
  94.  
  95. '$IFDEF DEBUG
  96.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  97.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  98.     IF IsDriveValid(WinDrive$) = 0 THEN
  99.     i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  100.     GOTO QUIT
  101.     END IF
  102. '$ENDIF ''DEBUG
  103.  
  104.  
  105. AVI_ENTRY:
  106.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  107.     IF GetFreeSpaceForDrive(WinDrive$) < AVISPACE THEN
  108.         GOSUB NOAVISPACE
  109.         UIPopAll
  110.         END
  111.     ENDIF
  112.     
  113.     
  114.  
  115. OPTION:
  116.     SetSymbolValue "RadioDefault", OPTCUR$
  117. OPTL1:
  118.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  119.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  120.  
  121.     IF sz$ = "CONTINUE" THEN
  122.     UIPop(1)
  123.       ELSEIF sz$ = "REACTIVATE" THEN
  124.     GOTO OPTL1
  125.       ELSE
  126.     GOSUB ASKQUIT
  127.     GOTO OPTION
  128.       END IF
  129.     IF OPTCUR$ = "2" THEN
  130.     GOTO NOINSTALL
  131.     END IF
  132.  
  133.  
  134. GETPATH:
  135.     SetSymbolValue "EditTextIn", DEST$
  136.     SetSymbolValue "EditFocus", "END"
  137. GETPATHL1:
  138.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  139.     DEST$ = GetSymbolValue("EditTextOut")
  140.  
  141.     IF sz$ = "CONTINUE" THEN
  142.     IF IsDirWritable(DEST$) = 0 THEN
  143.         GOSUB BADPATH
  144.         GOTO GETPATHL1
  145.     END IF
  146.         IF MID$(DEST$, LEN(DEST$), 1) = "\" THEN
  147.             GOSUB BADPATH
  148.             GOTO GETPATHL1
  149.         END IF
  150.     IF GetFreeSpaceForDrive(DEST$) < MINSPACE THEN
  151.         GOSUB NOFREESPACE
  152.         GOTO GETPATHL1
  153.     ENDIF
  154.     UIPop 1
  155.     ELSEIF sz$ = "REACTIVATE" THEN
  156.     GOTO GETPATHL1
  157.     ELSEIF sz$ = "BACK" THEN
  158.     UIPop 1
  159.     GOTO OPTION
  160.     ELSE
  161.     GOSUB ASKQUIT
  162.     GOTO GETPATH
  163.     END IF
  164.  
  165.  
  166.     Install
  167.     GOTO QUIT
  168.  
  169. NOINSTALL:
  170.     INSTDIR$ = SRCDIR$
  171.     AviSrc$ = SrcDir$ + "AVIDRIVR"
  172.     AddSectionFilesToCopyList "AviDrivers",AviSrc$,WINSYSDIR$
  173.     i% = SetSilentMode(1)
  174.     CopyFilesInCopyList
  175.     i% = SetSilentMode(0)
  176.     EditSystemIni
  177.     BuildGroup
  178.  
  179. QUIT:
  180.     ON ERROR GOTO ERRQUIT
  181.  
  182.     IF ERR = 0 THEN
  183.     dlg% = EXITSUCCESS
  184.     ELSEIF ERR = STFQUIT THEN
  185.     dlg% = EXITQUIT
  186.     ELSE
  187.     dlg% = EXITFAILURE
  188.     END IF
  189.  
  190.  
  191. QUITL1:
  192.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  193.     IF sz$ = "REACTIVATE" THEN
  194.     GOTO QUITL1
  195.     END IF
  196.     UIPop 1
  197.  
  198. INFO:
  199.     IF ERR = 0 THEN
  200.        dlg% = CUSTINFO
  201.        sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  202.        IF sz$ = "REACTIVATE" THEN
  203.           GOTO INFO
  204.        END IF
  205.        UIPop 1
  206.     END IF
  207.     
  208.        
  209.     END
  210.  
  211. ERRQUIT:
  212.     i% = DoMsgBox("Setup sources were corrupted, call the included support number", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  213.     END
  214.  
  215.  
  216.  
  217. BADPATH:
  218.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  219.     IF sz$ = "REACTIVATE" THEN
  220.     GOTO BADPATH
  221.     END IF
  222.     UIPop 1
  223.     RETURN
  224.  
  225. NOFREESPACE:
  226.     sz$ = UIStartDlg(CUIDLL$, NOFREESPACE, "FInfo0DlgProc", 0, "")
  227.     IF sz$ = "REACTIVATE" THEN
  228.     GOTO NOFREESPACE
  229.     END IF
  230.     UIPop 1
  231.     RETURN
  232.  
  233. NOAVISPACE:
  234.     sz$ = UIStartDlg(CUIDLL$, NOAVISPACE, "FInfo0DlgProc", 0, "")
  235.     IF sz$ = "REACTIVATE" THEN
  236.     GOTO NOAVISPACE
  237.     END IF
  238.     UIPop 1
  239.     RETURN
  240.  
  241.  
  242. ASKQUIT:
  243.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  244.  
  245.     IF sz$ = "EXIT" THEN
  246.     UIPopAll
  247.     ERROR STFQUIT
  248.     ELSEIF sz$ = "REACTIVATE" THEN
  249.     GOTO ASKQUIT
  250.     ELSE
  251.     UIPop 1
  252.     END IF
  253.     RETURN
  254.  
  255.  
  256.  
  257. '**
  258. '** Purpose:
  259. '**     Builds the copy list and performs all installation operations.
  260. '** Arguments:
  261. '**     none.
  262. '** Returns:
  263. '**     none.
  264. '*************************************************************************
  265. SUB Install STATIC
  266.  
  267.     SrcDir$ = (GetSymbolValue("STF_SRCDIR") + DIRNAME$ + "\")
  268.     CreateDir DEST$, cmoNone
  269.  
  270.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  271.     TmpSrc$ = SrcDir$ + "VARIABLE\IWVAR"
  272.     TmpDest$ = DEST$ + "\VARIABLE"
  273.     AddSectionFilesToCopyList "IWVAR", TmpSrc$, TmpDest$
  274.     AviSrc$ = SrcDir$ + "AVIDRIVR"
  275.     AddSectionFilesToCopyList "AviDrivers",AviSrc$,WINSYSDIR$
  276.     CopyFilesInCopyList
  277.  
  278.  
  279.     INSTDIR$ = DEST$
  280.     EditSystemIni
  281.     BuildGroup
  282.  
  283. END SUB
  284.  
  285. SUB EditSystemIni STATIC
  286.     ''i% = DoesIniKeyExist(WINDIR$ + "system.ini","mci","AVIVideo")
  287.     ''IF i% = 0 THEN
  288.     ''    RebootFlag = 1
  289.     ''ENDIF
  290.     ''i% = DoesIniKeyExist(WINDIR$ + "system.ini","Drivers","VIDC.MSVC")
  291.     ''IF i% = 0 THEN
  292.     ''    RebootFlag = 1
  293.     ''ENDIF
  294.         
  295.     i% = DoesIniKeyExist(WINDIR$ + "system.ini","Drivers","MSACM.MSADPCM")
  296.     IF i% = 0 THEN
  297.         RebootFlag = 1
  298.     ENDIF
  299.         
  300.         i% = DoesIniKeyExist(WINDIR$ + "system.ini","Drivers","wavemapper")
  301.     IF i% = 0 THEN
  302.         RebootFlag = 1
  303.     ENDIF
  304.  
  305.     ''CreateIniKeyValue WINDIR$ + "system.ini","mci","AVIVideo","mciavi.drv",cmoOverwrite
  306.     ''CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  307.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.MSADPCM", "msadpcm.acm", cmoOverwrite
  308.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "wavemapper", "msacm.drv", cmoOverwrite
  309.     ''CreateIniKeyValue "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  310. END SUB
  311.  
  312. SUB BuildGroup STATIC
  313.  
  314.     CreateProgmanGroup "LANGUAGE", "", cmoNone
  315.     ShowProgmanGroup  "LANGUAGE", 1, cmoNone
  316.     CreateProgmanItem "LANGUAGE", "TPP Language Sampler", MakePath(INSTDIR$,"SLSSTART.EXE")+" "+MainIwmName$, MakePath(INSTDIR$,MainIconName$), cmoOverwrite    
  317.     CreateProgmanItem "LANGUAGE", "Order Form", "NOTEPAD.EXE "+MakePath(INSTDIR$,"ORDER.TXT"),MakePath(INSTDIR$,OrderIconName$), cmoOverwrite    
  318.  
  319. REBOOTMSG:
  320.     IF RebootFlag = 1 THEN
  321.         sz$ = UIStartDlg(CUIDLL$, REBOOTLATER, "FInfo0DlgProc", 0, "")
  322.         IF sz$ = "REACTIVATE" THEN
  323.         GOTO REBOOTMSG
  324.         END IF
  325.         UIPop 1
  326.     ENDIF
  327.         
  328.  
  329. END SUB
  330.  
  331.  
  332.  
  333.  
  334. '**
  335. '** Purpose:
  336. '**     Appends a file name to the end of a directory path,
  337. '**     inserting a backslash character as needed.
  338. '** Arguments:
  339. '**     szDir$  - full directory path (with optional ending "\")
  340. '**     szFile$ - filename to append to directory
  341. '** Returns:
  342. '**     Resulting fully qualified path name.
  343. '*************************************************************************
  344. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  345.     IF szDir$ = "" THEN
  346.     MakePath = szFile$
  347.     ELSEIF szFile$ = "" THEN
  348.     MakePath = szDir$
  349.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  350.     MakePath = szDir$ + szFile$
  351.     ELSE
  352.     MakePath = szDir$ + "\" + szFile$
  353.     END IF
  354. END FUNCTION
  355.  
  356.