home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer 8 / 1995-07_Disc_8.iso / hodjpodj / hodjpodj.mst < prev    next >
Text File  |  1995-02-10  |  8KB  |  282 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. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST INFO          = 4000
  20. CONST INFO2         = 4100
  21. CONST INFO3         = 4200
  22. CONST INFO4         = 4300
  23. CONST TOOBIG        = 6300
  24. CONST BADPATH       = 6400
  25.  
  26. ''Bitmap ID
  27. CONST LOGO = 1
  28.  
  29. GLOBAL DEST$        ''Default destination directory.
  30. GLOBAL OPTCUR$      ''Option selection from option dialog.
  31.  
  32. DECLARE SUB Install
  33. DECLARE SUB InstallTooBig
  34. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  35.  
  36.  
  37. INIT:
  38.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  39.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  40.  
  41.     SetBitmap CUIDLL$, LOGO
  42.     SetTitle "Installation Procedure"
  43.  
  44.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  45.     IF szInf$ = "" THEN
  46.         szInf$ = GetSymbolValue("STF_CWDDIR") + "HODJPODJ.INF"
  47.     END IF
  48.     ReadInfFile szInf$
  49.  
  50.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  51.  
  52. '$IFDEF DEBUG
  53.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  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. '    OPTCUR$ = "1"
  61.     DEST$ = WinDrive$ + ":\HODJDEMO"
  62.  
  63.  
  64.     IF (GetDOSMajorVersion() < 5) THEN 
  65.         i% = DoMsgBox("Please note that DOS 5.0 or later is required.", "DOS Version Incompatibility", MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  66.     END IF
  67.  
  68.     IF ((GetWindowsMajorVersion() <  3) OR ((GetWindowsMajorVersion() = 3) AND (GetWindowsMinorVersion() < 1))) THEN
  69.         i% = DoMsgBox("Please note that Windows 3.1 or later is required.", "Windows Version Incompatibility", MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  70.     END IF
  71.  
  72.     IF ((GetScreenHeight() < 480) OR (GetScreenWidth() < 640)) THEN
  73.         i% = DoMsgBox("Please note that a minimum screen resolution of 640 x 480 is required.", "Screen Resolution Incompatibility", MB_OK+MB_TASKMODAL+MB_ICONINFORMATION)
  74.     END IF
  75.  
  76.  
  77. WELCOME:
  78.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  79.     IF sz$ = "CONTINUE" THEN
  80.         UIPop 1
  81.     ELSE
  82.         GOSUB ASKQUIT
  83.         GOTO WELCOME
  84.     END IF
  85.  
  86.  
  87.  
  88. INFO:
  89.         sz$ = UIStartDlg(CUIDLL$, INFO, "FInfoDlgProc", APPHELP, HELPPROC$)
  90.         IF sz$ = "CONTINUE" THEN
  91.                 UIPop 1
  92.         ELSEIF sz$ = "BACK" THEN
  93.                 UIPop 1
  94.                 GOTO WELCOME
  95.         ELSE
  96.                 GOSUB ASKQUIT
  97.                 GOTO INFO
  98.         END IF
  99.  
  100.  
  101. OPTION:
  102. '    SetSymbolValue "RadioDefault", OPTCUR$
  103. '
  104. OPTL1:
  105. '    sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  106. '    OPTCUR$ = GetSymbolValue("ButtonChecked")
  107. '
  108. '    IF sz$ = "CONTINUE" THEN
  109. '        UIPop(1)
  110. '    ELSEIF sz$ = "BACK" THEN
  111. '            UIPop 1
  112. '            GOTO INFO
  113. '    ELSEIF sz$ = "REACTIVATE" THEN
  114. '        GOTO OPTL1
  115. '    ELSE
  116. '        GOSUB ASKQUIT
  117. '        GOTO OPTION
  118. '    END IF
  119.  
  120.  
  121. GETPATH:
  122.     SetSymbolValue "EditTextIn", DEST$
  123.     SetSymbolValue "EditFocus", "END"
  124. GETPATHL1:
  125.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  126.     DEST$ = GetSymbolValue("EditTextOut")
  127.  
  128.     IF sz$ = "CONTINUE" THEN
  129.         IF IsDirWritable(DEST$) = 0 THEN
  130.             GOSUB BADPATH
  131.             GOTO GETPATHL1
  132.         END IF
  133.         UIPop 1
  134.     ELSEIF sz$ = "BACK" THEN
  135.             UIPop 1
  136.             GOTO INFO
  137.     ELSEIF sz$ = "REACTIVATE" THEN
  138.         GOTO GETPATHL1
  139.     ELSEIF sz$ = "BACK" THEN
  140.         UIPop 1
  141.         GOTO INFO
  142.     ELSE
  143.         GOSUB ASKQUIT
  144.         GOTO GETPATH
  145.     END IF
  146.  
  147.  
  148.     drive$ = MID$(DEST$, 1, 1)
  149.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  150.     free& = GetFreeSpaceForDrive(drive$)
  151.  
  152.     IF (free& < 23000000) THEN
  153.         InstallTooBig
  154.     ELSE
  155.         Install
  156.     END IF
  157.  
  158.  
  159. QUIT:
  160.     ON ERROR GOTO ERRQUIT
  161.  
  162.     IF ERR = 0 THEN
  163.         dlg% = EXITSUCCESS
  164.     ELSEIF ERR = STFQUIT THEN
  165.         dlg% = EXITQUIT
  166.     ELSE
  167.         dlg% = EXITFAILURE
  168.     END IF
  169. QUITL1:
  170.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  171.     IF sz$ = "REACTIVATE" THEN
  172.         GOTO QUITL1
  173.     END IF
  174.     UIPop 1
  175.  
  176.     END
  177.  
  178. ERRQUIT:
  179.     i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  180.     END
  181.  
  182.  
  183.  
  184. BADPATH:
  185.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  186.     IF sz$ = "REACTIVATE" THEN
  187.         GOTO BADPATH
  188.     END IF
  189.     UIPop 1
  190.     RETURN
  191.  
  192.  
  193.  
  194. ASKQUIT:
  195.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  196.  
  197.     IF sz$ = "EXIT" THEN
  198.         UIPopAll
  199.         ERROR STFQUIT
  200.     ELSEIF sz$ = "REACTIVATE" THEN
  201.         GOTO ASKQUIT
  202.     ELSE
  203.         UIPop 1
  204.     END IF
  205.     RETURN
  206.  
  207.  
  208. TOOBIG:
  209.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  210.     IF sz$ = "REACTIVATE" THEN
  211.         GOTO TOOBIG
  212.     END IF
  213.     UIPop 1
  214.     RETURN
  215.  
  216.  
  217.  
  218. '**
  219. '** Purpose:
  220. '**     Builds the copy list and performs all installation operations.
  221. '** Arguments:
  222. '**     none.
  223. '** Returns:
  224. '**     none.
  225. '*************************************************************************
  226. SUB Install STATIC
  227.  
  228.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  229.     
  230.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  231.  
  232.     AddSectionFilesToCopyList "Meta Sound", SrcDir$, DEST$
  233.     AddSectionFilesToCopyList "Meta Art", SrcDir$, DEST$
  234.  
  235.     CreateDir DEST$, cmoNone
  236.     CopyFilesInCopyList
  237.  
  238.     CreateProgmanGroup "Games", "", cmoNone
  239.     ShowProgmanGroup  "Games", 1, cmoNone
  240.     CreateProgmanItem "Games", "Hodj 'n' Podj", MakePath(DEST$,"hnpdemo.exe"), "", cmoOverwrite
  241.     CreateProgmanItem "Games", "HnP Read Me", MakePath(DEST$,"readme.txt"), "", cmoOverwrite
  242.     CreateProgmanItem "Games", "Video for Windows Setup", MakePath(SrcDir$,"vfwdk\setup.exe"), "", cmoOverwrite
  243.  
  244. END SUB
  245.  
  246. SUB InstallTooBig STATIC
  247.  
  248.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  249.     
  250.     CreateProgmanGroup "Games", "", cmoNone
  251.     ShowProgmanGroup  "Games", 1, cmoNone
  252.     CreateProgmanItem "Games", "Hodj 'n' Podj", MakePath(SrcDir$,"hnpdemo.exe"), "", cmoOverwrite
  253.     CreateProgmanItem "Games", "HnP Read Me", MakePath(SrcDir$,"readme.txt"), "", cmoOverwrite
  254.     CreateProgmanItem "Games", "Video for Windows Setup", MakePath(SrcDir$,"vfwdk\setup.exe"), "", cmoOverwrite
  255.  
  256. END SUB
  257.  
  258.  
  259.  
  260. '**
  261. '** Purpose:
  262. '**     Appends a file name to the end of a directory path,
  263. '**     inserting a backslash character as needed.
  264. '** Arguments:
  265. '**     szDir$  - full directory path (with optional ending "\")
  266. '**     szFile$ - filename to append to directory
  267. '** Returns:
  268. '**     Resulting fully qualified path name.
  269. '*************************************************************************
  270. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  271.     IF szDir$ = "" THEN
  272.         MakePath = szFile$
  273.     ELSEIF szFile$ = "" THEN
  274.         MakePath = szDir$
  275.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  276.         MakePath = szDir$ + szFile$
  277.     ELSE
  278.         MakePath = szDir$ + "\" + szFile$
  279.     END IF
  280. END FUNCTION
  281.  
  282.