home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Musical Instruments / Musical-Instruments.iso / msstp / setup.mst < prev    next >
Text File  |  1993-09-24  |  12KB  |  462 lines

  1. '**************************************************************************
  2. '*            Microsoft Multimedia Publishing Group Setup
  3. '*                   Microsoft Musical Instruments
  4. '*       (c) 1993 Microsoft Corporation.  All Rights Reserved.
  5. '**************************************************************************
  6.  
  7. '$DEFINE DEBUG  ''Define for script development/debugging
  8. '$DEFINE MERISMUS  ''Define for Merismus Editorial support DLL
  9.  
  10. '$INCLUDE 'setupapi.inc'
  11. '$INCLUDE 'msdetect.inc'
  12.  
  13. 'User disk profile
  14. CONST NEEDEDHDSPACE  = 800000
  15.  
  16. ''Dialog ID's
  17. CONST WELCOME       = 100
  18. CONST ASKQUITDLG    = 200
  19. CONST DESTPATH      = 300
  20. CONST DESTPATH_EXISTING      = 1000
  21. CONST EXITFAILURE   = 400
  22. CONST EXITQUIT      = 600
  23. CONST EXITSUCCESS   = 700
  24. CONST EXITSUCCESS_OVERVIEW   = 1100
  25. CONST EXITSUCCESS_NORESTART  = 1800
  26. CONST OPTIONS       = 800
  27. CONST APPHELP       = 900
  28. CONST BADPATH       = 6400
  29. CONST ASKVIDEOMODE  = 1200
  30. CONST CHECKVIDEO    = 1300
  31. CONST PALEXPLAIN    = 1400
  32. CONST MAILMAN       = 1500
  33. CONST ACTIVATEFONTS = 1700
  34. CONST TOOBIG        = 6300
  35.  
  36. CONST ASKNEWADPCM   = 2100
  37.  
  38. CONST ASKCONFIGADPCM  =  2200
  39. CONST NEWADPCM        =  2600
  40. CONST NEWSYSTEMSOFTWARE      =     2300
  41. CONST WARNNOSYSSOFT          =     3100
  42.  
  43. CONST TGRPBOXID     = 3742
  44.  
  45.  
  46. ''Bitmap ID
  47. CONST LOGO = 1
  48.  
  49. GLOBAL SRCDIR$      '' CD root path (location of setup.exe)
  50. GLOBAL VIDEO$       '' Windows Video Driver type (VGA or 8514)
  51. GLOBAL MUSICINI$    '' Fully-qualified path to MSINSTR.INI
  52. GLOBAL SYSINI$      '' Fully-qualified path to SYSTEM.INI
  53. GLOBAL WININI$      '' Fully-qualified path to WIN.INI
  54. GLOBAL DEST$        '' Default destination directory.
  55. GLOBAL OPTCUR$      '' Option selection from option dialog.
  56. GLOBAL CUIDLL$      '' Name of Custom User Interface DLL
  57. GLOBAL VIDACT$      '' Stores user decision to use Palettized VGA.
  58. GLOBAL MUSTRESTART$ '' Stores user decision to install system software.
  59. GLOBAL TARGRP$
  60.  
  61. '$INCLUDE 'mmperf.inc'
  62. '$INCLUDE 'adpcm.inc'
  63. '$INCLUDE 'mmcat.inc'
  64.  
  65.  
  66. DECLARE FUNCTION ShowWindow LIB "user" (Hwnd%, nCmdShow%) As Integer
  67.  
  68. DECLARE SUB Install        '' Modify for specific runtimes
  69. DECLARE SUB InstallFonts    '' Modify for custom fonts
  70.  
  71. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  72.  
  73.  
  74.  
  75. '**************************************************************************
  76. '**  General Installation Script
  77. '**************************************************************************
  78. INIT:
  79.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  80.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  81.  
  82.     i% = ShowWindow( HwndFrame(), 3 )
  83.     SetBitmap CUIDLL$, LOGO
  84.     SetTitle "Microsoft Musical Instruments Setup"
  85.  
  86.     'AddToBillboardList CUIDLL$, MAILMAN, "MailmanDlgProc", 1000
  87.  
  88.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  89.     If szInf$ = "" Then
  90.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  91.     End If
  92.     ReadInfFile szInf$
  93.  
  94.     OPTCUR$ = "2"
  95.  
  96.     SRCDIR$   = GetSymbolValue("STF_SRCDIR")
  97.     MUSICINI$ = MakePath(GetWindowsDir(),"MSINSTR.INI")
  98.     SYSINI$   = MakePath(GetWindowsDir(),"SYSTEM.INI")
  99.     WININI$   = MakePath(GetWindowsDir(),"WIN.INI")
  100.  
  101. ' Initialize the Video mode here ...
  102.     VIDEO$ = "VGA"
  103.  
  104.  
  105. INITWINCHECK:
  106.     If ((GetWindowsMajorVersion() = 3) And (GetWindowsMinorVersion() >= 1)) Or (GetWindowsMajorVersion() > 3) Then
  107.         'Version of Windows is OK.  Continue with Setup...
  108.     Else
  109.         i% = DoMsgBox("Microsoft Musical Instruments requires Windows 3.1 or greater.","Setup Failed", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  110.         dlg% = EXITFAILURE
  111.         GOTO QUITL3
  112.     End If
  113.  
  114. WELCOME:
  115.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  116.     If sz$ = "CONTINUE" Then
  117.         UIPop 1
  118.     Else
  119.         GOSUB ASKQUIT
  120.         GOTO WELCOME
  121.     End If
  122.  
  123. VIDL1:
  124.     VIDACT$ = "NOSWITCH"
  125.     sz$ = UIStartDlg(CUIDLL$, CHECKVIDEO, "FInfoVideoDlgProc", 0, "")
  126.     If sz$ = "REACTIVATE" Then
  127.         GOTO VIDL1
  128.     End If
  129.     UIPop 1
  130.     If sz$ = "SUBVGA" Then
  131.         i% = DoMsgBox( "Microsoft Musical Instruments requires a VGA display.", "Setup Failed", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  132.         dlg% = EXITFAILURE
  133.         GOTO QUITL3
  134.     End If
  135.     sz$ = "VIDEOISOK"
  136.  
  137. WINNTDISCLAIMERS:
  138.     If RunningNT() <> 0 Then
  139.         szVideoResult$ = GetSymbolValue( "DIAG_VIDEO" )
  140.  
  141.         If szVideoResult$ = "16COLOR" Then
  142.             i% = DoMsgBox( "Musical Instruments does not support 16-color displays under Windows NT.  Please consult the Read Me file for more information.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONEXCLAMATION)
  143.         End If
  144.     End If        
  145.  
  146.  
  147. DOPERFCHECK:
  148.     GoSub SYSCHECK
  149.  
  150. GETPATH:
  151.     DEST$ = "C:\MSINSTR"
  152.  
  153.     SetSymbolValue "EditTextIn", DEST$
  154.     SetSymbolValue "EditFocus", "END"
  155.  
  156.  
  157. GETPATHL1:
  158.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  159.  
  160.     DEST$ = GetSymbolValue("EditTextOut")
  161.  
  162.     If sz$ = "CONTINUE" Then
  163.         If IsDirWritable(DEST$) = 0 Then
  164.             GOSUB BADPATH
  165.             GOTO GETPATHL1
  166.         End If
  167.         If GetFreeSpaceForDrive( MID$( DEST$, 1, 1 ) ) < NEEDEDHDSPACE Then
  168.             GOSUB DRIVEFULL
  169.          GOTO GETPATHL1
  170.         End If
  171.         If DoesDirExist( DEST$ ) = 0 Then
  172.         i% = DoMsgBox( "The specified directory does not exist.  Do you want to create the directory?", "Install Location", 8228)
  173.         If i% = 7 Then
  174.             GOTO GETPATHL1
  175.         End If
  176.         End If
  177.         UIPop 1
  178.     ElseIf sz$ = "REACTIVATE" Then
  179.         GOTO GETPATHL1
  180.     ElseIf sz$ = "BACK" Then
  181.         UIPop 1
  182.         GOTO WELCOME
  183.     Else
  184.         GOSUB ASKQUIT
  185.         GOTO GETPATHL1
  186.     End If
  187.  
  188. ''*****************************************************************
  189.  
  190.     Install
  191.  
  192. ''*****************************************************************
  193.  
  194. QUIT:
  195.     ON ERROR GOTO ERRQUIT
  196.  
  197.     If ERR = 0 Then
  198.         If MUSTRESTART$ = "SWITCH" Then
  199.             dlg% = EXITSUCCESS_OVERVIEW
  200.         GOTO MAILMANDLG
  201.         Else        
  202.             dlg% = EXITSUCCESS_NORESTART
  203.         GOTO MAILMANDLG
  204.         End If
  205.     ElseIf ERR = STFQUIT Then
  206.         END
  207.     Else
  208.         dlg% = EXITFAILURE
  209.         GOTO QUITL3
  210.     End If
  211.  
  212. QUITL3:
  213.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  214.     If sz$ = "REACTIVATE" Then
  215.         GOTO QUITL3
  216.     ElseIf sz$ = "README" Then
  217.         If DoesFileExist ((MakePath (GetWindowsDir(), "notepad.exe")), femExists) = 1 Then
  218.             RUN "NOTEPAD.EXE" + " " + MakePath(DEST$,"README.TXT"), NOWAIT
  219.         Else
  220.             i% = DoMsgBox( "Notepad is not installed.", "Microsoft Musical Instruments Setup", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  221.         End If
  222.         GOTO QUITL3
  223.     ElseIf sz$ = "RESTART" Then
  224.         ForceRestartOn
  225.         i% = ExitExecRestart()
  226.         i% = DoMsgBox( "The new system configuration will not be loaded until Windows is restarted.", "Restart Failed", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  227.     ElseIf sz$ = "EXIT" Then
  228.         If MUSTRESTART$ = "SWITCH" Then
  229.             i% = DoMsgBox( "The new system configuration will not be loaded until Windows is restarted.", "Microsoft Musical Instruments Setup", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  230.         End If
  231.     End If
  232.     UIPop 1
  233.  
  234.     END
  235.  
  236. DIAG_QUIT:
  237.     dlg% = EXITFAILURE
  238.     GOTO QUITL3
  239.  
  240. MAILMANDLG:
  241.     sz$ = UIStartDlg(CUIDLL$, MAILMAN, "MailmanDlgProc", APPHELP, HELPPROC$)
  242.     UIPop 1
  243.     GOTO QUITL3
  244.  
  245. ERRQUIT:
  246.     i% = DoMsgBox("Setup sources were corrupted, consult your manual for a Product Support phone number.", "Setup Error", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  247.     END
  248.  
  249.  
  250.  
  251. BADPATH:
  252.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  253.     If sz$ = "REACTIVATE" Then
  254.         GOTO BADPATH
  255.     End If
  256.     UIPop 1
  257.     RETURN
  258.  
  259.  
  260.  
  261. DRIVEFULL:
  262.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  263.     If sz$ = "REACTIVATE" Then
  264.         GOTO DRIVEFULL
  265.     End If
  266.     UIPop 1
  267.     RETURN
  268.  
  269.  
  270.  
  271. ASKQUIT:
  272.     sz$ = UIStartDlg(CUIDLL$, ASKQUITDLG, "FQuitDlgProc", 0, "")
  273.  
  274.     If sz$ = "EXIT" Then
  275.         UIPopAll
  276.         ERROR STFQUIT
  277.     ElseIf sz$ = "REACTIVATE" Then
  278.         GOTO ASKQUIT
  279.     Else
  280.         UIPop 1
  281.     End If
  282.     RETURN
  283.  
  284.  
  285.  
  286.  
  287. '*************************************************************************
  288. '**
  289. '** Install
  290. '** -------
  291. '**
  292. '** Purpose:
  293. '**     Builds the copy list and performs all installation operations.
  294. '** Arguments:
  295. '**     none.
  296. '** Returns:
  297. '**     none.
  298. '*************************************************************************
  299. SUB Install STATIC
  300.  
  301.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  302.     CreateDir DEST$, cmoNone
  303.     WinDir$ = GetWindowsDir()
  304.     SysDir$ = GetWindowsSysDir()
  305.  
  306.     SetRestartDir DEST$
  307.     AddSectionFilesToCopyList "Executable", SrcDir$, DEST$
  308.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  309.  
  310.  
  311. SYSFILESTUFF:
  312.     If RunningNT() <> 0 Then
  313.         ' NT has all this stuff built in.
  314.         GoTo ASKTARGET
  315.     End If
  316.  
  317.     NEEDSYSCOPY% = 1
  318.     
  319.     ' Check to see if we need to install ADPCM.
  320.     IF DoesFileExist ((MakePath (SysDir$, "msacm.drv")), femExists) = 1 Then
  321.         IF DoesFileExist ((MakePath (SysDir$, "msadpcm.acm")), femExists) = 1 Then
  322.             NEEDSYSCOPY% = 0
  323.         END IF
  324.     END IF
  325.  
  326.     If NEEDSYSCOPY% = 0 Then
  327.         GoTo ASKTARGET
  328.     End If
  329.  
  330.  
  331. ADPCM1:
  332.  
  333.     sz$ = UIStartDlg(CUIDLL$, NEWSYSTEMSOFTWARE, "FInfo0DlgProc", 0, "")
  334.     If sz$ = "REACTIVATE" Then
  335.         GOTO ADPCM1
  336.     End If
  337.     UIPop 1
  338.     If sz$ = "VIDSWITCH" Then
  339.         CopyADPCMFiles    
  340.         MUSTRESTART$ = "SWITCH"
  341.     ElseIf sz$ = "README" Then
  342.  
  343. ADPCM11:
  344.         sz$ = UIStartDlg(CUIDLL$, NEWADPCM, "FInfo0DlgProc", 0, "")
  345.         If sz$ = "REACTIVATE" Then
  346.             GOTO ADPCM11
  347.         End If    
  348.         UIPop 1
  349.         GOTO ADPCM1
  350.  
  351.     ElseIf sz$ = "CANCEL" Then
  352.  
  353. ADPCM12:
  354.         sz$ = UIStartDlg(CUIDLL$, WARNNOSYSSOFT, "FInfo0DlgProc", 0, "")
  355.         If sz$ = "REACTIVATE" Then
  356.             GOTO ADPCM12
  357.         ElseIf sz$ = "BACK" THEN 
  358.             UIPop 1
  359.             GOTO ADPCM1
  360.         End If    
  361.         UIPop 1
  362.  
  363.         
  364.     End If
  365.  
  366.  
  367. ASKTARGET:
  368.     sz$ = UIStartDlg(CUIDLL$, TGRPBOXID, "GBOXDlgProc", 0, "")
  369.     If sz$ = "REACTIVATE" Then
  370.         GOTO ASKTARGET
  371.     ElseIf sz$ = "CANCELPRESSED" Then
  372.         UIPop 1
  373.         GOSUB DOYAWANNAQUIT
  374.         GOTO ASKTARGET
  375.     End If
  376.     UIPop 1
  377.  
  378.     If RTrim$(sz$) = "" Then
  379.         sz$ = "Microsoft Multimedia"
  380.     End If
  381.     TARGRP$ = sz$
  382.     SetSymbolValue "TARGETGROUP", sz$
  383.  
  384.  
  385. COPYAPPFILES:
  386.     SetCopyGaugePosition 15, 125
  387.     CopyFilesInCopyList
  388.  
  389.     SetupMMCatalog
  390.  
  391.     CreateProgManGroup TARGRP$, "", cmoNone
  392.     ShowProgManGroup   TARGRP$, 1,  cmoNone
  393.  
  394.     EXE$ = MakePath( DEST$, "msinstr.exe" )
  395.     CMDLINE$ = MakePath( DEST$, "msinstr.the" )
  396.  
  397.     CreateProgManItem TARGRP$, "Musical Instruments", EXE$, EXE$, cmoOverwrite
  398.     CreateProgManItem TARGRP$, "Read Me: Musical Instruments Tips", "NOTEPAD.EXE " + MakePath(DEST$, "readme.txt") , "", cmoOverwrite
  399.  
  400.     MMCatSetProgman
  401.  
  402.     SrcDrive$ = MID$(SrcDir$, 1, 1)         
  403.  
  404.     CreateIniKeyValue MUSICINI$, "Music", "CD", SrcDrive$ + ":", cmoOverwrite
  405.     CreateIniKeyValue MUSICINI$, "Music", "Command", CMDLINE$, cmoOverwrite
  406.    CreateIniKeyValue MUSICINI$, "Music", "Directory", DEST$ + "\", cmoOverwrite
  407.     CreateIniKeyValue MUSICINI$, "Music", "UNCPath", "", cmoOverwrite
  408.     CreateIniKeyValue WININI$, "Sounds", "MSInstrOpen", ",Musical Instr. Open", cmoOverwrite
  409.  
  410.     If RunningNT() = 0 Then
  411.         SetADPCMIniFiles
  412.     End If
  413.  
  414.     GOTO INSTSUBEND
  415.  
  416.  
  417.  
  418. DOYAWANNAQUIT:
  419.     sz$ = UIStartDlg(CUIDLL$, ASKQUITDLG, "FQuitDlgProc", 0, "")
  420.  
  421.     If sz$ = "EXIT" Then
  422.         UIPopAll
  423.         ERROR STFQUIT
  424.     ElseIf sz$ = "REACTIVATE" Then
  425.         GOTO DOYAWANNAQUIT
  426.     Else
  427.         UIPop 1
  428.     End If
  429.     RETURN
  430.  
  431.  
  432. INSTSUBEND:
  433.     END SUB
  434.  
  435.  
  436.  
  437.  
  438. '*************************************************************************
  439. '**
  440. '** MakePath
  441. '** --------
  442. '** Purpose:
  443. '**     Appends a file name to the end of a directory path,
  444. '**     inserting a backslash character as needed.
  445. '** Arguments:
  446. '**     szDir$  - full directory path (with optional ending "\")
  447. '**     szFile$ - filename to append to directory
  448. '** Returns:
  449. '**     Resulting fully qualified path name.
  450. '*************************************************************************
  451. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  452.     If szDir$ = "" Then
  453.         MakePath = szFile$
  454.     ElseIf szFile$ = "" Then
  455.         MakePath = szDir$
  456.     ElseIf MID$(szDir$, LEN(szDir$), 1) = "\" Then
  457.         MakePath = szDir$ + szFile$
  458.     Else
  459.         MakePath = szDir$ + "\" + szFile$
  460.     End If
  461. END FUNCTION
  462.