home *** CD-ROM | disk | FTP | other *** search
/ The Best of Windows 95.com 1996 September / WIN95_09964.iso / sound / abcd30.zip / SETUP.MST < prev    next >
Text File  |  1995-03-05  |  7KB  |  250 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. DECLARE FUNCTION MaxWindow           LIB "mscuistf.dll" ( hWnd% )     AS INTEGER
  11.  
  12. ''Dialog ID's
  13. CONST WELCOME       = 100
  14. CONST ASKQUIT       = 200
  15. CONST DESTPATH      = 300
  16. CONST EXITFAILURE   = 400
  17. CONST EXITQUIT      = 600
  18. CONST EXITSUCCESS   = 700
  19. CONST OPTIONS       = 800
  20. CONST APPHELP       = 900
  21. CONST BADPATH       = 6400
  22.  
  23. ''Bitmap ID
  24. CONST LOGO = 2
  25.  
  26. GLOBAL DEST$        ''Default destination directory.
  27. GLOBAL OPTCUR$      ''Option selection from option dialog.
  28.  
  29. DECLARE SUB Install
  30. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  31.  
  32.  
  33. INIT:
  34.     n% = MaxWindow( HwndFrame )
  35.  
  36.     TITLE$ = "A-B-CD Setup"
  37.     DEST$ = "C:\A-B-CD"
  38.     OPTCUR$ = "3"
  39.  
  40.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  41.  
  42.     SetBitmap CUIDLL$, LOGO
  43.     SetTitle TITLE$
  44.  
  45.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  46.     IF szInf$ = "" THEN
  47.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  48.     END IF
  49.     ReadInfFile szInf$
  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", 0, "")
  63.     IF sz$ = "CONTINUE" THEN
  64.         UIPop 1
  65.     ELSEIF sz$ = "REACTIVATE" THEN
  66.         GOTO WELCOME
  67.     ELSE
  68.         END
  69.     END IF
  70.  
  71.  
  72. OPTION:
  73.     SetSymbolValue "RadioDefault", OPTCUR$
  74. OPTL1:
  75.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", 0, "")
  76.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  77.  
  78.     IF sz$ = "CONTINUE" THEN
  79.         UIPop 1
  80.     ELSEIF sz$ = "REACTIVATE" THEN
  81.         GOTO OPTL1
  82.     ELSE
  83.         UIPop 1
  84.         GOTO WELCOME
  85.     END IF
  86.  
  87.  
  88. GETPATH:
  89.     SetSymbolValue "EditTextIn", DEST$
  90.     SetSymbolValue "EditFocus", "END"
  91. GETPATHL1:
  92.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0, "")
  93.     DEST$ = GetSymbolValue("EditTextOut")
  94.  
  95.     IF sz$ = "CONTINUE" THEN
  96.         IF IsDirWritable(DEST$) = 0 THEN
  97.             GOSUB BADPATH
  98.             GOTO GETPATHL1
  99.         END IF
  100.         UIPop 1
  101.     ELSEIF sz$ = "REACTIVATE" THEN
  102.         GOTO GETPATHL1
  103.     ELSE
  104.         UIPop 1
  105.         GOTO WELCOME
  106.     END IF
  107.  
  108.  
  109.     Install
  110.  
  111.  
  112. QUIT:
  113.     ON ERROR GOTO ERRQUIT
  114.  
  115.     IF ERR = 0 THEN
  116.         dlg% = EXITSUCCESS
  117. ''    ELSEIF ERR = STFQUIT THEN
  118. ''        dlg% = EXITQUIT
  119.     ELSE
  120.         dlg% = EXITFAILURE
  121.     END IF
  122. QUITL1:
  123.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  124.     IF sz$ = "REACTIVATE" THEN
  125.         GOTO QUITL1
  126.     END IF
  127.     UIPop 1
  128.  
  129.     END
  130.  
  131. ERRQUIT:
  132.     i% = DoMsgBox("A fatal error occured -- maybe setup is corrupt?", "Fatal Error", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  133.     END
  134.  
  135.  
  136.  
  137. BADPATH:
  138.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  139.     IF sz$ = "REACTIVATE" THEN
  140.         GOTO BADPATH
  141.     END IF
  142.     UIPop 1
  143.     RETURN
  144.  
  145.  
  146.  
  147. ASKQUIT:
  148.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  149.  
  150.     IF sz$ = "EXIT" THEN
  151.         UIPopAll
  152.         ERROR STFQUIT
  153.     ELSEIF sz$ = "REACTIVATE" THEN
  154.         GOTO ASKQUIT
  155.     ELSE
  156.         UIPop 1
  157.     END IF
  158.     RETURN
  159.  
  160.  
  161.  
  162. '**
  163. '** Purpose:
  164. '**     Builds the copy list and performs all installation operations.
  165. '** Arguments:
  166. '**     none.
  167. '** Returns:
  168. '**     none.
  169. '*************************************************************************
  170. SUB Install STATIC
  171.  
  172.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  173.     CreateDir DEST$, cmoNone
  174.  
  175.     WINDIR$ = GetWindowsDir()
  176.     SYSDIR$ = GetWindowsSysDir()
  177.  
  178.     AddSectionFilesToCopyList "Common Files", SrcDir$, DEST$
  179. ''    AddSectionFilesToCopyList "Windows", SrcDir$, WINDIR$
  180.  
  181.     IF OPTCUR$ = "3" THEN
  182.       AddSectionFilesToCopyList "Option Files", SrcDir$, DEST$
  183.       AddSectionFilesToCopyList "System", SrcDir$, SYSDIR$
  184.     ELSE
  185.       AddSectionKeyFileToCopyList "Option Files", OPTCUR$, SrcDir$, DEST$
  186.       AddSectionKeyFileToCopyList "System", OPTCUR$, SrcDir$, SYSDIR$
  187.     ENDIF
  188.  
  189.     CopyFilesInCopyList
  190.  
  191.     SysIni$ = MakePath(WINDIR$, "SYSTEM.INI")
  192. ''  CreateIniKeyValue ini$, "mciseq.drv", "disablewarning", "true", cmoNone
  193.  
  194. ''  IF DoesIniKeyExist("WIN.INI", "mci extensions", "wav") = 0 THEN
  195. ''    CreateIniKeyValue "WIN.INI", "mci extensions", "wav", "waveaudio", cmoNone
  196. ''  ENDIF
  197. ''  IF DoesIniKeyExist("WIN.INI", "mci extensions", "mid") = 0 THEN
  198. ''    CreateIniKeyValue "WIN.INI", "mci extensions", "mid", "sequencer", cmoNone
  199. ''  ENDIF
  200. ''  IF DoesIniKeyExist("WIN.INI", "mci extensions", "mid") = 0 THEN
  201. ''    CreateIniKeyValue "WIN.INI", "mci extensions", "mid", "sequencer", cmoNone
  202. ''  ENDIF
  203. ''  IF DoesIniKeyExist("WIN.INI", "mci extensions", "avi") = 0 THEN
  204. ''    CreateIniKeyValue "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoNone
  205. ''  ENDIF
  206.  
  207.     CreateProgmanGroup "MMS Multimedia", "", cmoNone
  208.     ShowProgmanGroup  "MMS Multimedia", 1, cmoNone
  209.  
  210.     IF OPTCUR$ = "3" THEN
  211.       CreateProgmanItem "MMS Multimedia", "A-B-CD - 16bit", MakePath(DEST$,"A-B-CD16.exe"), "", cmoOverwrite
  212.       CreateProgmanItem "MMS Multimedia", "A-B-CD - 32bit", MakePath(DEST$,"A-B-CD32.exe"), "", cmoOverwrite
  213. ''      CreateProgmanItem "MMS Multimedia", "A-B-CD - 32bit", MakePath(DEST$,"A-B-CD32.exe"), "abcd32.ico", cmoOverwrite
  214.     ELSEIF OPTCUR$ = "1" THEN
  215.       CreateProgmanItem "MMS Multimedia", "A-B-CD - 16bit", MakePath(DEST$,"A-B-CD16.exe"), "", cmoOverwrite
  216.     ELSEIF OPTCUR$ = "2" THEN
  217.       CreateProgmanItem "MMS Multimedia", "A-B-CD - 32bit", MakePath(DEST$,"A-B-CD32.exe"), "", cmoOverwrite
  218. ''      CreateProgmanItem "MMS Multimedia", "A-B-CD - 32bit", MakePath(DEST$,"A-B-CD32.exe"), "abcd32.ico", cmoOverwrite
  219.     ENDIF
  220.  
  221.     CreateProgmanItem "MMS Multimedia", "A-B-CD Help", MakePath(DEST$,"A-B-CD.hlp"), "", cmoOverwrite
  222.     CreateProgmanItem "MMS Multimedia", "A-B-CD Survey", MakePath(DEST$,"survey.txt"), "", cmoOverwrite
  223.  
  224. END SUB
  225.  
  226.  
  227.  
  228. '**
  229. '** Purpose:
  230. '**     Appends a file name to the end of a directory path,
  231. '**     inserting a backslash character as needed.
  232. '** Arguments:
  233. '**     szDir$  - full directory path (with optional ending "\")
  234. '**     szFile$ - filename to append to directory
  235. '** Returns:
  236. '**     Resulting fully qualified path name.
  237. '*************************************************************************
  238. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  239.     IF szDir$ = "" THEN
  240.         MakePath = szFile$
  241.     ELSEIF szFile$ = "" THEN
  242.         MakePath = szDir$
  243.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  244.         MakePath = szDir$ + szFile$
  245.     ELSE
  246.         MakePath = szDir$ + "\" + szFile$
  247.     END IF
  248. END FUNCTION
  249.  
  250.