home *** CD-ROM | disk | FTP | other *** search
/ Sound Explorer Plus / SOUNDEXP.BIN / setup.mst < prev    next >
Text File  |  1993-10-28  |  8KB  |  277 lines

  1. '**************************************************************************
  2. '*                       SoundExplorer Setup
  3. '**************************************************************************
  4.  
  5.  
  6. '$INCLUDE 'setupapi.inc'
  7. '$INCLUDE 'msdetect.inc'
  8.  
  9.  
  10.  
  11. ''Dialog ID's
  12. CONST WELCOME       = 100
  13. CONST ASKQUIT       = 200
  14. CONST DESTPATH      = 300
  15. CONST EXITFAILURE   = 400
  16. CONST EXITQUIT      = 600
  17. CONST EXITSUCCESS   = 700
  18. CONST OPTIONS       = 800
  19. CONST APPHELP       = 900
  20. CONST ALREADYEXISTS = 1000
  21. CONST TOOBIG        = 6300
  22. CONST BADPATH       = 6400
  23.  
  24. ''Bitmap ID
  25. CONST LOGO = 1
  26.  
  27. GLOBAL DEST$        ''Default destination directory.
  28. GLOBAL OPTCUR$      ''Option selection from option dialog.
  29.  
  30. DECLARE SUB Install
  31. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  32.  
  33.  
  34. INIT:
  35.  
  36.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  37.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  38.  
  39.     SetBitmap CUIDLL$, LOGO
  40.     SetTitle "Sound Explorer Setup"
  41.  
  42.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  43.     IF szInf$ = "" THEN
  44.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  45.     END IF
  46.     ReadInfFile szInf$
  47.  
  48.     OPTCUR$ = "1"
  49.     DEST$ = "C:\SOUNDEXP"
  50.  
  51. '$IFDEF DEBUG
  52.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  53.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  54.     IF IsDriveValid(WinDrive$) = 0 THEN
  55.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  56.         GOTO QUIT
  57.     END IF
  58. '$ENDIF ''DEBUG
  59.  
  60.  
  61. WELCOME:
  62.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  63.     IF sz$ = "CONTINUE" THEN
  64.         UIPop 1
  65.     ELSE
  66.         GOSUB ASKQUIT
  67.         GOTO WELCOME
  68.     END IF
  69.  
  70.  
  71. 'OPTION:
  72. '    SetSymbolValue "RadioDefault", OPTCUR$
  73. 'OPTL1:
  74. '    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  75. '    OPTCUR$ = GetSymbolValue("ButtonChecked")
  76.  
  77. '    IF sz$ = "CONTINUE" THEN
  78. '        UIPop(1)
  79. '    ELSEIF sz$ = "REACTIVATE" THEN
  80. '        GOTO OPTL1
  81. '    ELSE
  82. '        GOSUB ASKQUIT
  83. '        GOTO OPTION
  84. '    END IF
  85.  
  86.  
  87. GETPATH:
  88.     SetSymbolValue "EditTextIn", DEST$
  89.     SetSymbolValue "EditFocus", "END"
  90. GETPATHL1:
  91.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  92.     DEST$ = GetSymbolValue("EditTextOut")
  93.  
  94.     IF sz$ = "CONTINUE" THEN
  95.         checkdltr$ = mid$(DEST$, 1, 1)
  96.         IF checkdltr$ <> "" THEN
  97.             checkexist% = IsDriveValid(checkdltr$)
  98.             IF checkexist% = 0 THEN
  99.                 GOSUB BADPATH
  100.                 GOTO GETPATHL1
  101.             END IF
  102.         END IF
  103.  
  104.         IF IsDirWritable(DEST$) = 0 THEN
  105.             GOSUB BADPATH
  106.             GOTO GETPATHL1
  107.         END IF
  108.  
  109.         IF DoesDirExist(DEST$) THEN
  110.             UIPop 1
  111.             sz$ = UIStartDlg(CUIDLL$, ALREADYEXISTS, "FInfoDlgProc", 0, "")
  112.             IF sz$ = "CONTINUE" THEN
  113.  
  114.             ELSEIF sz$ = "REACTIVATE" THEN
  115.                 GOTO GETPATHL1
  116.  
  117.             ELSEIF sz$ = "BACK" THEN
  118.                 UIPop 1
  119.                 GOTO GETPATHL1
  120.  
  121.             ELSE
  122.                 GOSUB ASKQUIT
  123.                 GOTO GETPATH
  124.             END IF
  125.         END IF
  126.  
  127.         checkdspc& = GetFreeSpaceForDrive(checkdltr$)
  128.               if checkdspc& < 12500000 then
  129.                 sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfoDlgProc", 0, "")
  130.                 ERROR STFQUIT
  131.                 GOTO QUIT
  132.               end if
  133.  
  134.  
  135.         UIPop 1
  136.     ELSEIF sz$ = "REACTIVATE" THEN
  137.         GOTO GETPATHL1
  138.     ELSEIF sz$ = "BACK" THEN
  139.         UIPop 1
  140.         'GOTO OPTION
  141.         GOTO WELCOME
  142.     ELSE
  143.         GOSUB ASKQUIT
  144.         GOTO GETPATH
  145.     END IF
  146.  
  147.  
  148.     Install
  149.  
  150.  
  151. QUIT:
  152.     ON ERROR GOTO ERRQUIT
  153.  
  154.     IF ERR = 0 THEN
  155.         dlg% = EXITSUCCESS
  156.     ELSEIF ERR = STFQUIT THEN
  157.         dlg% = EXITQUIT
  158.     ELSE
  159.         dlg% = EXITFAILURE
  160.     END IF
  161. QUITL1:
  162.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  163.     IF sz$ = "REACTIVATE" THEN
  164.         GOTO QUITL1
  165.     END IF
  166.     UIPop 1
  167.  
  168.     END
  169.  
  170. ERRQUIT:
  171.     i% = DoMsgBox("Setup sources were corrupted, please call Midisoft Technical Support", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  172.     END
  173.  
  174.  
  175.  
  176. BADPATH:
  177.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  178.     IF sz$ = "REACTIVATE" THEN
  179.         GOTO BADPATH
  180.     END IF
  181.     UIPop 1
  182.     RETURN
  183.  
  184.  
  185.  
  186. ASKQUIT:
  187.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  188.  
  189.     IF sz$ = "EXIT" THEN
  190.         UIPop 5
  191.         ERROR STFQUIT
  192.     ELSEIF sz$ = "REACTIVATE" THEN
  193.         GOTO ASKQUIT
  194.     ELSE
  195.         UIPop 1
  196.     END IF
  197.     RETURN
  198.  
  199.  
  200.  
  201. '**
  202. '** Purpose:
  203. '**     Builds the copy list and performs all installation operations.
  204. '** Arguments:
  205. '**     none.
  206. '** Returns:
  207. '**     none.
  208. '*************************************************************************
  209. SUB Install STATIC
  210.  
  211.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  212.     CreateDir DEST$, cmoNone
  213.     CreateDir MakePath(DEST$, "SONGBOOK"), cmoNone
  214.     CreateDir MakePath(DEST$, "MENTOR"), cmoNone
  215.     CreateDir MakePath(DEST$, "MIDIBASE"), cmoNone
  216.     CreateDir MakePath(DEST$, "MUSMAGIC"), cmoNone
  217.     CreateDir MakePath(DEST$, "STUDIO"), cmoNone
  218.     CreateDir MakePath(DEST$, "SESSION"), cmoNone
  219.     CreateDir MakePath(DEST$, "WOMSMPLR"), cmoNone
  220.  
  221.     ''Associate .exp with TBOOK.exe in WIN.ini
  222.     CreateIniKeyValue "Win.ini", "Extensions", "exp", MakePath(DEST$,"TBOOK.EXE"), cmoOverwrite
  223.  
  224.     ''Put destination directory in midisoft.ini so that Sound Impression can find it
  225.     ini$ = MakePath(GetWindowsDir, "MIDISOFT.INI")
  226.     CreateIniKeyValue ini$, "SetupInfo", "EXP_SetupPath", DEST$, cmoOverwrite
  227.  
  228.  
  229.     'SrcDir + SubDir    DEST$ + SubDir
  230.  
  231.     AddSectionFilesToCopyList "Songbook", SrcDir$ + "SONGBOOK", DEST$ + "\SONGBOOK"
  232.     AddSectionFilesToCopyList "Mentor", SrcDir$ + "MENTOR", DEST$ + "\MENTOR"
  233.     AddSectionFilesToCopyList "Midibase", SrcDir$ + "MIDIBASE", DEST$ + "\MIDIBASE"
  234.     AddSectionFilesToCopyList "Musmagic", SrcDir$ + "MUSMAGIC", DEST$ + "\MUSMAGIC"
  235.     AddSectionFilesToCopyList "Studio", SrcDir$ + "STUDIO", DEST$ + "\STUDIO"
  236.     AddSectionFilesToCopyList "Session", SrcDir$ + "SESSION", DEST$ + "\SESSION"
  237.     AddSectionFilesToCopyList "Womsmplr", SrcDir$ + "WOMSMPLR", DEST$ + "\WOMSMPLR"
  238.     AddSectionFilesToCopyList "Runtime", SrcDir$, DEST$
  239.     'DumpCopyList "C:\soundedv\copy.txt"
  240.     CopyFilesInCopyList
  241.  
  242.     ICONPATH$ = MakePath(DEST$,"SOUNDEXP.ICO")
  243.  
  244.     CreateProgmanGroup "Midisoft Sound Explorer", "", cmoNone
  245.     ShowProgmanGroup  "Midisoft Sound Explorer", 1, cmoNone
  246.     'CreateProgmanItem "MusicMagic Songbook", "MusicMagic Songbook", MakePath(DEST$,"TBOOK.EXE")+" "+MakePath(DEST$,"SONGBOOK.MAG"), "SONGBOOK.ICO", cmoOverwrite
  247.     CreateProgmanItem "Midisoft Sound Explorer", "Midisoft Sound Explorer", MakePath(DEST$,"TBOOK.EXE")+" "+MakePath(DEST$,"SOUNDEXP.EXP"), ICONPATH$, cmoOverwrite
  248.     'CreateProgmanItem "MusicMagic", "Music Magic", MakePath(DEST$,"TBOOK.EXE")+" "+MakePath(DEST$,"SONGBOOK.MAG"), "ICONPATH$, 0, 0, 0, ", cmoOverwrite
  249.     'CreateProgmanItem "MusicMagic", "Music Magic", "TBOOK.EXE "+MakePath(DEST$,"SONGBOOK.MAG"), "MakePath(DEST$,"SONGBOOK.ICO"), 0, 0, 0, DEST$", cmoOverwrite
  250.  
  251. END SUB
  252.  
  253.  
  254.  
  255. '**
  256. '** Purpose:
  257. '**     Appends a file name to the end of a directory path,
  258. '**     inserting a backslash character as needed.
  259. '** Arguments:
  260. '**     szDir$  - full directory path (with optional ending "\")
  261. '**     szFile$ - filename to append to directory
  262. '** Returns:
  263. '**     Resulting fully qualified path name.
  264. '*************************************************************************
  265. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  266.     IF szDir$ = "" THEN
  267.         MakePath = szFile$
  268.     ELSEIF szFile$ = "" THEN
  269.         MakePath = szDir$
  270.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  271.         MakePath = szDir$ + szFile$
  272.     ELSE
  273.         MakePath = szDir$ + "\" + szFile$
  274.     END IF
  275. END FUNCTION
  276.  
  277.