home *** CD-ROM | disk | FTP | other *** search
/ Chip Hitware 3 / Chip_Hitware_Vol_03.iso / chiphit3 / dfu / intelect / disk1 / setup.mst < prev    next >
Text File  |  1995-07-23  |  7KB  |  264 lines

  1. '**************************************************************************
  2. '*                       Clearwave Intellect installation 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 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 CUSTINST     = 6200
  20. CONST TOOBIG       = 6300
  21. CONST BADPATH      = 6400
  22. CONST CONFIRMINFO    = 7300
  23. CONST GETNAMEORG    = 7500
  24. CONST CDBADNAME        = 7700
  25.  
  26. ''Bitmap ID
  27. CONST LOGO         = 1
  28.  
  29. GLOBAL CUSTNAME$    ''Customer name.
  30. GLOBAL CUSTORG$     ''Customer organization.
  31. GLOBAL DEST$        ''Default destination directory.
  32. GLOBAL WINDEST$        ''Windows directory.
  33. GLOBAL WINDRIVE$    ''Windows drive letter.
  34.  
  35. ''Function prototypes
  36. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  37. DECLARE FUNCTION IsEnoughDiskSpace () AS INTEGER
  38.  
  39.  
  40.  
  41. INIT:
  42.     CUIDLL$ = "mscuistf.dll"            ''custom user interface dll
  43.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  44.  
  45.     PRODUCT$="Intellect"
  46.         GROUP$=PRODUCT$
  47.       WINDEST$ = GetWindowsDir
  48.     WINDRIVE$ = MID$(WINDEST$, 1, 1)
  49.     DEST$ = WINDRIVE$ + ":\INTLLCT"
  50.  
  51.     SetBitmap CUIDLL$, LOGO
  52.     SetTitle PRODUCT$+" Setup"
  53.  
  54.     ''Resize main setup window to fill screen
  55.     Dim hWnd%, nWidth%, nHeight%
  56.     hWnd% = HwndFrame()
  57.     nWidth% = GetScreenWidth()
  58.     nHeight% = GetScreenHeight()
  59.     SetWindowPos hWnd%, 0, 0, 0, nWidth%, nHeight%, SWP_NOZORDER
  60.  
  61.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  62.     IF szInf$ = "" THEN
  63.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  64.     END IF
  65.     ReadInfFile szInf$
  66.  
  67. WELCOME:
  68.     SetSymbolValue "EditTextIn", DEST$
  69.     SetSymbolValue "EditFocus", "ALL"
  70. WELCOMEL1:
  71.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FEditDlgProc", APPHELP, HELPPROC$)
  72.     IF sz$ = "CONTINUE" THEN
  73.         UIPop 1
  74.         DEST$ = GetSymbolValue("EditTextOut")
  75.         ''Validate new path.
  76.         IF IsDirWritable(DEST$) = 0 THEN
  77.             GOSUB BADPATH
  78.             GOTO WELCOMEL1
  79.         END IF
  80.         GOTO REGISTER
  81.     ELSEIF sz$ = "REACTIVATE" THEN
  82.     GOTO WELCOMEL1
  83.     ELSE
  84.         GOSUB ASKQUIT
  85.         GOTO WELCOME
  86.     ENDIF
  87.  
  88. REGISTER:
  89.     AddListItem "ConfirmTextIn", CUSTNAME$
  90.     AddListItem "ConfirmTextIn", CUSTORG$
  91. REGISTER2:
  92.     sz$ = UIStartDlg(CUIDLL$, GETNAMEORG, "FNameOrgDlgProc", APPHELP, HELPPROC$)
  93.     IF sz$ = "CONTINUE" THEN
  94.         CUSTNAME$ = GetSymbolValue("NameOut")
  95.     IF CUSTNAME$ = "" THEN
  96.             GOSUB BADNAME
  97.             GOTO REGISTER
  98.     ENDIF
  99.         CUSTORG$ = GetSymbolValue("OrgOut")
  100.     GOTO CONFREG
  101.     ELSEIF sz$ = "BACK" THEN
  102.         UIPop 1
  103.     GOTO WELCOME
  104.     ELSE
  105.         GOSUB ASKQUIT
  106.         GOTO REGISTER
  107.     ENDIF
  108.  
  109. CONFREG:
  110.     ReplaceListItem "ConfirmTextIn", 1, CUSTNAME$
  111.     ReplaceListItem "ConfirmTextIn", 2, CUSTORG$
  112.     sz$ = UIStartDlg(CUIDLL$, CONFIRMINFO, "FConfirmDlgProc", APPHELP, HELPPROC$)
  113.     IF sz$ = "CONTINUE" THEN
  114. ''SMS Add code to write registration info to program.
  115.         UIPop 2
  116.         GOTO INSTALL
  117.     ELSEIF sz$ = "BACK" THEN
  118.         UIPop 1
  119.         GOTO REGISTER2
  120.     ELSE
  121.         GOSUB ASKQUIT
  122.         GOTO CONFREG
  123.     ENDIF
  124.  
  125. INSTALL:
  126.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  127.     ClearCopyList
  128.     AddSectionFilesToCopyList "Intellect Files", SrcDir$, DEST$
  129.     AddSectionFilesToCopyList "Demo Files", SrcDir$, DEST$+"\demo\"
  130.     AddSectionFilesToCopyList "TAPI Files", SrcDir$, WINDEST$
  131.     AddSectionFilesToCopyList "System Files", SrcDir$, WINDEST$+"system\"
  132.     AddSectionFilesToCopyList "Windows Files", SrcDir$, WINDEST$
  133.  
  134.         ''Check to see if we have enough disk space for installation
  135.     IF IsEnoughDiskSpace() = 1 THEN
  136.     GOSUB TOOBIG
  137.     GOTO WELCOME
  138.     ENDIF
  139.     CreateDir DEST$, cmoNone
  140.     CreateDir DEST$+"\DEMO", cmoNone
  141.     CreateDir DEST$+"\INDNOTES", cmoNone
  142.     CreateDir DEST$+"\SUBNOTES", cmoNone
  143.         OpenLogFile DEST$ + "\SETUP.LOG", FALSE
  144.     DumpCopyList DEST$ + "\SETUP.LOG"
  145.  
  146.     Intellect$=MakePath(DEST$,"intllct.exe")
  147.  
  148.         IF DoesFileExist(Intellect$, femExists)=0 THEN
  149.       CopyFilesInCopyList
  150.           UpdateTelephonIni Intellect$
  151.       CreateProgmanGroup GROUP$, "", cmoNone
  152.           CreateProgmanItem GROUP$, PRODUCT$, Intellect$, "", cmoOverwrite
  153.       CreateProgmanItem GROUP$, PRODUCT$+" Demo", Intellect$+" Demo", "", cmoOverwrite
  154.       CreateProgmanItem GROUP$, PRODUCT$+" Help", "WINHELP.EXE " + MakePath(DEST$,"intllct.hlp"), "", cmoOverwrite
  155.       CreateProgmanItem GROUP$, "Read Me First", "NOTEPAD.EXE " + MakePath(DEST$,"readme.txt"), "", cmoOverwrite
  156.       ShowProgmanGroup  GROUP$, 1, cmoNone
  157.         ELSE
  158.       CopyFilesInCopyList
  159.           UpdateTelephonIni Intellect$
  160.         ENDIF
  161.  
  162. QUIT:
  163.     ON ERROR GOTO ERRQUIT
  164.  
  165.     IF ERR = 0 THEN
  166.         dlg% = EXITSUCCESS
  167.     ELSEIF ERR = STFQUIT THEN
  168.         dlg% = EXITQUIT
  169.     ELSE
  170.         dlg% = EXITFAILURE
  171.     END IF
  172. QUITL1:
  173.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  174.     IF sz$ = "REACTIVATE" THEN
  175.         GOTO QUITL1
  176.     END IF
  177.     UIPop 1
  178.  
  179.     END
  180.  
  181.  
  182.  
  183. ERRQUIT:
  184.     i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  185.     END
  186.  
  187.  
  188. TOOBIG:
  189.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  190.     IF sz$ = "REACTIVATE" THEN
  191.         GOTO TOOBIG
  192.     END IF
  193.     UIPop 1
  194.     RETURN
  195.  
  196.  
  197. BADPATH:
  198.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  199.     IF sz$ = "REACTIVATE" THEN
  200.         GOTO BADPATH
  201.     END IF
  202.     UIPop 1
  203.     RETURN
  204.  
  205.  
  206. BADNAME:
  207.     sz$ = UIStartDlg(CUIDLL$, CDBADNAME, "FInfo0DlgProc", 0, "")
  208.     IF sz$ = "REACTIVATE" THEN
  209.         GOTO BADNAME
  210.     END IF
  211.     UIPop 1
  212.     RETURN
  213.  
  214.  
  215. ASKQUIT:
  216.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  217.  
  218.     IF sz$ = "EXIT" THEN
  219.         UIPopAll
  220.         ERROR STFQUIT
  221.     ELSEIF sz$ = "REACTIVATE" THEN
  222.         GOTO ASKQUIT
  223.     ELSE
  224.         UIPop 1
  225.     END IF
  226.     RETURN
  227.  
  228.  
  229.  
  230. '**
  231. '** Purpose:
  232. '**     Appends a file name to the end of a directory path,
  233. '**     inserting a backslash character as needed.
  234. '** Arguments:
  235. '**     szDir$  - full directory path (with optional ending "\")
  236. '**     szFile$ - filename to append to directory
  237. '** Returns:
  238. '**     Resulting fully qualified path name.
  239. '*************************************************************************
  240. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  241.     IF szDir$ = "" THEN
  242.         MakePath = szFile$
  243.     ELSEIF szFile$ = "" THEN
  244.         MakePath = szDir$
  245.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  246.         MakePath = szDir$ + szFile$
  247.     ELSE
  248.         MakePath = szDir$ + "\" + szFile$
  249.     END IF
  250. END FUNCTION
  251.  
  252.  
  253.  
  254. FUNCTION IsEnoughDiskSpace () STATIC AS INTEGER
  255.  
  256.     StillNeed& = GetCopyListCost("", "", "")
  257.     IF StillNeed > 0 THEN
  258.         IsEnoughDiskSpace = 1
  259.     ELSE
  260.         IsEnoughDiskSpace = 0
  261.     END IF
  262.  
  263. END FUNCTION
  264.