home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 10 / CDE10.mdf / bonus / thumbs / thumbs.ms_ / thumbs.bin
Text File  |  1995-04-24  |  7KB  |  278 lines

  1. ''$DEFINE DEBUG    ''Define for script development/debugging
  2.  
  3. '$INCLUDE 'setupapi.inc'
  4. '$INCLUDE 'msdetect.inc'
  5. '$INCLUDE 'msregdb.inc'
  6.  
  7. ''Dialog ID's
  8. CONST WELCOME    = 100
  9. CONST ASKQUIT    = 200
  10. CONST DESTPATH    = 300
  11. CONST USERNAME    = 500
  12. CONST EXITQUIT    = 600
  13. CONST EXITSUCCESS = 700
  14. CONST OPTIONS    = 800
  15. CONST APPHELP    = 900
  16. CONST USERCODE    = 1000
  17. CONST TOOBIG = 6300
  18. CONST BADPATH    = 6400
  19. CONST BADNAME    = 6500
  20.  
  21. ''Bitmap ID
  22. CONST LOGO = 1
  23.  
  24. GLOBAL SYSDIR$
  25. GLOBAL DEST$        ''Default destination directory.
  26. GLOBAL USER$
  27. GLOBAL CODE$
  28. GLOBAL CONTACT$
  29. GLOBAL EXEFILE$
  30.  
  31. DECLARE SUB Install
  32. DECLARE SUB RegisterDB
  33. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  34. DECLARE FUNCTION ShowWindow LIB "USER.EXE" (hwnd%, nShow%) AS INTEGER
  35. CONST SW_SHOWMAXIMIZED = 3
  36.  
  37. INIT:
  38.     CUIDLL$ = "mscuistf.dll"
  39.     HELPPROC$ = "FHelpDlgProc"
  40. '    CONTACT$ = "Please contact The Thompson Partnership at 01889 564 601"
  41.     CONTACT$ = "Please contact Cerious Software "+"(704)529-0200, Fax (704)529-0497, cerious@vnet.net, CIS: 71501,2470"
  42.  
  43.     SetBitmap CUIDLL$, LOGO
  44.     SetTitle "ThumbsPlus Setup"
  45.     i% = ShowWindow(HwndFrame(), SW_SHOWMAXIMIZED)
  46.  
  47.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  48.     IF szInf$ = "" THEN
  49.     szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  50.     END IF
  51.     ReadInfFile szInf$
  52.  
  53.     OPTCUR$ = "1"
  54.     DEST$ = "C:\THUMBS"
  55.     SYSDIR$ = GetWindowsSysDir()
  56.     IF IsWindowsShared = 1 THEN
  57.         IF GetSymbolValue("STF_MODE") <> "ADMIN" THEN
  58.             SYSDIR$ = GetWindowsDir()
  59.         END IF
  60.     END IF
  61.  
  62. '$IFDEF DEBUG
  63.     i% = SetSizeCheckMode(scmOnIgnore)
  64.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  65.     IF IsDriveValid(WinDrive$) = 0 THEN
  66.     i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  67.     GOTO QUIT
  68.     END IF
  69. '$ENDIF ''DEBUG
  70.  
  71. WELCOME:
  72.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  73.     IF sz$ = "CONTINUE" THEN
  74.     UIPop 1
  75.     ELSE
  76.     GOSUB ASKQUIT
  77.     GOTO WELCOME
  78.     END IF
  79.  
  80. GETPATH:
  81.     SetSymbolValue "EditTextIn", DEST$
  82.     SetSymbolValue "EditFocus", "END"
  83. GETPATHL1:
  84.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  85.     DEST$ = GetSymbolValue("EditTextOut")
  86.  
  87.     IF sz$ = "CONTINUE" THEN
  88.         IF IsDirWritable(DEST$) = 0 THEN
  89.             GOSUB BADPATH
  90.             GOTO GETPATHL1
  91.         END IF
  92.         SrcDir$ = GetSymbolValue("STF_SRCDIR")
  93.         ClearCopyList
  94.         AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  95.         AddSectionFilesToCopyList "System", SrcDir$, SYSDIR$
  96.         IF GetCopyListCost("", "", "") <> 0 THEN
  97.             GOSUB TOOBIG
  98.             GOTO GETPATHL1
  99.         END IF
  100.         UIPop 1
  101.     ELSEIF sz$ = "REACTIVATE" THEN
  102.         GOTO GETPATHL1
  103.     ELSEIF sz$ = "BACK" THEN
  104.         UIPop 1
  105.         GOTO WELCOME
  106.     ELSE
  107.         GOSUB ASKQUIT
  108.         GOTO GETPATH
  109.     END IF
  110.  
  111. GETNAME:
  112.     SetSymbolValue "EditTextIn", USER$
  113.     SetSymbolValue "EditFocus", "END"
  114. GETNAMEL1:
  115.     sz$ = UIStartDlg(CUIDLL$, USERNAME, "FEditDlgProc", APPHELP, HELPPROC$)
  116.     USER$ = GetSymbolValue("EditTextOut")
  117.  
  118.     IF sz$ = "CONTINUE" THEN
  119.         IF LEN(USER$) < 6 THEN
  120.             GOSUB BADNAME
  121.             GOTO GETNAMEL1
  122.         END IF
  123.         UIPop 1
  124.     ELSEIF sz$ = "REACTIVATE" THEN
  125.         GOTO GETNAMEL1
  126.     ELSEIF sz$ = "BACK" THEN
  127.         UIPop 1
  128.         GOTO GETPATH
  129.     ELSE
  130.         GOSUB ASKQUIT
  131.         GOTO GETNAME
  132.     ENDIF
  133.  
  134. GETCODE:
  135.     SetSymbolValue "EditTextIn", CODE$
  136.     SetSymbolValue "EditFocus", "END"
  137. GETCODEL1:
  138.     sz$ = UIStartDlg(CUIDLL$, USERCODE, "FEditDlgProc", APPHELP, HELPPROC$)
  139.     CODE$ = GetSymbolValue("EditTextOut")
  140.  
  141.     IF sz$ = "CONTINUE" THEN
  142.         UIPop 1
  143.     ELSEIF sz$ = "REACTIVATE" THEN
  144.         GOTO GETCODEL1
  145.     ELSEIF sz$ = "BACK" THEN
  146.         UIPop 1
  147.         GOTO GETNAME
  148.     ELSE
  149.         GOSUB ASKQUIT
  150.         GOTO GETCODE
  151.     ENDIF
  152.  
  153.     Install
  154.     RegisterDB
  155.  
  156. QUIT:
  157.     ON ERROR GOTO ERRQUIT
  158.  
  159.     IF ERR = 0 THEN
  160.         dlg% = EXITSUCCESS
  161.     ELSEIF ERR = STFQUIT THEN
  162.         dlg% = EXITQUIT
  163.     ELSE
  164.         GOTO CANTINSTALL
  165.     END IF
  166. QUITL1:
  167.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  168.     IF sz$ = "REACTIVATE" THEN
  169.     GOTO QUITL1
  170.     END IF
  171.     UIPop 1
  172.     END
  173.  
  174. CANTINSTALL:
  175.     i% = DoMsgBox("Setup was unable to install ThumbsPlus. "+CONTACT$, "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  176.     END
  177.  
  178. ERRQUIT:
  179.     i% = DoMsgBox("Setup sources were corrupted. "+CONTACT$, "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  180.     END
  181.  
  182. BADPATH:
  183.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  184.     IF sz$ = "REACTIVATE" THEN
  185.         GOTO BADPATH
  186.     END IF
  187.     UIPop 1
  188.     RETURN
  189.  
  190. TOOBIG:
  191.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  192.     IF sz$ = "REACTIVATE" THEN
  193.         GOTO TOOBIG
  194.     END IF
  195.     UIPop 1
  196.     RETURN
  197.  
  198. BADNAME:
  199.     sz$ = UIStartDlg(CUIDLL$, BADNAME, "FInfo0DlgProc", 0, "")
  200.     IF sz$ = "REACTIVATE" THEN
  201.         GOTO BADNAME
  202.     END IF
  203.         UIPop 1
  204.     RETURN
  205.  
  206. ASKQUIT:
  207.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  208.  
  209.     IF sz$ = "EXIT" THEN
  210.         UIPopAll
  211.         ERROR STFQUIT
  212.     ELSEIF sz$ = "REACTIVATE" THEN
  213.         GOTO ASKQUIT
  214.     ELSE
  215.         UIPop 1
  216.     END IF
  217.     RETURN
  218.  
  219. '    Performs all installation operations.
  220.  
  221. SUB Install STATIC
  222.  
  223.     EXEFILE$ = MakePath(DEST$, "thumbs.exe")
  224.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  225.     CreateDir DEST$, cmoNone
  226.  
  227.     CopyFilesInCopyList
  228.  
  229.     CreateProgmanGroup "ThumbsPlus", "", cmoNone
  230.     ShowProgmanGroup  "ThumbsPlus", 1, cmoNone
  231.     CreateProgmanItem "ThumbsPlus", "ThumbsPlus", EXEFILE$, "", cmoOverwrite
  232.     CreateProgmanItem "ThumbsPlus", "Read Me", "notepad.exe "+MakePath(DEST$,"readme.txt"), "", cmoOverwrite
  233.     CreateProgmanItem "ThumbsPlus", "ThumbsPlus Help", MakePath(DEST$,"thumbs.hlp"), MakePath(DEST$,"tphelp.ico"), cmoOverwrite
  234.     CreateProgmanItem "ThumbsPlus", "ThumbsPlus Errors", MakePath(DEST$,"errors.hlp"), MakePath(DEST$,"tphelp.ico"), cmoOverwrite
  235.     CreateProgmanItem "ThumbsPlus", "ThumbsPlus Glossary", MakePath(DEST$,"glossary.hlp"), MakePath(DEST$,"tphelp.ico"), cmoOverwrite
  236.  
  237.     ' Remove PCDLIB.DLL from THUMBS directory, since it's now in the \WINDOWS\SYSTEM directory.
  238.  
  239.     IF DoesFileExist(MakePath(DEST$,"pcdlib.dll"), femExists) THEN
  240.         RemoveFile MakePath(DEST$,"pcdlib.dll"), cmoForce
  241.     END IF
  242.  
  243. END SUB
  244.  
  245. '    Adds keys to REG.DAT for ThumbsPlus
  246.  
  247. SUB RegisterDB STATIC
  248.  
  249.     CreateRegKeyValue "ThumbsPlusPic", "ThumbsPlus Displayable Picture"
  250.     Base$ = "ThumbsPlusPic\shell\open\"
  251.     CreateRegKeyValue Base$+"command", EXEFILE$+" -dde"
  252.     CreateRegKeyValue Base$+"ddeexec", "Open(""%1"")"
  253.     Base$ = "ThumbsPlusPic\shell\print\"
  254.     CreateRegKeyValue Base$+"command", EXEFILE$+" -dde"
  255.     CreateRegKeyValue Base$+"ddeexec", "Print(""%1"")"
  256.     CreateRegKeyValue "ThumbsPlusDB", "ThumbsPlus Catalog Database"
  257.     CreateRegKeyValue "ThumbsPlusDB\shell\open\command", EXEFILE$+" %1"
  258.     CreateRegKeyValue "ThumbsPlusDB\CSWusername", USER$
  259.     CreateRegKeyValue "ThumbsPlusDB\CSWcode", CODE$
  260.     CreateRegKeyValue ".tud", "ThumbsPlusDB"
  261.  
  262. END SUB
  263.  
  264. '    Appends a file name to the end of a directory path,
  265. '    inserting a backslash character as needed.
  266.  
  267. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  268.     IF szDir$ = "" THEN
  269.         MakePath = szFile$
  270.     ELSEIF szFile$ = "" THEN
  271.         MakePath = szDir$
  272.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  273.         MakePath = szDir$ + szFile$
  274.     ELSE
  275.         MakePath = szDir$ + "\" + szFile$
  276.     END IF
  277. END FUNCTION
  278.