home *** CD-ROM | disk | FTP | other *** search
/ On Hand / On_Hand_From_Softbank_1994_Release_2_Disc_1_1994.iso / 00192 / s / sjen.ms_ / sjen.bin
Text File  |  1994-01-28  |  11KB  |  377 lines

  1. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  2. '                       SuperJAM! installation script
  3. '                       Modified from Setup Toolkit's SAMPLE1.MST
  4. '                           by David Rosenbaum
  5. '
  6. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  7.  
  8. '''''$DEFINE DEBUG  ''Define for script development/debugging
  9.  
  10. '$INCLUDE 'setupapi.inc'
  11. '$INCLUDE 'msdetect.inc'
  12.  
  13. '
  14. ' Dialog ID's
  15. '
  16. CONST ASKQUIT = 200
  17. CONST BADWINVERSION = 1000
  18. CONST CONFIRMREGISTRATIONINFO = 7300
  19. CONST EXITFAILURE = 400
  20. CONST EXITSUCCESS = 700
  21. CONST EXITQUIT = 600
  22. CONST GETDESTPATH = 300
  23. CONST GETREGISTRATIONINFO = 7801
  24. CONST NONAME = 7805
  25. CONST NOTENOUGHROOM = 1100
  26. CONST UNWRITABLEDESTDIR = 7804
  27.  
  28. '
  29. ' Bitmap ID
  30. '
  31. CONST LOGO = 1
  32.  
  33. '
  34. ' From windows.h:
  35. '
  36. CONST WS_VISIBLE=&H10000000
  37. CONST WS_BORDER =&H00800000
  38. CONST WS_CLIPCHILDREN =&H02000000
  39. CONST GWL_STYLE =-16
  40. CONST SW_SHOWMAXIMIZED=3
  41.  
  42. '
  43. ' Forward declarations
  44. '
  45. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  46.  
  47. DECLARE FUNCTION ShowWindow LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  48. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  49.  
  50. DECLARE SUB munge LIB "mscuistf.dll" ( sz$ )
  51. DECLARE FUNCTION getnamesernum LIB "mscuistf.dll" ( libName$, custName$, serNum$ ) AS INTEGER
  52. DECLARE FUNCTION stringtoboolean2 LIB "mscuistf.dll" ( sz$ ) AS INTEGER
  53. DECLARE FUNCTION stringtoboolean1 LIB "mscuistf.dll" ( sz$ ) AS INTEGER
  54.  
  55. '
  56. ' Execution "starts" here
  57. '
  58. INIT:
  59.     ' Maximize the window
  60.     hWnd%=HwndFrame()
  61.     l&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  62.     i%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  63.  
  64.     _cuiDLL$ = "mscuistf.dll"            ''Custom user interface dll
  65.  
  66.     SetBitmap _cuiDLL$, LOGO
  67.     SetTitle "SuperJAM! Setup"
  68.  
  69.     prev% = ShowWaitCursor()
  70.  
  71.     infFile$ = GetSymbolValue("STF_SRCINFPATH")
  72.     IF infFile$ = "" THEN
  73.         infFile$ = GetSymbolValue("STF_CWDDIR") + "SJEN.INF"
  74.     END IF
  75.     ReadInfFile infFile$
  76.  
  77.     _srcDir$ = GetSymbolValue("STF_SRCDIR")
  78.     winDrive$ = MID$(GetWindowsDir, 1, 1)
  79.     _destDir$ = winDrive$ + ":\SUPERJAM"
  80.  
  81.     _extraCosts$ = "ExtraCosts"
  82.     FOR i% = 1 TO 26 STEP 1
  83.         AddListItem _extraCosts$, "0"
  84.     NEXT i%
  85.     ''Add extra cost to Windows drive for ini/progman, etc.
  86.     drive% = ASC(ucase$(winDrive$)) - ASC("A") + 1
  87.     ReplaceListItem _extraCosts$, drive%, "10240"
  88.  
  89.  
  90. CHECKWINVERSION:
  91.     _majorVersion% = GetWindowsMajorVersion()
  92.     _minorVersion% = GetWindowsMinorVersion()
  93.  
  94. '$IFDEF DEBUG
  95.     _majorVersion = 3
  96.     _minorVersion = 0
  97. '$ENDIF ''DEBUG
  98.  
  99.     RestoreCursor prev%
  100.  
  101.     IF _majorVersion < 3 OR (_majorVersion = 3 AND _minorVersion < 1) THEN
  102.         GOSUB BADWINVERSION
  103.     END IF
  104.  
  105.  
  106. GETPATHINIT:
  107.     SetSymbolValue "EditTextIn", _destDir$
  108.     SetSymbolValue "EditFocus", "END"
  109. GETPATH:
  110.     ret$ = UIStartDlg( _cuiDLL$, GETDESTPATH, "FEditDlgProc", 0, "" )
  111.     _destDir$ = GetSymbolValue("EditTextOut")
  112.     IF ret$ = "CONTINUE" THEN
  113.         UIPop 1
  114.         prev% = ShowWaitCursor()
  115.         i% = IsDirWritable( _destDir$ )
  116.         RestoreCursor prev%
  117.         IF i% = 0 THEN
  118.             GOSUB UNWRITABLEDESTDIR
  119.             GOTO GETPATH
  120.         END IF
  121.     ELSEIF ret$ = "REACTIVATE" THEN
  122.         GOTO GETPATH
  123.     ELSE
  124.         UIPop 1
  125.         GOSUB ASKQUIT
  126.         GOTO GETPATHINIT
  127.     END IF
  128.  
  129.  
  130. CHECKSIZE:
  131.     prev% = ShowWaitCursor()
  132.     ClearCopyList
  133.     AddSectionFilesToCopyList "Files", _srcDir$, _destDir$
  134.     DestDrive$ = MID$( _destDir$, 1, 1 )
  135.     drive% = ASC( ucase$( DestDrive$ ) ) - ASC( "A" ) + 1
  136.     ''Add extra cost to destination drive for LOGFILE.OUT
  137.     ReplaceListItem _extraCosts$, drive%, "10240"
  138.     _stillNeed& = GetCopyListCost( _extraCosts$, "", "" )
  139.     RestoreCursor prev%
  140.     IF _stillNeed& > 0 THEN
  141.         GOSUB NOTENOUGHROOM
  142.         ReplaceListItem _extraCosts$, drive%, "0"
  143.         GOTO GETPATH
  144.     END IF
  145.  
  146.  
  147. GETREGISTRATIONINFOINIT:
  148.     prev% = ShowWaitCursor()
  149.     fileName$ = GetSectionKeyFilename( "Files", "BRMIDI" )
  150.     pathName$ = MakePath( _srcDir$, fileName$ )
  151.     custName$ = STRING$( 40, "x" )
  152.     serNum$ = STRING$( 20, "x" )
  153.     i% = getnamesernum( pathName$, custName$, serNum$ )
  154.     'j% = DoMsgBox( custName$ + serNum$, pathName$ + STR$( i% ), MB_TASKMODAL+MB_ICONHAND+MB_OK )
  155.     RestoreCursor prev%
  156.  
  157. '$IFNDEF DEBUG
  158.     if stringtoboolean2( serNum$ ) = 0 THEN
  159.         GOTO INSTALL
  160.     END IF
  161. '$ENDIF
  162.  
  163.     SetSymbolValue "NameIn", ""
  164.     SetSymbolValue "SerNumIn", ""
  165.     SetSymbolValue "CurrentControl", "NAME"
  166.  
  167. GETREGISTRATIONINFO:
  168.     ret$ = UIStartDlg(_cuiDLL$, GETREGISTRATIONINFO, "FNameSerNumDlgProc", 0, "")
  169.     UIPop 1
  170.     IF ret$ <> "CONTINUE" THEN
  171.         GOSUB ASKQUIT             
  172.         GOTO GETREGISTRATIONINFO
  173.     END IF
  174.     _custNameOut$ = GetSymbolValue( "NameOut" )
  175.     '_serNumOut$ = GetSymbolValue( "SerNumOut" )
  176.     _serNumOut$ = GetIniKeyString( MakePath( GetSymbolValue("STF_CWDDIR"), "MSVVER.INI" ), "About", "sn" )
  177.     SetSymbolValue "NameIn", _custNameOut$
  178.     SetSymbolValue "SerNumIn", _serNumOut$
  179.  
  180.     IF LEN( _custNameOut$ ) <= 0 THEN
  181.         ret$ = UIStartDlg( _cuiDLL$, NONAME, "FInfo0DlgProc", 0, "" )
  182.         UIPop 1
  183.         SetSymbolValue "CurrentControl", "NAME"
  184.         GOTO GETREGISTRATIONINFO
  185.     END IF
  186.  
  187.  
  188. CONFIRMREGISTRATIONINFOINIT:
  189.     AddListItem "ConfirmTextIn", ""  
  190.     AddListItem "ConfirmTextIn", ""  
  191.     AddListItem "ConfirmTextIn", ""  
  192.     ReplaceListItem "ConfirmTextIn", 1, _custNameOut$
  193.     ReplaceListItem "ConfirmTextIn", 2, _serNumOut$
  194. CONFIRMREGISTRATIONINFO:
  195.     ret$ = UIStartDlg( _cuiDLL$, CONFIRMREGISTRATIONINFO, "FConfirmDlgProc", 0, "" )
  196.     IF ret$ = "CONTINUE" THEN
  197.         UIPop 1
  198.     ELSEIF ret$ = "REACTIVATE" THEN        
  199.         GOTO CONFIRMREGISTRATIONINFOINIT
  200.     ELSEIF ret$ = "BACK" THEN
  201.         UIPop 1
  202.         GOTO GETREGISTRATIONINFO
  203.     ELSE
  204.         UIPop 1
  205.         GOSUB ASKQUIT
  206.         GOTO CONFIRMREGISTRATIONINFOINIT
  207.     END IF
  208.     
  209.  
  210. INSTALL:
  211.     prev% = ShowWaitCursor()
  212.     CreateDir _destDir$, cmoNone
  213.     OpenLogFile MakePath(_destDir$, "LOGFILE.OUT"), 0
  214.     WriteToLogFile ""
  215.     WriteToLogFile "  User chose as destination directory: '" + _destDir$ + "'"
  216.     WriteToLogFile ""
  217.     WriteToLogFile "  May have had to create the directory: " + _destDir$
  218.     WriteToLogFile ""
  219.  
  220. '$IFDEF DEBUG
  221.     i% = SetCopyMode( 0 )
  222.     i% = SetSizeCheckMode( scmOnIgnore )  '' could use scmOff; def = scmOnFatal
  223. '$ENDIF ''DEBUG
  224.  
  225.     RestoreCursor prev%
  226.  
  227. '$IFNDEF DEBUG
  228.     CopyFilesInCopyList
  229. '$ENDIF ''DEBUG
  230.  
  231.     munge _custNameOut$
  232.     munge _serNumOut$
  233.     stamp$=CHR$(LEN(_custNameOut$))+_custNameOut$+CHR$(LEN(_serNumOut$))+_serNumOut$
  234.     prev% = ShowWaitCursor()
  235.     StampResource "Files", "BRMIDI", _destDir$, 6, &H272, stamp$, LEN(stamp$)
  236.     RestoreCursor prev%
  237.  
  238.     superJamName$ = "SuperJAM!"
  239.     superJamPath$ = MakePath( _destDir$, "SUPERJAM.EXE") 
  240.  
  241.     styleSamplerName$ = "Style Sampler"
  242.     styleSamplerPath$ = MakePath( _destDir$, "STYLES.EXE") 
  243.  
  244. '$IFNDEF DEBUG
  245.     CreateProgmanGroup superJamName$, "", cmoNone
  246.     ShowProgmanGroup  superJamName$, 1, cmoNone
  247.     CreateProgmanItem superJamName$, superJamName$, superJamPath$, superJamPath$ + ",0,1,1," + _destDir$, cmoOverwrite
  248.     CreateProgmanItem superJamName$, "Demo Song", superJamPath$ + " SONGS\demo.sjm", superJamPath$ + ",8,2,1," + _destDir$, cmoOverwrite
  249.     CreateProgmanItem superJamName$, styleSamplerName$, styleSamplerPath$, styleSamplerPath$ + ",0,3,1," + _destDir$, cmoOverwrite
  250.  
  251.     CreateIniKeyValue "win.ini", "Extensions", "sjm", superJamPath$ + " ^.sjm", cmoOverWrite
  252. '$ENDIF ''DEBUG
  253.  
  254.     CloseLogFile
  255.  
  256.  
  257. '
  258. ' This is the ON ERROR target for everything else
  259. '
  260. QUIT:
  261.     ON ERROR GOTO ERRQUIT
  262.  
  263.     IF ERR = 0 THEN
  264.         dlg% = EXITSUCCESS
  265.     ELSEIF ERR = STFQUIT THEN
  266.         dlg% = EXITQUIT
  267.     ELSE
  268.         dlg% = EXITFAILURE
  269.     END IF
  270. QUITL1:
  271.     ret$ = UIStartDlg(_cuiDLL$, dlg%, "FInfo0DlgProc", 0, "")
  272.     IF ret$ = "REACTIVATE" THEN
  273.         GOTO QUITL1
  274.     END IF
  275.     UIPop 1
  276.  
  277.     END
  278.  
  279.  
  280. ERRQUIT:
  281.     i% = DoMsgBox("Setup sources were corrupted.  Please call Blue Ribbon Technical Support at (404)315-0212", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  282.     END
  283.  
  284.  
  285. BADWINVERSION:
  286.     '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 )
  287.     ret$ = UIStartDlg( _cuiDLL$, BADWINVERSION, "FQuitDlgProc", 0, "" )
  288.     IF ret$ = "EXIT" THEN
  289.         UIPop 1
  290.         ERROR STFQUIT
  291.     ELSEIF ret$ = "REACTIVATE" THEN
  292.         GOTO BADWINVERSION
  293.     ELSE
  294.         UIPop 1
  295.     END IF
  296.     RETURN
  297.  
  298.  
  299. UNWRITABLEDESTDIR:
  300.     ret$ = UIStartDlg(_cuiDLL$, UNWRITABLEDESTDIR, "FQuitDlgProc", 0, "")
  301.     IF ret$ = "EXIT" THEN
  302.         UIPop 1
  303.         ERROR STFQUIT
  304.     ELSEIF ret$ = "REACTIVATE" THEN
  305.         GOTO UNWRITABLEDESTDIR
  306.     ELSE
  307.         UIPop 1
  308.     END IF
  309.     RETURN
  310.  
  311.                                                             
  312. NOTENOUGHROOM:
  313.     SetSymbolValue "KStillNeeded", STR$( _stillNeed& / 1024 )
  314.     ret$ = UIStartDlg( _cuiDLL$, NOTENOUGHROOM, "FNotEnoughRoomDlgProc", 0, "" )
  315.     IF ret$ = "EXIT" THEN
  316.         UIPop 1
  317.         ERROR STFQUIT
  318.     ELSEIF ret$ = "REACTIVATE" THEN
  319.         GOTO NOTENOUGHROOM
  320.     ELSE
  321.         UIPop 1
  322.     END IF
  323.     RETURN
  324.  
  325.  
  326. UNWRITABLESRCDIR:
  327.     ret$ = UIStartDlg( _cuiDLL$, UNWRITABLESRCDIR, "FQuitDlgProc", 0, "" )
  328.     IF ret$ = "EXIT" THEN
  329.         UIPop 1
  330.         ERROR STFQUIT
  331.     ELSEIF ret$ = "REACTIVATE" THEN
  332.         GOTO UNWRITABLESRCDIR
  333.     ELSE
  334.         UIPop 1
  335.     END IF
  336.     RETURN
  337.  
  338.  
  339. ASKQUIT:
  340.     ret$ = UIStartDlg(_cuiDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  341.  
  342.     IF ret$ = "EXIT" THEN
  343.         UIPop 1
  344.         ERROR STFQUIT
  345.     ELSEIF ret$ = "REACTIVATE" THEN
  346.         GOTO ASKQUIT
  347.     ELSE
  348.         UIPop 1
  349.     END IF
  350.     RETURN
  351.  
  352.  
  353. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  354. ' FUNCTION MakePath
  355. '
  356. ' Purpose:
  357. '     Appends a file name to the end of a directory path,
  358. '     inserting a backslash character as needed.
  359. ' Arguments:
  360. '     pathName$ - full directory path (with optional ending "\")
  361. '     fileName$ - file name to append to directory
  362. ' Returns:
  363. '     Resulting fully qualified path name.
  364. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  365.  
  366. FUNCTION MakePath (pathName$, fileName$) STATIC AS STRING
  367.     IF pathName$ = "" THEN
  368.         MakePath = fileName$
  369.     ELSEIF fileName$ = "" THEN
  370.         MakePath = pathName$
  371.     ELSEIF MID$(pathName$, LEN(pathName$), 1) = "\" THEN
  372.         MakePath = pathName$ + fileName$
  373.     ELSE
  374.         MakePath = pathName$ + "\" + fileName$
  375.     END IF
  376. END FUNCTION
  377.