home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 December / PCWKCD1296.iso / demo / wgelectr / cctdemo / dmsetup.ms_ / dmsetup.ms
Text File  |  1996-03-20  |  5KB  |  210 lines

  1. '**************************************************************************
  2. '*                       CCT Demo Setup Script
  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 ASKQUIT       = 200
  12. CONST EXITFAILURE   = 400
  13. CONST EXITQUIT      = 600
  14. CONST EXITSUCCESS   = 700
  15. CONST BADPATH       = 6400
  16.  
  17. CONST EXITFAILNOTWIN31 = 1200
  18. CONST EXITFAILNOTENH = 1300
  19. CONST EXITFAILNOTINTEL = 1350
  20. CONST DEMOPATH  = 2200
  21.  
  22.  
  23. ''Bitmap ID
  24. CONST LOGO = 3
  25.  
  26. GLOBAL DESTDM$            ''CCT Demo directory (default c:\cctdemo)
  27.  
  28. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  29. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  30.  
  31. INIT:
  32.     ON ERROR GOTO ERRNORMAL
  33.  
  34.     DESTDM$ = "c:\cctdemo\"        ''default installation directory
  35.     CUIDLL$ = "mscuistf.dll"    ''Custom user interface dll
  36.     HELPPROC$ = "FHelpDlgProc"    ''Help dialog procedure
  37.  
  38.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  39.     SetBitmap CUIDLL$, LOGO
  40.     SetTitle "CCT Demo Setup Program"
  41.     
  42.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  43.     IF szInf$ = "" THEN
  44.         szInf$ = GetSymbolValue("STF_CWDDIR") + "dmsetup.inf"
  45.     END IF
  46.     ReadInfFile szInf$
  47.  
  48. '$IFDEF DEBUG
  49.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  50.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  51.     IF IsDriveValid(WinDrive$) = 0 THEN
  52.     i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  53.     GOTO QUIT
  54.     END IF
  55. '$ENDIF ''DEBUG
  56.  
  57. CHECK:
  58.     IF GetWindowsMajorVersion < 3 THEN
  59.         ExitCode% = EXITFAILNOTWIN31
  60.         GOTO QUIT
  61.     END IF
  62.     IF GetWindowsMajorVersion = 3 AND GetWindowsMinorVersion < 1 THEN
  63.         ExitCode% = EXITFAILNOTWIN31
  64.         GOTO QUIT
  65.     END IF
  66.     IF GetWindowsMode < 2  THEN
  67.         IF OnWindowsNT() THEN
  68.             ExitCode% = EXITFAILNOTINTEL '' Running on Windows NT on non-INTEL
  69.         ELSE
  70.             ExitCode% = EXITFAILNOTENH   '' Standard Mode Windows
  71.         END IF
  72.         GOTO QUIT
  73.     END IF
  74.     ExitCode% = EXITSUCCESS
  75.  
  76.  
  77. GETDEMOPATH:
  78.     SetSymbolValue "EditTextIn", DESTDM$
  79.     SetSymbolValue "EditFocus", "END"
  80.  
  81. GETDEMOPATHL1:
  82.     sz$ = UIStartDlg(CUIDLL$, DEMOPATH, "FEditDlgProc", 1000, HELPPROC$)
  83.     IF sz$ = "CONTINUE" THEN
  84.         DESTDM$ = GetSymbolValue("EditTextOut")
  85.         IF MID$(DESTDM$, LEN(DESTDM$), 1) <> "\" THEN
  86.             DESTDM$ = DESTDM$ + "\"
  87.         END IF
  88.         ''Validate new path.
  89.         IF IsDirWritable(DESTDM$) = 0 THEN
  90.             GOSUB BADPATH
  91.             GOTO GETDEMOPATHL1
  92.         END IF
  93.         UIPop 1
  94.  
  95.     ELSEIF sz$ = "REACTIVATE" THEN
  96.         GOTO GETDEMOPATHL1
  97.     ELSE
  98.         GOSUB ASKQUIT
  99.         GOTO GETDEMOPATH
  100.     END IF
  101.  
  102.  
  103.  
  104. COPYDEMO:
  105.     ClearCopyList
  106.     CreateDir DESTDM$, cmoVital
  107.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  108.  
  109.     ERR = 0
  110.     AddSectionFilesToCopyList "cctdemo", SrcDir$, DESTDM$
  111.     CopyFilesInCopyList
  112.  
  113.     IF ERR <> 0 THEN
  114.         GOTO QUIT
  115.     END IF
  116.  
  117. SETUPDEMOGROUP:
  118.     ERR = 0
  119.     CreateProgmanGroup "CCT Demo", "", cmoNone
  120.     ShowProgmanGroup   "CCT Demo", 1, cmoNone
  121.     CreateProgmanItem  "CCT Demo", "CCT Demo", DESTDM$+"cctdemo.exe", DESTDM$+"cctdemo.ico,0,0,0,"+DESTDM$, cmoOverwrite
  122.     CreateProgmanItem  "CCT Demo", "Release Notes", "notepad readme.txt", "notepad.exe,0,0,1,"+DESTDM$, cmoOverwrite
  123.     '' Only put up success dialog if icon added to group
  124.     IF ERR = 0 THEN
  125.         ExitCode% = EXITSUCCESS
  126.     END IF
  127.  
  128. QUIT:
  129.     '' Install error handler for final message box routines
  130.     ON ERROR GOTO ERRQUIT
  131.     IF ERR = 0 THEN
  132.         dlg% = ExitCode%
  133.     ELSEIF ERR = STFQUIT THEN
  134.         dlg% = EXITQUIT
  135.         ExitCode% = EXITQUIT
  136.     ELSE
  137.         dlg% = EXITFAILURE
  138.         ExitCode% = EXITQUIT
  139.     END IF
  140.  
  141. QUITL1:
  142.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  143.     IF sz$ = "REACTIVATE" THEN
  144.         GOTO QUITL1
  145.     END IF
  146.     UIPop 1
  147.  
  148.     END
  149.  
  150.  
  151. '' Fatal error handler for error message routine
  152. ERRQUIT:
  153.     i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  154.     END
  155.  
  156. '' Bypass run-time errors. Let final dialog box display fatal error message.
  157. ERRNORMAL:
  158.     '' Check if user cancelled setup
  159.     IF ERR = STFQUIT THEN
  160.         GOTO QUIT
  161.     END IF
  162.     RESUME NEXT
  163.  
  164.  
  165. BADPATH:
  166.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  167.     IF sz$ = "REACTIVATE" THEN
  168.         GOTO BADPATH
  169.     END IF
  170.     UIPop 1
  171.     RETURN
  172.  
  173. ASKQUIT:
  174.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  175.  
  176.     IF sz$ = "EXIT" THEN
  177.         UIPopAll
  178.         ERROR STFQUIT
  179.     ELSEIF sz$ = "REACTIVATE" THEN
  180.         GOTO ASKQUIT
  181.     ELSE
  182.         UIPop 1
  183.     END IF
  184.     RETURN
  185.  
  186.  
  187.  
  188.  
  189. '**
  190. '** Purpose:
  191. '**     Appends a file name to the end of a directory path,
  192. '**     inserting a backslash character as needed.
  193. '** Arguments:
  194. '**     szDir$  - full directory path (with optional ending "\")
  195. '**     szFile$ - filename to append to directory
  196. '** Returns:
  197. '**     Resulting fully qualified path name.
  198. '*************************************************************************
  199. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  200.     IF szDir$ = "" THEN
  201.     MakePath = szFile$
  202.     ELSEIF szFile$ = "" THEN
  203.     MakePath = szDir$
  204.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  205.     MakePath = szDir$ + szFile$
  206.     ELSE
  207.     MakePath = szDir$ + "\" + szFile$
  208.     END IF
  209. END FUNCTION
  210.