home *** CD-ROM | disk | FTP | other *** search
/ Multimedia & CD-ROM 7 / mmcd07-nov1995-cd.iso / applicat / apsound / superj / udemo.ms_ / udemo.bin
Text File  |  1995-06-24  |  12KB  |  460 lines

  1. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  2. '                       SuperJAM! demo installation script
  3. '                       Modified from Setup Toolkit's SAMPLE1.MST
  4. '                           by David Rosenbaum
  5. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  6.  
  7. ''''''$DEFINE DEBUG  ''Define for script development/debugging
  8.  
  9. '$INCLUDE 'setupapi.inc'
  10. '$INCLUDE 'msdetect.inc'
  11.  
  12. '
  13. ' Dialog ID's
  14. '
  15. CONST ASKQUIT = 200
  16. CONST ATTEMPTPLAY = 7806
  17. CONST BADWINMODE = 7805
  18. CONST BADWINVERSION = 1000
  19. CONST COULDNOTOPENREADME = 7811
  20. CONST COULDNOTPLAY = 7807
  21. CONST DONEPLAYING = 7808
  22. CONST EXITFAILURE = 400
  23. CONST EXITQUIT = 600
  24. CONST EXITSUCCESS = 700
  25. CONST GETDESTPATH = 300
  26. CONST NOTENOUGHROOM = 1100
  27. CONST OPENREADME = 7810
  28. CONST PLAYING = 7812
  29. CONST SOUNDEDBAD = 7809
  30. CONST UNWRITABLEDESTDIR = 7804
  31. CONST WELCOME = 100
  32.  
  33. CONST MB_YESNO = 4
  34. CONST MB_ICONQUESTION = 32
  35. CONST IDYES = 6
  36. CONST IDNO = 7
  37.  
  38. '
  39. ' Bitmap ID
  40. '
  41. CONST LOGO = 1
  42.  
  43. '
  44. ' From windows.h:
  45. '
  46. CONST WS_VISIBLE=&H10000000
  47. CONST WS_BORDER =&H00800000
  48. CONST WS_CLIPCHILDREN =&H02000000
  49. CONST GWL_STYLE =-16
  50. CONST SW_SHOWMAXIMIZED=3
  51.  
  52. '
  53. ' Forward declarations
  54. '
  55. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  56.  
  57. DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  58. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  59.  
  60. DECLARE FUNCTION playMIDIFile LIB "mscuistf.dll" ( lpszMIDIFileName$ ) AS LONG
  61. DECLARE FUNCTION displayReadmeFile LIB "mscuistf.dll" ( lpszReadmeFileName$ ) AS INTEGER
  62.                                                         
  63.  
  64. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  65. ' Beginning of the main sequence of execution
  66. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  67. INIT:
  68.     ' Maximize the window
  69.     hWnd%=HwndFrame()
  70.     l&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  71.     i%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  72.  
  73.     prev% = ShowWaitCursor()
  74.  
  75. '$IFDEF DEBUG
  76.     i% = SetCopyMode( 0 )
  77. '$ENDIF ''DEBUG
  78.  
  79.     _cuiDLL$ = "mscuistf.dll"            ''Custom user interface dll
  80.  
  81.     SetBitmap _cuiDLL$, LOGO
  82.     SetTitle "SuperJAM! Demo Setup"
  83.  
  84.     infFile$ = GetSymbolValue("STF_SRCINFPATH")
  85.     IF infFile$ = "" THEN
  86.         infFile$ = GetSymbolValue("STF_CWDDIR") + "UDEMO.INF"
  87.     END IF
  88.     ReadInfFile infFile$
  89.  
  90.     _srcDir$ = GetSymbolValue("STF_SRCDIR")
  91.     winDrive$ = MID$(GetWindowsDir, 1, 1)
  92.     _destDir$ = winDrive$ + ":\DEMOJAM"
  93.  
  94.     _extraCosts$ = "ExtraCosts"
  95.     FOR i% = 1 TO 26 STEP 1
  96.         AddListItem _extraCosts$, "0"
  97.     NEXT i%
  98.     ''Add extra cost to Windows drive for ini/progman, etc.
  99.     drive% = ASC(ucase$(winDrive$)) - ASC("A") + 1
  100.     ReplaceListItem _extraCosts$, drive%, "10240"
  101.  
  102. '$IFDEF DEBUG
  103.     i% = SetSizeCheckMode( scmOnIgnore )  '' could use scmOff; def = scmOnFatal
  104. '$ENDIF ''DEBUG
  105.  
  106.     RestoreCursor prev%
  107.  
  108. WELCOME:
  109.     ret$ = UIStartDlg( _cuiDLL$, WELCOME, "FInfoDlgProc", 0, "" )
  110.     UIPop 1
  111.     IF ret$ <> "CONTINUE" THEN
  112.         GOSUB ASKQUIT
  113.         GOTO WELCOME
  114.     END IF
  115.  
  116.  
  117. CHECKWINVERSION:
  118.     _majorVersion% = GetWindowsMajorVersion()
  119.     _minorVersion% = GetWindowsMinorVersion()
  120.  
  121. '$IFDEF DEBUG
  122.     _majorVersion% = 3
  123.     _minorVersion% = 0
  124. '$ENDIF ''DEBUG
  125.  
  126.     IF _majorVersion% < 3 OR (_majorVersion% = 3 AND _minorVersion% < 1) THEN
  127.         GOSUB BADWINVERSION
  128.     END IF
  129.  
  130.  
  131. CHECKWINMODE:
  132.     _mode% = GetWindowsMode()
  133.  
  134. '$IFDEF DEBUG
  135.     _mode% = 1
  136. '$ENDIF ''DEBUG
  137.  
  138.     IF _mode% < 2 THEN
  139.         GOSUB BADWINMODE
  140.     END IF
  141.  
  142.  
  143. ATTEMPTPLAY:
  144.     ret$ = UIStartDlg( _cuiDLL$, ATTEMPTPLAY, "FInfoDlgProc", 0, "" )
  145.     UIPop 1
  146.     IF ret$ <> "CONTINUE" THEN
  147.         GOSUB ASKQUIT
  148.         GOTO ATTEMPTPLAY
  149.     END IF
  150.  
  151.  
  152. PLAYING:
  153.     prev% = ShowWaitCursor()
  154.     fileName$ = GetSectionKeyFilename( "Files", "DEMOTEST_MID" )
  155.     pathName$ = MakePath( _srcDir$, fileName$ )
  156.     ret$ = UIStartDlg( _cuiDLL$, PLAYING, "FModelessDlgProc", 0, "" )
  157.     l& = playMIDIFile( pathName$ )
  158.     UIPop 1
  159.     RestoreCursor prev%
  160.     IF l& THEN
  161.         _soundProblemFlag = 1
  162.         GOSUB COULDNOTPLAY
  163.         GOTO GETPATHINIT
  164.     END IF
  165.  
  166.  
  167. DONEPLAYING:
  168.     'i% = DoMsgBox( "The MIDI test file has been played.  Did it sound OK?", "Finished Playing", MB_YESNO + MB_ICONQUESTION )
  169.     ret$ = UIStartDlg( _cuiDLL$, DONEPLAYING, "FInfoDlgProc", 0, "" )
  170.     UIPop 1
  171.     IF ret$ = "CONTINUE" THEN
  172.         ' This means "Yes"
  173.          _soundProblemFlag = 0
  174.     ELSEIF ret$ = "EXIT" THEN
  175.         ' This means "No"
  176.         _soundProblemFlag = 1
  177.         _tryAgainFlag% = 0
  178.         GOSUB SOUNDEDBAD
  179.         IF _tryAgainFlag% THEN
  180.             GOTO ATTEMPTPLAY
  181.         END IF
  182.     ELSE
  183.         GOTO DONEPLAYING
  184.     END IF
  185.  
  186.  
  187. GETPATHINIT:
  188.     SetSymbolValue "EditTextIn", _destDir$
  189.     SetSymbolValue "EditFocus", "END"
  190. GETPATH:
  191.     ret$ = UIStartDlg( _cuiDLL$, GETDESTPATH, "FEditDlgProc", 0, "" )
  192.     _destDir$ = GetSymbolValue("EditTextOut")
  193.     IF ret$ = "CONTINUE" THEN
  194.         UIPop 1
  195.         prev% = ShowWaitCursor()
  196.         i% = IsDirWritable( _destDir$ )
  197.         RestoreCursor prev%
  198.         IF i% = 0 THEN
  199.             GOSUB UNWRITABLEDESTDIR
  200.             GOTO GETPATH
  201.         END IF
  202.     ELSEIF ret$ = "REACTIVATE" THEN
  203.         GOTO GETPATH
  204.     ELSE
  205.         UIPop 1
  206.         GOSUB ASKQUIT
  207.         GOTO GETPATHINIT
  208.     END IF
  209.  
  210.  
  211. CHECKSIZE:
  212.     prev% = ShowWaitCursor()
  213.     ClearCopyList
  214.     AddSectionFilesToCopyList "Files", _srcDir$, _destDir$
  215.     DestDrive$ = MID$( _destDir$, 1, 1 )
  216.     drive% = ASC( ucase$( DestDrive$ ) ) - ASC( "A" ) + 1
  217.     ''Add extra cost to destination drive for LOGFILE.OUT
  218.     ReplaceListItem _extraCosts$, drive%, "10240"
  219.     _stillNeed& = GetCopyListCost( _extraCosts$, "", "" )
  220.     RestoreCursor prev%
  221.     IF _stillNeed& > 0 THEN
  222.         GOSUB NOTENOUGHROOM
  223.         ReplaceListItem _extraCosts$, drive%, "0"
  224.         GOTO GETPATH
  225.     END IF
  226.     
  227.  
  228. INSTALL:
  229.     prev% = ShowWaitCursor()
  230.     CreateDir _destDir$, cmoNone
  231.     OpenLogFile MakePath(_destDir$, "LOGFILE.OUT"), 0
  232.     WriteToLogFile ""
  233.     WriteToLogFile "  User chose as destination directory: '" + _destDir$ + "'"
  234.     WriteToLogFile ""
  235.     WriteToLogFile "  May have had to create the directory: " + _destDir$
  236.     WriteToLogFile ""
  237.     RestoreCursor prev%
  238.  
  239.     CopyFilesInCopyList
  240.  
  241.     prev% = ShowWaitCursor()
  242.  
  243.     groupName$ = "SuperJAM! Demo"
  244.     itemName$ = "Demo"
  245.     pathName$ = MakePath( _destDir$, "sjdemo.exe") 
  246.  
  247. '$IFNDEF DEBUG
  248.     CreateProgmanGroup groupName$, "", cmoNone
  249.     ShowProgmanGroup  groupName$, 1, cmoNone
  250.  
  251.     CreateProgmanItem groupName$, itemName$, pathName$ + " DEMOSCR.TXT", "", cmoOverwrite
  252.  
  253.     fileName$ = GetSectionKeyFilename( "Files", "README_TXT" )
  254.     pathName$ = MakePath( _destDir$, fileName$ )
  255.     CreateProgmanItem groupName$, "Read Me", "NOTEPAD.EXE " + pathName$, "", cmoOverwrite
  256.  
  257.     fileName$ = GetSectionKeyFilename( "Files", "INFO_TXT" )
  258.     pathName$ = MakePath( _destDir$, fileName$ )
  259.     CreateProgmanItem groupName$, "Info", "NOTEPAD.EXE " + pathName$, "", cmoOverwrite
  260.  
  261.     'fileName$ = GetSectionKeyFilename( "Files", "ORDER_TXT" )
  262.     'pathName$ = MakePath( _destDir$, fileName$ )
  263.     'CreateProgmanItem groupName$, "Ordering Info", "NOTEPAD.EXE " + pathName$, "", cmoOverwrite
  264.  
  265. '$ENDIF ''DEBUG
  266.  
  267.     CloseLogFile
  268.  
  269.     RestoreCursor prev%
  270.  
  271.  
  272. '
  273. ' This is the default ON ERROR target
  274. '
  275. QUIT:
  276.     ON ERROR GOTO ERRQUIT
  277.  
  278.     IF ERR = 0 THEN
  279.         dlg% = EXITSUCCESS
  280.     ELSEIF ERR = STFQUIT THEN
  281.         dlg% = EXITQUIT
  282.     ELSE
  283.         dlg% = EXITFAILURE
  284.     END IF
  285.  
  286. QUITL1:
  287.     ret$ = UIStartDlg(_cuiDLL$, dlg%, "FInfo0DlgProc", 0, "")
  288.     IF ret$ = "REACTIVATE" THEN
  289.         GOTO QUITL1
  290.     END IF
  291.     UIPop 1
  292.  
  293.     IF _soundProblemFlag = 1 THEN
  294.         GOSUB OPENREADME
  295.     END IF
  296.  
  297.     END
  298.  
  299.  
  300. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  301. ' End of the main sequence of execution
  302. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  303.  
  304. ERRQUIT:
  305.     i% = DoMsgBox("Setup sources were corrupted.  Please call Blue Ribbon Technical Support at (404)315-0212", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  306.     END
  307.  
  308.  
  309. BADWINVERSION:
  310.     'i% = DoMsgBox( "You seem to be running Windows" + STR$( _majorVersion% ) + "." + LTRIM$( STR$( _minorVersion ) ) + ".  SuperJAM! requires Windows 3.1 or above.", "Required Windows Version", MB_TASKMODAL+MB_ICONHAND+MB_OK )
  311.     ret$ = UIStartDlg( _cuiDLL$, BADWINVERSION, "FQuitDlgProc", 0, "" )
  312.     IF ret$ = "EXIT" THEN
  313.         UIPop 1
  314.         ERROR STFQUIT
  315.     ELSEIF ret$ = "REACTIVATE" THEN
  316.         GOTO BADWINVERSION
  317.     ELSE
  318.         UIPop 1
  319.     END IF
  320.     RETURN
  321.  
  322.  
  323. BADWINMODE:
  324.     ret$ = UIStartDlg( _cuiDLL$, BADWINMODE, "FQuitDlgProc", 0, "" )
  325.     IF ret$ = "EXIT" THEN
  326.         UIPop 1
  327.         ERROR STFQUIT
  328.     ELSEIF ret$ = "REACTIVATE" THEN
  329.         GOTO BADWINMODE
  330.     ELSE
  331.         UIPop 1
  332.     END IF
  333.     RETURN
  334.  
  335.  
  336. COULDNOTPLAY:
  337.     ret$ = UIStartDlg( _cuiDLL$, COULDNOTPLAY, "FQuitDlgProc", 0, "" )
  338.     IF ret$ = "EXIT" THEN
  339.         UIPop 1
  340.         ERROR STFQUIT
  341.     ELSEIF ret$ = "REACTIVATE" THEN
  342.         GOTO COULDNOTPLAY
  343.     ELSE
  344.         UIPop 1
  345.     END IF
  346.     RETURN
  347.  
  348.  
  349. SOUNDEDBAD:
  350.     ret$ = UIStartDlg( _cuiDLL$, SOUNDEDBAD, "FQuitDlgProc", 0, "" )
  351.     IF ret$ = "EXIT" THEN
  352.         UIPop 1
  353.         ERROR STFQUIT
  354.     ELSEIF ret$ = "BACK" THEN
  355.         UIPop 1
  356.         _tryAgainFlag% = 1
  357.     ELSEIF ret$ = "REACTIVATE" THEN
  358.         GOTO SOUNDEDBAD
  359.     ELSEIF ret$ = "CANCEL" THEN
  360.         UIPop 1
  361.         GOTO SOUNDEDBAD
  362.     ELSE
  363.         UIPop 1
  364.     END IF
  365.     RETURN
  366.  
  367.  
  368. UNWRITABLEDESTDIR:
  369.     ret$ = UIStartDlg(_cuiDLL$, UNWRITABLEDESTDIR, "FQuitDlgProc", 0, "")
  370.     IF ret$ = "EXIT" THEN
  371.         UIPop 1
  372.         ERROR STFQUIT
  373.     ELSEIF ret$ = "REACTIVATE" THEN
  374.         GOTO UNWRITABLEDESTDIR
  375.     ELSE
  376.         UIPop 1
  377.     END IF
  378.     RETURN
  379.  
  380.                                                             
  381. NOTENOUGHROOM:
  382.     SetSymbolValue "KStillNeeded", STR$( _stillNeed& / 1024 )
  383.     ret$ = UIStartDlg( _cuiDLL$, NOTENOUGHROOM, "FNotEnoughRoomDlgProc", 0, "" )
  384.     IF ret$ = "EXIT" THEN
  385.         UIPop 1
  386.         ERROR STFQUIT
  387.     ELSEIF ret$ = "REACTIVATE" THEN
  388.         GOTO NOTENOUGHROOM
  389.     ELSE
  390.         UIPop 1
  391.     END IF
  392.     RETURN
  393.  
  394.  
  395. OPENREADME:
  396.     ret$ = UIStartDlg( _cuiDLL$, OPENREADME, "FInfoDlgProc", 0, "" )
  397.     UIPop 1
  398.     IF ret$ = "CONTINUE" THEN
  399.         ' This means "Yes"
  400.         fileName$ = GetSectionKeyFilename( "Files", "README_TXT" )
  401.         pathName$ = MakePath( _srcDir$, fileName$ )
  402.         i% = displayReadmeFile( pathName$ )
  403.         IF i% < 32 THEN
  404.             GOSUB COULDNOTOPENREADME
  405.         END IF
  406.     ELSEIF ret$ = "CANCEL" THEN
  407.         GOTO OPENREADME
  408.     END IF
  409.     RETURN
  410.  
  411.  
  412. COULDNOTOPENREADME:
  413.     ret$ = UIStartDlg( _cuiDLL$, COULDNOTOPENREADME, "FQuitDlgProc", 0, "" )
  414.     IF ret$ = "REACTIVATE" THEN
  415.         GOTO COULDNOTOPENREADME
  416.     ELSE
  417.         UIPop 1
  418.     END IF
  419.     RETURN
  420.  
  421.  
  422. ASKQUIT:
  423.     ret$ = UIStartDlg(_cuiDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  424.  
  425.     IF ret$ = "EXIT" THEN
  426.         UIPopAll
  427.         ERROR STFQUIT
  428.     ELSEIF ret$ = "REACTIVATE" THEN
  429.         GOTO ASKQUIT
  430.     ELSE
  431.         UIPop 1
  432.     END IF
  433.     RETURN
  434.  
  435.  
  436. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  437. ' FUNCTION MakePath
  438. '
  439. ' Purpose:
  440. '     Appends a file name to the end of a directory path,
  441. '     inserting a backslash character as needed.
  442. ' Arguments:
  443. '     pathName$ - full directory path (with optional ending "\")
  444. '     fileName$ - file name to append to directory
  445. ' Returns:
  446. '     Resulting fully qualified path name.
  447. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  448.  
  449. FUNCTION MakePath (pathName$, fileName$) STATIC AS STRING
  450.     IF pathName$ = "" THEN
  451.         MakePath = fileName$
  452.     ELSEIF fileName$ = "" THEN
  453.         MakePath = pathName$
  454.     ELSEIF MID$(pathName$, LEN(pathName$), 1) = "\" THEN
  455.         MakePath = pathName$ + fileName$
  456.     ELSE
  457.         MakePath = pathName$ + "\" + fileName$
  458.     END IF
  459. END FUNCTION
  460.