home *** CD-ROM | disk | FTP | other *** search
/ MIDI Music Collection / MUSIC.iso / mentor / setup.mst < prev    next >
Encoding:
Text File  |  1994-09-23  |  11.7 KB  |  424 lines

  1. '**************************************************************************
  2. '*                       Mentor with Recording Session Setup
  3. '*                       Define MENTORCD
  4. '*
  5. '*
  6. '* Changes:
  7. '* 1\10\93
  8. '* Bitmap fills screen for 800x600 and greater, title bar and border is on background bitmap,
  9. '* checks if directory is already present, checks for enough hard driver space.
  10. '* 3/10/94 Special CD-Rom version.  Only Mentor is installed.
  11. '**************************************************************************
  12.  
  13.  
  14.  
  15. '$INCLUDE 'setupapi.inc'
  16. '$INCLUDE 'msdetect.inc'
  17.  
  18. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  19. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  20. DECLARE FUNCTION GetWindowLong LIB "user.exe" (hWnd%, offset%) AS LONG
  21.  
  22.  
  23. ''Dialog ID's
  24.  
  25. CONST WELCOME        = 100
  26. CONST WELCOMEX       = 150
  27. CONST ASKQUIT        = 200
  28. CONST ASKQUITX       = 250
  29. CONST DESTPATH1       = 300
  30. CONST DESTPATH1X      = 350
  31. CONST DESTPATH2      = 6401
  32. CONST DESTPATH2X     = 6451
  33. CONST EXITFAILURE    = 400
  34. CONST EXITFAILUREX   = 450
  35. CONST EXITQUIT       = 600
  36. CONST EXITQUITX      = 650
  37. CONST EXITSUCCESS    = 700
  38. CONST EXITSUCCESSX   = 750
  39. CONST APPHELP        = 900
  40. CONST APPHELPX       = 950
  41. CONST ALREADYEXISTS  = 1000
  42. CONST ALREADYEXISTSX = 1050
  43. CONST TOOBIG         = 6300
  44. CONST TOOBIGX        = 6350
  45. CONST BADPATH        = 6400
  46. CONST BADPATHX       = 6450
  47.  
  48. CONST HDSPACE        = 4700000
  49.  
  50. CONST WS_VISIBLE = &H10000000
  51. CONST WS_CLIPCHILDREN = &H2000000
  52. CONST WS_BORDER = &H800000
  53. CONST SW_SHOWMAXIMIZED = 3
  54. CONST GWL_STYLE =-16
  55.  
  56. '$IFDEF MENTORCD
  57. CONST TITLE = "Midisoft Music Mentor Setup"
  58. '$ENDIF MENTORCD
  59.  
  60. '$IFNDEF MENTORCD
  61. CONST TITLE = "Midisoft Music Mentor with Recording Session"
  62. '$ENDIF MENTORCD
  63. ''Bitmap ID
  64.  
  65. CONST LOGO1 = 1
  66. CONST LOGO2 = 1
  67.  
  68. GLOBAL DEST$        ''Default destination directory.
  69. GLOBAL SESDEST$     ''Default Session directory.
  70. GLOBAL RUNDEST$     ''Default Runtime subdirectory.
  71. GLOBAL OPTCUR$      ''Option selection from option dialog.
  72. GLOBAL SCRWID%
  73.  
  74. DECLARE SUB Install
  75. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  76.  
  77.  
  78. INIT:
  79.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  80.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  81.  
  82.     mainWnd%=HwndFrame()
  83.     curLong& = GetWindowLong (mainWnd%, GWL_STYLE)                        'Creates window with
  84.     curLong& = curLong& OR (WS_BORDER OR WS_CLIPCHILDREN OR WS_CAPTION)   'title bar (Note: using
  85.     w&=SetWindowLong (mainWnd%, GWL_STYLE, curLong&)                      'HT video drivers icon
  86.                                                                           'on one screen is corrupt)
  87.  
  88.     'w&=SetWindowLong(mainWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  89.     j%=ShowWindow(mainWnd%,SW_SHOWMAXIMIZED)
  90.  
  91.     SCRWID% = GetScreenWidth()
  92.         IF SCRWID% = 640 THEN
  93.             SetBitmap CUIDLL$, LOGO1
  94.         ELSE
  95.             SetBitmap CUIDLL$, LOGO2
  96.         END IF
  97.  
  98.     SetTitle TITLE
  99.  
  100.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  101.     IF szInf$ = "" THEN
  102.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  103.     END IF
  104.     ReadInfFile szInf$
  105.  
  106.     OPTCUR$ = "1"
  107.     DEST$ = "C:\MENTOR"
  108.     SESDEST$ = "C:\SESSION"
  109.  
  110. WELCOME:
  111.  
  112.     IF scrwid% = 640 THEN
  113.         sz$ = UIStartDlg(CUIDLL$, WELCOMEX, "FInfoDlgProc", APPHELP, HELPPROC$)
  114.     ELSE
  115.         sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  116.     END IF
  117.  
  118.  
  119.     IF sz$ = "CONTINUE" THEN
  120.         UIPop 1
  121.     ELSE
  122.         GOSUB ASKQUIT
  123.         GOTO WELCOME
  124.     END IF
  125.  
  126.  
  127. GETPATH:
  128.     SetSymbolValue "EditTextIn", DEST$
  129.     SetSymbolValue "EditFocus", "END"
  130. GETPATHL1:
  131.  
  132.     IF scrwid% = 640 THEN
  133.         sz$ = UIStartDlg(CUIDLL$, DESTPATH1X, "FEditDlgProc", APPHELP, HELPPROC$)
  134.     ELSE
  135.         sz$ = UIStartDlg(CUIDLL$, DESTPATH1, "FEditDlgProc", APPHELP, HELPPROC$)
  136.     END IF
  137.  
  138.  
  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.         UIPop 1
  147.     ELSEIF sz$ = "REACTIVATE" THEN
  148.         GOTO GETPATHL1
  149.     ELSEIF sz$ = "BACK" THEN
  150.         UIPop 1
  151.         GOTO WELCOME
  152.     ELSE
  153.         GOSUB ASKQUIT
  154.         GOTO GETPATH
  155.     END IF
  156.  
  157.             'Check if directory exists
  158.     IF DoesDirExist(DEST$) THEN
  159.         UIPop 1
  160.  
  161.         IF SCRWID% = 640 THEN
  162.             sz$ = UIStartDlg(CUIDLL$, ALREADYEXISTSX, "FInfoDlgProc", 0, "")
  163.         ELSE
  164.             sz$ = UIStartDlg(CUIDLL$, ALREADYEXISTS, "FInfoDlgProc", 0, "")
  165.         END IF 'Screen resolution
  166.  
  167.         IF sz$ = "CONTINUE" THEN
  168.                 UIPop 1
  169.  
  170.         ELSEIF sz$ = "REACTIVATE" THEN
  171.             UIPop 1
  172.             GOTO GETPATHL1
  173.  
  174.         ELSEIF sz$ = "BACK" THEN
  175.             UIPop 1
  176.             GOTO GETPATHL1
  177.  
  178.         ELSE
  179.             UIPop 1
  180.             GOSUB ASKQUIT
  181.             GOTO GETPATH
  182.         END IF  'User responses for already exists dialog
  183.  
  184.     END IF  'If directory already exists
  185.  
  186.     checkdltr$ = mid$(DEST$, 1, 1)
  187.     checkdspc& = GetFreeSpaceForDrive(checkdltr$)
  188.     IF checkdspc& < HDSPACE THEN
  189.         IF scrwid% = 640 THEN
  190.             sz$ = UIStartDlg(CUIDLL$, TOOBIGX, "FInfoDlgProc", APPHELP, HELPPROC$)
  191.         ELSE
  192.             sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfoDlgProc", APPHELP, HELPPROC$)
  193.         END IF
  194.  
  195.  
  196.         ERROR STFQUIT
  197.         GOTO QUIT
  198.     END IF
  199.  
  200. '$IFNDEF MENTORCD
  201. GETPATH2:
  202.     SetSymbolValue "EditTextIn", SESDEST$
  203.     SetSymbolValue "EditFocus", "END"
  204. GETPATHL2:
  205.  
  206.     IF scrwid% = 640 THEN
  207.         sz$ = UIStartDlg(CUIDLL$, DESTPATH2X, "FEditDlgProc", APPHELP, HELPPROC$)
  208.     ELSE
  209.         sz$ = UIStartDlg(CUIDLL$, DESTPATH2, "FEditDlgProc", APPHELP, HELPPROC$)
  210.     END IF
  211.  
  212.  
  213.     SESDEST$ = GetSymbolValue("EditTextOut")
  214.  
  215.     IF sz$ = "CONTINUE" THEN
  216.         IF IsDirWritable(SESDEST$) = 0 THEN
  217.             GOSUB BADPATH
  218.             GOTO GETPATHL2
  219.         END IF
  220.         UIPop 1
  221.     ELSEIF sz$ = "REACTIVATE" THEN
  222.         GOTO GETPATHL2
  223.     ELSEIF sz$ = "BACK" THEN
  224.         UIPop 1
  225.  
  226.         GOTO GETPATH
  227.     ELSE
  228.         GOSUB ASKQUIT
  229.         GOTO GETPATH2
  230.     END IF
  231.  
  232.               'Check if directory exists
  233.     IF DoesDirExist(SESDEST$) THEN
  234.         UIPop 1
  235.  
  236.         IF SCRWID% = 640 THEN
  237.             sz$ = UIStartDlg(CUIDLL$, ALREADYEXISTSX, "FInfoDlgProc", 0, "")
  238.         ELSE
  239.             sz$ = UIStartDlg(CUIDLL$, ALREADYEXISTS, "FInfoDlgProc", 0, "")
  240.         END IF 'Screen resolution
  241.  
  242.         IF sz$ = "CONTINUE" THEN
  243.             UIPop 1
  244.  
  245.         ELSEIF sz$ = "REACTIVATE" THEN
  246.             UIPop 1
  247.             GOTO GETPATHL2
  248.  
  249.         ELSEIF sz$ = "BACK" THEN
  250.             UIPop 1
  251.             GOTO GETPATHL2
  252.  
  253.         ELSE
  254.             UIPop 1
  255.             GOSUB ASKQUIT
  256.             GOTO GETPATH2
  257.         END IF  'User responses for already exists dialog
  258.  
  259.     END IF  'If directory already exists
  260. '$ENDIF MENTORCD
  261.  
  262.     Install
  263.  
  264.  
  265. QUIT:
  266.     ON ERROR GOTO ERRQUIT
  267.  
  268.     IF ERR = 0 THEN
  269.         IF SCRWID% = 640 THEN
  270.             dlg% = EXITSUCCESSX
  271.         ELSE
  272.             dlg% = EXITSUCCESS
  273.         END IF
  274.  
  275.  
  276.     ELSEIF ERR = STFQUIT THEN
  277.         IF SCRWID% = 640 THEN
  278.             dlg% = EXITQUITX
  279.         ELSE
  280.             dlg% = EXITQUIT
  281.         END IF
  282.     ELSE
  283.         IF SCRWID% = 640 THEN
  284.             dlg% = EXITFAILUREX
  285.         ELSE
  286.             dlg% = EXITFAILURE
  287.         END IF
  288.     END IF
  289. QUITL1:
  290.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfoDlgProc", 0, "")
  291.     IF sz$ = "REACTIVATE" THEN
  292.         GOTO QUITL1
  293.     END IF
  294.     UIPop 1
  295.  
  296.     END
  297.  
  298. ERRQUIT:
  299.     i% = DoMsgBox("Setup sources were corrupted, please call Midisoft Technical Support", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  300.     END
  301.  
  302.  
  303.  
  304. BADPATH:
  305.     IF scrwid% = 640 THEN
  306.         sz$ = UIStartDlg(CUIDLL$, BADPATHX, "FInfoDlgProc", APPHELP, HELPPROC$)
  307.     ELSE
  308.         sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfoDlgProc", APPHELP, HELPPROC$)
  309.     END IF
  310.  
  311.  
  312.     IF sz$ = "REACTIVATE" THEN
  313.         GOTO BADPATH
  314.     END IF
  315.     UIPop 1
  316.     RETURN
  317.  
  318.  
  319.  
  320. ASKQUIT:
  321.     IF scrwid% = 640 THEN
  322.         sz$ = UIStartDlg(CUIDLL$, ASKQUITX, "FQuitDlgProc", APPHELP, HELPPROC$)
  323.     ELSE
  324.         sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", APPHELP, HELPPROC$)
  325.     END IF
  326.  
  327.  
  328.  
  329.     IF sz$ = "EXIT" THEN
  330.         UIPop 5
  331.         ERROR STFQUIT
  332.     ELSEIF sz$ = "REACTIVATE" THEN
  333.         GOTO ASKQUIT
  334.     ELSE
  335.         UIPop 1
  336.     END IF
  337.     RETURN
  338.  
  339.  
  340.  
  341. '**
  342. '** Purpose:
  343. '**     Builds the copy list and performs all installation operations.
  344. '** Arguments:
  345. '**     none.
  346. '** Returns:
  347. '**     none.
  348. '*************************************************************************
  349. SUB Install STATIC
  350.  
  351.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  352.     MENTSRCDIR$ = SrcDir$
  353.     RUNSRCDIR$ = MakePath (MENTSRCDIR$, "RUNTIME")
  354.     MIDISRCDIR$ = MakePath (MENTSRCDIR$, "MIDFILES")
  355.     RUNDEST$ = MakePath(DEST$, "RUNTIME")
  356.     SESSIONSRCDIR$ = MakePath(SrcDir$, "SESSION")
  357.  
  358.     CreateDir DEST$, cmoNone
  359.     CreateDir MakePath(DEST$, "RUNTIME"), cmoNone
  360.     CreateDir MakePath(DEST$, "MIDFILES"), cmoNone
  361.  
  362. '$IFNDEF MENTORCD
  363.     CreateDir SESDEST$, cmoNone
  364.  
  365.     AddSectionFilesToCopyList "Midisoft", SESSIONSRCDIR$, SESDEST$
  366.     AddSectionFilesToCopyList "Midifiles", MIDISRCDIR$, MakePath(DEST$, "MIDFILES")
  367.     AddSectionFilesToCopyList "Runtime", RUNSRCDIR$, MakePath(DEST$, "RUNTIME")
  368.     AddSectionFilesToCopyList "Mentor", MENTSRCDIR$, DEST$
  369.     AddSectionFilesToCopyList "System", MakePath(SrcDir$, "SYSTEM"), MakePath(GetWindowsDir(), "SYSTEM")
  370.  '$ENDIF MENTORCD
  371.  
  372. '$IFDEF MENTORCD
  373.     AddSectionFilesToCopyList "Midifiles", MIDISRCDIR$, MakePath(DEST$, "MIDFILES")
  374.     AddSectionFilesToCopyList "Runtime", RUNSRCDIR$, MakePath(DEST$, "RUNTIME")
  375.     AddSectionFilesToCopyList "Mentor", MENTSRCDIR$, DEST$
  376. '$ENDIF MENTORCD
  377.     CopyFilesInCopyList
  378.  
  379.     CreateIniKeyValue "Win.ini", "Extensions", "mtr", MakePath(DEST$,"TBOOK.EXE"), cmoOverwrite
  380.  
  381.     ICONPATH$ = MakePath(RUNDEST$,"MENTOR.ICO")
  382.  
  383.  
  384.  
  385.     CreateProgmanGroup "Midisoft« Music Mentor", "", cmoNone
  386.     ShowProgmanGroup  "Midisoft« Music Mentor", 1, cmoNone
  387.     CreateProgmanItem "Midisoft« Music Mentor", "Music Mentor", MakePath(RUNDEST$,"tbook.exe")+" "+MakePath(DEST$, "Mentor.mtr"), ICONPATH$, cmoOverwrite
  388. '$IFNDEF MENTORCD
  389.     CreateProgmanItem "Midisoft« Music Mentor", "Recording Session", MakePath(SESDEST$,"SESSION.EXE"), "", cmoOverwrite
  390.     CreateProgmanItem "Midisoft« Music Mentor", "Recording Session Help", MakePath(SESDEST$, "session.hlp"),"", cmoOverwrite
  391.     CreateProgmanItem "Midisoft« Music Mentor", "Introduction to Notation", "WINHELP -i INTRO_NOTATION " + SESDEST$ + "\INTRO.HLP","", cmoOverwrite
  392.     CreateProgmanItem "Midisoft« Music Mentor", "Introduction to MIDI", "WINHELP -i INTRO_MIDI " + SESDEST$ + "\INTRO.HLP","", cmoOverwrite
  393.     CreateProgmanItem "Midisoft« Music Mentor", "General MIDI", "WINHELP -i INTRO_GENERAL_MIDI " + SESDEST$ + "\INTRO.HLP","", cmoOverwrite
  394.  
  395. '$ENDIF MENTORCD
  396.  
  397.  
  398. END SUB
  399.  
  400.  
  401.  
  402. '**
  403. '** Purpose:
  404. '**     Appends a file name to the end of a directory path,
  405. '**     inserting a backslash character as needed.
  406. '** Arguments:
  407. '**     szDir$  - full directory path (with optional ending "\")
  408. '**     szFile$ - filename to append to directory
  409. '** Returns:
  410. '**     Resulting fully qualified path name.
  411. '*************************************************************************
  412. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  413.     IF szDir$ = "" THEN
  414.         MakePath = szFile$
  415.     ELSEIF szFile$ = "" THEN
  416.         MakePath = szDir$
  417.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  418.         MakePath = szDir$ + szFile$
  419.     ELSE
  420.         MakePath = szDir$ + "\" + szFile$
  421.     END IF
  422. END FUNCTION
  423.  
  424.