home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / m / m072 / 1.img / SMSETUP.MS_ / SMSETUP.MS
Encoding:
Text File  |  1992-08-27  |  7.1 KB  |  290 lines

  1. '$DEFINE DEBUG  ''Define for script/development/debugging
  2.  
  3. '$INCLUDE 'setupapi.inc'
  4. '$INCLUDE 'msdetect.inc'
  5.  
  6. ''Dialog ID's
  7. CONST WELCOME       = 100
  8. CONST ASKQUIT       = 200
  9. CONST DESTPATH      = 300
  10. CONST EXITFAILURE   = 400
  11. CONST EXITQUIT      = 600
  12. CONST EXITSUCCESS   = 700
  13. CONST OPTIONS       = 800
  14. CONST APPHELP       = 900
  15. CONST TEMPPATH      = 1000
  16. CONST PSDIR         = 1100
  17. CONST ASKPSTYLER    = 1200
  18. CONST NOSPACE       = 1300
  19. CONST TWAINEXIST    = 1400
  20. CONST PLUGEXIST     = 1500
  21. CONST BADPATH       = 6400
  22. CONST SPACENEED     = 1789144
  23. CONST PSSPACENEED   = 26800 
  24.  
  25. ''Bitmap ID
  26. CONST LOGO = 1
  27.  
  28. GLOBAL PSPATH$          
  29. GLOBAL DEST$            
  30. GLOBAL SrcDir$            
  31.  
  32. DECLARE SUB Install
  33. DECLARE SUB InstallPLUG
  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 "Microtek Scan Module Installation"
  43.  
  44.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  45.     IF szInf$ = "" THEN
  46.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SMSETUP.INF"
  47.     END IF
  48.     ReadInfFile szInf$
  49.  
  50. '$IFDEF DEBUG
  51.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  52.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  53.     IF IsDriveValid(WinDrive$) = 0 THEN
  54.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  55.         GOTO QUIT
  56.     END IF
  57. '$ENDIF ''DEBUG
  58.  
  59.  
  60. WELCOME:
  61.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  62.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  63.     IF sz$ = "CONTINUE" THEN
  64.         GOSUB GETDEST
  65.         IF DEST$ = "" THEN
  66.            GOTO WELCOME
  67.         ENDIF
  68.         UIPop 1
  69.     ELSE
  70.         GOSUB ASKQUIT
  71.         GOTO WELCOME
  72.     END IF
  73.  
  74.  
  75. ASKPS:
  76.     sz$ = UIStartDlg(CUIDLL$, ASKPSTYLER, "FInfoDlgProc", APPHELP, HELPPROC$)
  77.     IF sz$ = "CONTINUE" THEN
  78.         UIPop 1                   
  79.     ELSEIF sz$ = "BACK" THEN
  80.         UIPop 1
  81.         GOTO INSTRTN
  82.     ELSE
  83.         GOSUB ASKQUIT
  84.         GOTO WELCOME
  85.     END IF
  86.  
  87.  
  88. GETDIR:
  89.     sz$ = UIStartDlg(CUIDLL$, PSDIR, "GetDirDlgProc", APPHELP, HELPPROC$)
  90.     PSPATH$ = GetSymbolValue("DirPath")
  91.     ini$ = MakePath(PSPATH$, "PSTYLER.INI")     
  92.     IMV$ = GetSymbolValue("IMV")
  93.     IMS$ = GetSymbolValue("IMS")
  94.     IMA$ = GetSymbolValue("IMA")
  95.  
  96.     IF sz$ = "CONTINUE" THEN
  97.         drive$ = MID$(PSPATH$, 1, 1)
  98.         free& = GetFreeSpaceForDrive(drive$)
  99.         IF free& < PSSPACENEED THEN
  100.             GOSUB NOSPACE
  101.             GOTO GETDIR 
  102.         ENDIF         
  103.         UIPop 1
  104.         AddSectionFilesToCopyList "PLUGTW", SrcDir$, PSPATH$
  105. '** installPLUG
  106.     ELSEIF sz$ = "NONEED" THEN
  107.         UIPop 1
  108.         GOSUB PLUGEXIST
  109.     ELSEIF sz$ = "ERROR" THEN
  110.         GOSUB BADPATH
  111.         GOTO GETDIR
  112.     ELSEIF sz$ = "REACTIVATE" THEN
  113.         GOTO GETDIR
  114.     ELSEIF sz$ = "BACK" THEN
  115.         UIPop 1
  116.         GOTO ASKPS  
  117.     ELSE
  118.         GOSUB ASKQUIT
  119.         GOTO  GETDIR
  120.     END IF
  121.                                  
  122.     IF IMV$ <> "0" THEN
  123.         CreateIniKeyValue ini$, "IMPORT", "IM", IMV$, cmoOverwrite
  124.         IF IMS$ <> "0" THEN
  125.             CreateIniKeyValue ini$, "IMPORT", IMS$, "Select...;PLUGTW.EXE;Plugtw;1" , cmoNone 
  126.         ENDIF
  127.      
  128.         IF IMA$ <> "0" THEN
  129.             CreateIniKeyValue ini$, "IMPORT", IMA$, "Acquire...;PLUGTW.EXE;Plugtw;2" , cmoNone
  130.         ENDIF
  131.     ENDIF
  132.  
  133.  
  134. INSTRTN:
  135.     IF DoesFileExist(MakePath(DEST$,"TWAIN.DLL"), femExists)=1 THEN
  136.         GOSUB TWAINEXIST
  137.     ELSE
  138.        AddSectionFilesToCopyList "TWAIN", SrcDir$, DEST$
  139.     ENDIF
  140.     Install
  141.  
  142.  
  143. QUIT:
  144.     ON ERROR GOTO ERRQUIT
  145.  
  146.     IF ERR = 0 THEN
  147.         dlg% = EXITSUCCESS
  148.     ELSE
  149.         dlg% = EXITQUIT
  150.     END IF
  151. QUITL1:
  152.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  153.     IF sz$ = "REACTIVATE" THEN
  154.         GOTO QUITL1
  155.     END IF
  156.     UIPop 1
  157.  
  158.     END
  159.  
  160. ERRQUIT:
  161.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  162.     END
  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.                         
  174. GETDEST:
  175.     DEST$ = GetWindowsDir()
  176.     drive$ = MID$(DEST$, 1, 1)
  177.     free& = GetFreeSpaceForDrive(drive$)
  178.     IF free& < SPACENEED THEN
  179.         GOSUB NOSPACE
  180.         DEST$ = ""
  181.     ENDIF
  182.     RETURN 
  183.  
  184.  
  185. NOSPACE:
  186.     sz$ = UIStartDlg(CUIDLL$, NOSPACE, "FInfo0DlgProc", 0, "")
  187.     IF sz$ = "REACTIVATE" THEN
  188.         GOTO NOSPACE
  189.     ENDIF     
  190.     UIPop 1
  191.     RETURN 
  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. PLUGEXIST:
  209.     sz$ = UIStartDlg(CUIDLL$, PLUGEXIST, "FQuitDlgProc", 0, "")
  210.     IF sz$ = "CONTINUE" THEN
  211.        UIPop 1
  212.        AddSectionFilesToCopyList "PLUGTW", SrcDir$, PSPATH$
  213. '** installPLUG      
  214.     ELSEIF sz$ = "REACTIVATE" THEN
  215.        GOTO PLUGEXIST
  216.     ELSE
  217.        UIPop 1
  218.     ENDIF
  219.     RETURN
  220.                  
  221.  
  222. TWAINEXIST:
  223.     sz$ = UIStartDlg(CUIDLL$, TWAINEXIST, "FQuitDlgProc", 0, "")
  224.     IF sz$ = "CONTINUE" THEN
  225.        UIPop 1
  226.        AddSectionFilesToCopyList "TWAIN", SrcDir$, DEST$
  227.     ELSEIF sz$ = "REACTIVATE" THEN
  228.         GOTO TWAINEXIST
  229.     ELSE
  230.         UIPop 1
  231.     ENDIF
  232.     RETURN
  233.  
  234. '**
  235. '** Purpose:
  236. '**     Builds the copy list and performs all installation operations.
  237. '** Arguments:
  238. '**     none.
  239. '** Returns:
  240. '**     none.
  241. '*************************************************************************
  242. SUB Install STATIC
  243.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  244.     CopyFilesInCopyList
  245.  
  246.     CreateProgmanGroup "Microtek Calibrator", "", cmoNone
  247.     ShowProgmanGroup  "Microtek Calibrator", 1, cmoNone
  248.     CalPath$ = MakePath(DEST$, "TWAIN")
  249.     CreateProgmanItem "Microtek Calibrator", "Microtek Calibrator", MakePath(CalPath$,"CALIB.EXE"), "", cmoOverwrite
  250.  
  251. END SUB
  252.  
  253.  
  254. SUB InstallPLUG STATIC
  255.  
  256.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  257.     
  258.     AddSectionFilesToCopyList "PLUGTW", SrcDir$, PSPATH$
  259.     CopyFilesInCopyList
  260.     ClearCopyList
  261.  
  262. END SUB
  263.  
  264.  
  265.  
  266.  
  267. '**
  268. '** Purpose:
  269. '**     Appends a file name to the end of a directory path,
  270. '**     inserting a backslash character as needed.
  271. '** Arguments:
  272. '**     szDir$  - full directory path (with optional ending "\")
  273. '**     szFile$ - filename to append to directory
  274. '** Returns:
  275. '**     Resulting fully qualified path name.
  276. '*************************************************************************
  277. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  278.     IF szDir$ = "" THEN
  279.         MakePath = szFile$
  280.     ELSEIF szFile$ = "" THEN
  281.         MakePath = szDir$
  282.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  283.         MakePath = szDir$ + szFile$
  284.     ELSE
  285.         MakePath = szDir$ + "\" + szFile$
  286.     END IF
  287. END FUNCTION
  288.  
  289.  
  290.