home *** CD-ROM | disk | FTP | other *** search
/ Midisoft Multimedia Screensavers / MidisoftScreensavers.iso / setup.mst < prev    next >
Text File  |  1994-08-17  |  11KB  |  427 lines

  1. '**************************************************************************
  2. '*                       Midisoft Sequencer Setup
  3. '*
  4. '*             DEFINE STUDIO, SESSION, MUSICMAGIC, AUDIOWORKS, WOMSMPLR, POPBLOCKS
  5. '*
  6. '* This is a hack install to install Midisoft Screen Savers
  7. '*
  8. '*
  9. '*
  10. '*
  11. '*
  12. '*
  13. '*
  14. '*
  15. '**************************************************************************
  16.  
  17. '$INCLUDE 'setupapi.inc'
  18. '$INCLUDE 'msdetect.inc'
  19.  
  20. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  21. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  22. DECLARE FUNCTION GetWindowLong LIB "user.exe" (hWnd%, offset%) AS LONG
  23.  
  24.  
  25.  
  26. ''Dialog ID's
  27. CONST WELCOME        = 100
  28. CONST WELCOMEX       = 150
  29. CONST ASKQUIT        = 200
  30. CONST ASKQUITX       = 250
  31. CONST DESTPATH1      = 300
  32. CONST DESTPATH1X     = 350
  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 OPTIONS        = 800
  40. CONST OPTIONSX       = 850
  41. CONST APPHELP        = 900
  42. CONST APPHELPX       = 950
  43. CONST ALREADYEXISTS  = 1000
  44. CONST ALREADYEXISTSX = 1050
  45. CONST CUSTINST       = 6451   'WAS 6200
  46. CONST TOOBIG         = 6300
  47. CONST TOOBIGX        = 6350
  48. CONST BADPATH        = 6400
  49. CONST BADPATHX       = 6450
  50.  
  51. ''Bitmap ID
  52. CONST LOGO1 = 1
  53. CONST LOGO2 = 2
  54.  
  55. CONST WS_VISIBLE = &H10000000
  56. CONST WS_CLIPCHILDREN = &H2000000
  57. CONST WS_BORDER = &H800000
  58. CONST SW_SHOWMAXIMIZED = 3
  59. CONST GWL_STYLE =-16
  60.  
  61.  
  62. Global ac$
  63. Global ap$
  64. Global az$
  65.  
  66. GLOBAL DEST$        ''Default destination directory.
  67. GLOBAL OPTCUR$      ''Option selection from option dialog.
  68. GLOBAL SCRWID%
  69. GLOBAL WINDRIVE$     'duh
  70. GLOBAL WINDIR$
  71. GLOBAL COMPOSERS%
  72. GLOBAL PHONEBALONE%    'I'm hoping to set a global flag to true or false
  73. GLOBAL ZAPPER%          'depending on the item selected
  74.  
  75. GLOBAL HDSPACE&
  76.  
  77. DECLARE SUB Install
  78.  
  79.  
  80.  
  81. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  82.  
  83.  
  84. INIT:
  85.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  86.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  87.     WINDIR$  =  GetWindowsDir()
  88.  
  89.     mainWnd%=HwndFrame()
  90.     curLong& = GetWindowLong (mainWnd%, GWL_STYLE)                        'Creates window with
  91.     curLong& = curLong& OR (WS_BORDER OR WS_CLIPCHILDREN OR WS_CAPTION)   'title bar (Note: using
  92.     w&=SetWindowLong (mainWnd%, GWL_STYLE, curLong&)                      'HT video drivers icon
  93.                                                                           'on one screen is corrupt)
  94.  
  95.     'w&=SetWindowLong(mainWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  96.     j%=ShowWindow(mainWnd%,SW_SHOWMAXIMIZED)
  97.  
  98.     SCRWID% = GetScreenWidth()
  99.         IF SCRWID% = 640 THEN
  100.             SetBitmap CUIDLL$, LOGO1
  101.         ELSE
  102.             SetBitmap CUIDLL$, LOGO2
  103.         END IF
  104.  
  105.  
  106.     SetTitle "Midisoft MultiMedia Screen Saver Setup"
  107.  
  108.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  109.     IF szInf$ = "" THEN
  110.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  111.     END IF
  112.     ReadInfFile szInf$
  113.  
  114.     OPTCUR$ = "1"
  115.     DEST$ = WINDRIVE$ + "c:\ssmedia"   'WINDRIVE$ WASN'T WORKING...FIX LATER
  116.  
  117.  
  118.  
  119.  
  120. WELCOME:
  121.     IF scrwid% = 640 THEN
  122.         sz$ = UIStartDlg(CUIDLL$, WELCOMEX, "FInfoDlgProc", APPHELP, HELPPROC$)
  123.     ELSE
  124.         sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  125.     END IF
  126.  
  127.     IF sz$ = "CONTINUE" THEN
  128.         UIPop 1
  129.     ELSE
  130.         GOSUB ASKQUIT
  131.         GOTO WELCOME
  132.     END IF
  133.  
  134. CUSTINST:
  135.  
  136.  
  137.      sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
  138.  
  139.  
  140.         CHECKSTATES$ = "CheckItemsState"
  141.  
  142.         FOR i% = 1 TO 3 STEP 1
  143.         AddListItem CHECKSTATES$, "ON"
  144.         NEXT i%
  145.  
  146.     'For i% = 1 to 3
  147.         ac$ = GetListItem (CHECKSTATES$, 1) '<> '"" then
  148.         ap$ = GetListItem (CHECKSTATES$, 2)  ' If checke, the string is set to on
  149.         az$ = GetListItem (CHECKSTATES$, 3)
  150.  
  151.  
  152.      IF sz$ = "CONTINUE" Then
  153.         UIPop 1
  154.         GOTO GETPATH
  155.      ELSEIF sz$ = "EXIT" THEN
  156.      GOTO ASKQUIT
  157.  
  158.  
  159.  
  160.  
  161.      ELSE
  162.      GOTO CUSTINST
  163.      'GOTO GETPATH
  164.      'GOSUB ASKQUIT
  165.  
  166.      END IF
  167.  
  168.  
  169.  
  170. GETPATH:
  171.     SetSymbolValue "EditTextIn", DEST$     'az$ + ap$
  172.     SetSymbolValue "EditFocus", "END"
  173. GETPATHL1:
  174.     IF scrwid% = 640 THEN
  175.         sz$ = UIStartDlg(CUIDLL$, DESTPATH1X, "FEditDlgProc", APPHELP, HELPPROC$)
  176.     ELSE
  177.         sz$ = UIStartDlg(CUIDLL$, DESTPATH1, "FEditDlgProc", APPHELP, HELPPROC$)
  178.     END IF
  179.  
  180.     DEST$ = GetSymbolValue("EditTextOut")
  181.  
  182.     IF sz$ = "CONTINUE" THEN
  183.         IF IsDirWritable(DEST$) = 0 THEN
  184.             GOSUB BADPATH
  185.             GOTO GETPATHL1
  186.         END IF
  187.         UIPop 1
  188.     ELSEIF sz$ = "REACTIVATE" THEN
  189.         GOTO GETPATHL1
  190.     ELSEIF sz$ = "BACK" THEN
  191.         UIPop 1
  192.         GOTO WELCOME
  193.     ELSE
  194.         GOSUB ASKQUIT
  195.         GOTO GETPATH
  196.     END IF
  197.  
  198.     'Give warning if directory exists, give option to go back and change dest directory
  199. '$IFNDEF POPBLOCKS
  200.     IF DoesDirExist(DEST$) THEN
  201.         UIPop 1
  202.  
  203.         IF SCRWID% = 640 THEN
  204.             sz$ = UIStartDlg(CUIDLL$, ALREADYEXISTSX, "FInfoDlgProc", 0, "")
  205.         ELSE
  206.             sz$ = UIStartDlg(CUIDLL$, ALREADYEXISTS, "FInfoDlgProc", 0, "")
  207.         END IF 'Screen resolution
  208.  
  209.         IF sz$ = "CONTINUE" THEN
  210.             UIPop 1
  211.  
  212.         ELSEIF sz$ = "REACTIVATE" THEN
  213.             UIPop 1
  214.             GOTO GETPATHL1
  215.  
  216.         ELSEIF sz$ = "BACK" THEN
  217.             UIPop 1
  218.             GOTO GETPATHL1
  219.  
  220.         ELSE
  221.             UIPop 1
  222.             GOSUB ASKQUIT
  223.             GOTO GETPATH
  224.         END IF
  225.     END IF
  226.  
  227. '$ENDIF
  228.  
  229.     'Check if HD has enough space for install
  230.     HDSPACE = 0
  231.     IF ac$ = "ON" Then
  232.         HDSPACE = HDSPACE + 6000000
  233.     ElseIf ap$ = "ON" Then
  234.         HDSPACE = HDSPACE + 4000000
  235.     ElseIf az$ = "ON" Then
  236.         HDSPACE = HDSPACE + 5000000
  237.     End If
  238.  
  239.  
  240.  
  241.  
  242.  
  243.     checkdltr$ = mid$(DEST$, 1, 1)
  244.     checkdspc& = GetFreeSpaceForDrive(checkdltr$)
  245.     if checkdspc& < HDSPACE then
  246.         IF scrwid% = 640 THEN
  247.             sz$ = UIStartDlg(CUIDLL$, TOOBIGX, "FInfoDlgProc", APPHELP, HELPPROC$)
  248.         ELSE
  249.             sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfoDlgProc", APPHELP, HELPPROC$)
  250.         END IF
  251.  
  252.         ERROR STFQUIT
  253.         GOTO QUIT
  254.     end if
  255.  
  256.  
  257.  
  258.     Install
  259.  
  260.  
  261. QUIT:
  262.     'ON ERROR GOTO ERRQUIT
  263.  
  264.     IF ERR = 0 THEN
  265.         IF SCRWID% = 640 THEN
  266.             dlg% = EXITSUCCESSX
  267.         ELSE
  268.             dlg% = EXITSUCCESS
  269.         END IF
  270.  
  271.     ELSEIF ERR = STFQUIT THEN
  272.         IF SCRWID% = 640 THEN
  273.             dlg% = EXITQUITX
  274.         ELSE
  275.             dlg% = EXITQUIT
  276.         END IF
  277.     ELSE
  278.         IF SCRWID% = 640 THEN
  279.             dlg% = EXITFAILUREX
  280.         ELSE
  281.             dlg% = EXITFAILURE
  282.         END IF
  283.  
  284.     END IF
  285. QUITL1:
  286.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  287.     IF sz$ = "REACTIVATE" THEN
  288.         GOTO QUITL1
  289.     END IF
  290.     UIPop 1
  291.  
  292.     END
  293.  
  294. ERRQUIT:
  295.     i% = DoMsgBox("Setup sources were corrupted, please call Midisoft Technical Support", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  296.     END
  297.  
  298.  
  299.  
  300. BADPATH:
  301.     IF scrwid% = 640 THEN
  302.         sz$ = UIStartDlg(CUIDLL$, BADPATHX, "FInfoDlgProc", APPHELP, HELPPROC$)
  303.     ELSE
  304.         sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfoDlgProc", APPHELP, HELPPROC$)
  305.     END IF
  306.  
  307.     IF sz$ = "REACTIVATE" THEN
  308.         GOTO BADPATH
  309.     END IF
  310.     UIPop 1
  311.     RETURN
  312.  
  313.  
  314.  
  315. ASKQUIT:
  316.     IF scrwid% = 640 THEN
  317.         sz$ = UIStartDlg(CUIDLL$, ASKQUITX, "FQuitDlgProc", APPHELP, HELPPROC$)
  318.     ELSE
  319.         sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", APPHELP, HELPPROC$)
  320.     END IF
  321.  
  322.     IF sz$ = "EXIT" THEN
  323.         UIPop 5            'UIPopAll does not work
  324.         ERROR STFQUIT
  325.     ELSEIF sz$ = "REACTIVATE" THEN
  326.         GOTO ASKQUIT
  327.     ELSE
  328.         UIPop 1
  329.     END IF
  330.     RETURN
  331.  
  332.  
  333.  
  334. '**
  335. '** Purpose:
  336. '**     Builds the copy list and performs all installation operations.
  337. '** Arguments:
  338. '**     none.
  339. '** Returns:
  340. '**     none.
  341. '**********