home *** CD-ROM | disk | FTP | other *** search
/ CICA 1994 September / CICA_Shareware_for_Windows_Walnut_Creek_September_1994.iso / win3 / demo / gcp_24.exe / SETUP.MS_ / SETUP.MS
Text File  |  1994-05-28  |  10KB  |  297 lines

  1. '**************************************************************************
  2. '*                         GCP++ SDK Setup 2.2
  3. '**************************************************************************
  4.  
  5. '$INCLUDE 'setupapi.inc'
  6. '$INCLUDE 'msdetect.inc'
  7.  
  8. ''Dialog ID's
  9. CONST WELCOME       = 100
  10. CONST ASKQUIT       = 200
  11. CONST DESTPATH      = 300
  12. CONST EXITFAILURE   = 400
  13. CONST EXITQUIT      = 600
  14. CONST EXITSUCCESS   = 700
  15. CONST APPHELP       = 900
  16. CONST BADPATH       = 6400
  17. CONST IDYES            =6
  18. CONST IDNO            =7
  19. CONST MB_YESNO=4
  20. CONST MB_DEFBUTTON2        =256
  21.  
  22. ''Bitmap ID
  23. CONST LOGO = 1
  24.  
  25. GLOBAL DEST$        ''Default destination directory.
  26.  
  27. DECLARE SUB Install
  28. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  29. DECLARE FUNCTION EditAutoexec LIB "GCPSETUP.DLL" (szDir As String) As Integer
  30. DECLARE FUNCTION ExitWindows LIB "User" (dwReserved As Long, wReturnCode As Integer) As Integer 
  31. DECLARE FUNCTION ShowWindow Lib "User" (hWnd As Integer, nCmdShow As Integer) As Integer
  32.  
  33. INIT:
  34.     IF ShowWindow(HWndFrame(), 3) THEN
  35.     END IF
  36.  
  37.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  38.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  39.  
  40.     SetBitmap CUIDLL$, LOGO
  41.     SetTitle "Dart Communications"
  42.     SetAbout "GCP++ TCP/IP Development Tools" + Chr$(13) + "Version 2.3" + Chr$(13) + "for Microsoft Windows","Dart Communications" + Chr$(13) + "(315) 841-8106" + Chr$(13) + "INTERNET: baldwin@SUNYIT.edu" 
  43.  
  44.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  45.     IF szInf$ = "" THEN
  46.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  47.     END IF
  48.     ReadInfFile szInf$
  49.  
  50.     DEST$ = "C:\GCP"
  51.  
  52. '$IFDEF DEBUG
  53.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  54.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  55.     IF IsDriveValid(WinDrive$) = 0 THEN
  56.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  57.         GOTO QUIT
  58.     END IF
  59. '$ENDIF ''DEBUG
  60.  
  61.  
  62. WELCOME:
  63.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  64.     IF sz$ = "CONTINUE" THEN
  65.         UIPop 1
  66.     ELSE
  67.         GOSUB ASKQUIT
  68.         GOTO WELCOME
  69.     END IF
  70.  
  71. GETPATH:
  72.     SetSymbolValue "EditTextIn", DEST$
  73.     SetSymbolValue "EditFocus", "END"
  74. GETPATHL1:
  75.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  76.     DEST$ = GetSymbolValue("EditTextOut")
  77.  
  78.     IF sz$ = "CONTINUE" THEN
  79.         IF IsDirWritable(DEST$) = 0 THEN
  80.             GOSUB BADPATH
  81.             GOTO GETPATHL1
  82.         END IF
  83.         UIPop 1
  84.     ELSEIF sz$ = "REACTIVATE" THEN
  85.         GOTO GETPATHL1
  86.     ELSEIF sz$ = "BACK" THEN
  87.         UIPop 1
  88.         GOTO WELCOME
  89.     ELSE
  90.         GOSUB ASKQUIT
  91.         GOTO GETPATH
  92.     END IF
  93.  
  94.  
  95.     Install
  96.  
  97.  
  98. QUIT:
  99.     ON ERROR GOTO ERRQUIT
  100.  
  101.     IF ERR = 0 THEN
  102.         dlg% = EXITSUCCESS
  103.     ELSEIF ERR = STFQUIT THEN
  104.         dlg% = EXITQUIT
  105.     ELSE
  106.         dlg% = EXITFAILURE
  107.     END IF
  108.  
  109.     IF dlg% = EXITSUCCESS THEN
  110. ' Remainder commented out because setup files are left behind...very messy
  111. '        MSG% = DoMsgBox("You must re-boot your system for installation to take effect."+Chr$(13)+Chr$(10)+"Do you want to restart now?", "EXIT SETUP", 36)
  112. '        IF MSG% = 6 THEN
  113. 'RESTARTLINE:
  114. '            suc = ExitWindows(67, 0)
  115. '             if 1=RestartListEmpty then
  116. '             MSG% = DoMsgBox("Cannot Restart", "Restart List Empty", 36)
  117. '             else
  118. '             MSG% = DoMsgBox("Restarting", "Restart List OK", 36)
  119. '             SetRestartDir Dest$
  120. '             end if    
  121. '             Suc = ExitExecRestart()
  122. '             MSG% = DoMsgBox("Not all applications terminated.", "RESTART ERROR", 53)
  123. '             IF MSG% = 4 THEN
  124. '                 GOTO RESTARTLINE
  125. '             END IF
  126. '            END IF
  127. '        END IF 
  128.     END IF
  129.  
  130.  
  131. QUITL1:
  132.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  133.     IF sz$ = "REACTIVATE" THEN
  134.         GOTO QUITL1
  135.     END IF
  136.  
  137.     UIPop 1
  138.     END
  139.  
  140. ERRQUIT:
  141.     i% = DoMsgBox("Setup sources were corrupted, call Dart Communications at 315.841.8106", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  142.     END
  143.  
  144.  
  145.  
  146. BADPATH:
  147.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  148.     IF sz$ = "REACTIVATE" THEN
  149.         GOTO BADPATH
  150.     END IF
  151.     UIPop 1
  152.     RETURN
  153.  
  154.  
  155.  
  156. ASKQUIT:
  157.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  158.  
  159.     IF sz$ = "EXIT" THEN
  160.         UIPopAll
  161.         ERROR STFQUIT
  162.     ELSEIF sz$ = "REACTIVATE" THEN
  163.         GOTO ASKQUIT
  164.     ELSE
  165.         UIPop 1
  166.     END IF
  167.     RETURN
  168.  
  169.  
  170.  
  171. '**
  172. '** Purpose:
  173. '**     Builds the copy list and performs all installation operations.
  174. '** Arguments:
  175. '**     none.
  176. '** Returns:
  177. '**     none.
  178. '*************************************************************************
  179. SUB Install STATIC
  180.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  181.     CreateDir DEST$, cmoNone
  182.  
  183.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  184.     WriteToLogFile ""
  185.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  186.     WriteToLogFile ""
  187.     WriteToLogFile "May have had to create the directory: " + DEST$
  188.     WriteToLogFile ""
  189.  
  190.     SysDir$=GetWindowsSysDir()
  191.  
  192.     CreateDir DEST$ + "\bin", cmoNone
  193.     CreateDir DEST$ + "\doc", cmoNone
  194.     CreateDir DEST$ + "\gcp", cmoNone
  195.     CreateDir DEST$ + "\vb", cmoNone
  196.     CreateDir DEST$ + "\vb_tcp", cmoNone
  197.     CreateDir DEST$ + "\vb_udp", cmoNone
  198.     CreateDir DEST$ + "\vb_tlnt", cmoNone
  199.     CreateDir DEST$ + "\vb_tftp", cmoNone
  200.     CreateDir DEST$ + "\vb_220", cmoNone
  201.     CreateDir DEST$ + "\lib", cmoNone
  202.     CreateDir DEST$ + "\include", cmoNone
  203.  
  204.     AddSectionFilesToCopyList "binsection", SrcDir$, DEST$ + "\bin"
  205.     AddSectionFilesToCopyList "docsection", SrcDir$, DEST$ + "\doc"
  206.     AddSectionFilesToCopyList "gcpsection", SrcDir$, DEST$ + "\gcp"
  207.     AddSectionFilesToCopyList "tcpsection", SrcDir$, DEST$ + "\vb_tcp"
  208.     AddSectionFilesToCopyList "tlntsection", SrcDir$, DEST$ + "\vb_tlnt"
  209.     AddSectionFilesToCopyList "tftpsection", SrcDir$, DEST$ + "\vb_tftp"
  210.     AddSectionFilesToCopyList "udpsection", SrcDir$, DEST$ + "\vb_udp"
  211.     AddSectionFilesToCopyList "vt220section", SrcDir$, DEST$ + "\vt220"
  212.     AddSectionFilesToCopyList "libsection", SrcDir$, DEST$ + "\lib"
  213.     AddSectionFilesToCopyList "includesection", SrcDir$, DEST$ + "\include"
  214.     CopyFilesInCopyList
  215.  
  216.     Grp$="GCP++ Evaluation Edition"
  217.  
  218.     CreateProgmanGroup Grp$, "", cmoNone
  219.     ShowProgmanGroup  Grp$, 1, cmoNone
  220.  
  221. vb$=FindFileInTree("vb.exe","c:\")
  222. vb$=vb$ + " "
  223. CreateProgmanItem Grp$, "Evaluation Edition", MakePath(DEST$ + "\doc","gcp_eval.wri"), "", cmoOverwrite
  224. CreateProgmanItem Grp$, "SDK", DEST$ + "\doc\sdk.doc", "", cmoOverwrite
  225. CreateProgmanItem Grp$, "VB Controls", DEST$ + "\doc\vb.doc", "", cmoOverwrite
  226. CreateProgmanItem Grp$, "GCP Server", DEST$ +"\bin\gcp242.exe", "", cmoOverwrite
  227. CreateProgmanItem Grp$, "Read Me", MakePath(DEST$ + "\doc" , "readme.wri"),"",cmoOverwrite
  228. CreateProgmanItem Grp$, "GCP Client", MakePath(DEST$ +"\bin","gcp_clnt.exe"),"",cmoOverwrite
  229. CreateProgmanItem Grp$, "GCP Client Help", MakePath(DEST$ +"\doc","gcp_clnt.hlp"),"",cmoOverwrite
  230. CreateProgmanItem Grp$, "C Developer's Guide", MakePath(DEST$ +"\doc","gcp_c.hlp"),"",cmoOverwrite
  231. CreateProgmanItem Grp$, "VB Developer's Guide", MakePath(DEST$ +"\doc","gcp_vb.hlp"),"",cmoOverwrite
  232.  
  233. CreateProgmanItem Grp$, "TCP Custom Control", DEST$+"\vb_tcp\tcp.exe", "", cmoOverwrite
  234. if vb$ <> " " then
  235.     CreateProgmanItem Grp$, "TCP Sample Form", vb$ + DEST$ + "\vb_tcp\tcp.mak", "", cmoOverwrite
  236. end if
  237. CreateProgmanItem Grp$, "TELNET Custom Control", DEST$ + "\vb_tlnt\tlnt.exe", "", cmoOverwrite
  238. if vb$ <> " " then
  239.     CreateProgmanItem Grp$, "TELNET Sample Form", vb$ + DEST$ + "\vb_tlnt\tlnt.mak", "", cmoOverwrite
  240. end if
  241. CreateProgmanItem Grp$, "UDP Custom Control", DEST$ + "\vb_udp\udp.exe", "", cmoOverwrite
  242. if vb$ <> " " then
  243.     CreateProgmanItem Grp$, "UDP Sample Form", vb$ + DEST$ + "\vb_udp\udp.mak", "", cmoOverwrite
  244. end if
  245. CreateProgmanItem Grp$, "TFTP Custom Control", DEST$ + "\vb_tftp\tftp.exe", "", cmoOverwrite
  246. if vb$ <> " " then
  247.     CreateProgmanItem Grp$, "TFTP Sample Form", vb$ + DEST$ + "\vb_tftp\tftp.mak", "", cmoOverwrite
  248. end if
  249. CreateProgmanItem Grp$, "VT-220 for Workgroups", DEST$ + "\vt220\vt220.exe", "", cmoOverwrite
  250. if vb$ <> " " then
  251.     CreateProgmanItem Grp$, "VT-220 Form", vb$ + DEST$ + "\vt220\vt220.mak", "", cmoOverwrite
  252. end if
  253.  
  254. '        CreateProgmanItem Grp$, "Ordering Information", MakePath(DEST$+"\doc" ,"order.wri"),"",cmoOverwrite
  255.  
  256.     MSG% = DoMsgBox("Modify AUTOEXEC.BAT to include new path?", "AUTOEXEC.BAT", 36) ' OK and CANCEL
  257.     IF MSG% = 6 THEN
  258.       If EditAutoexec(DEST$) = 0 Then
  259.           WriteToLogFile "     Using GCPSETUP.DLL to edit AUTOEXEC.BAT: Successful"
  260.           msg% = DoMsgBox ("AUTOEXEC.BAT renamed AUTOEXEC.GCP"+Chr$(13)+Chr$(10)+"AUTOEXEC.BAT PATH now includes "+DEST$+"\BIN"+Chr$(13)+Chr$(10)+"--- Reboot for changes to take effect ---","AUTOEXEC Modified",0)
  261.       Else
  262.           WriteToLogFile "     Using GCPSETUP.DLL to edit AUTOEXEC.BAT: Failed"
  263.           msg% = DoMsgBox ("Unable to modify AUTOEXEC.BAT"+Chr$(13)+Chr$(10)+"Add "+DEST$+"\BIN to PATH environment variable.","AUTOEXEC Not Modified",48)
  264.       End If
  265.     else
  266.       i% = DoMsgBox("Ensure you include "+ DEST$ + "\bin in your PATH!", "AUTOEXEC not modified!", MB_OK)
  267.     End If
  268.  
  269.  
  270.     CloseLogFile
  271. END SUB
  272.  
  273.  
  274.  
  275. '**
  276. '** Purpose:
  277. '**     Appends a file name to the end of a directory path,
  278. '**     inserting a backslash character as needed.
  279. '** Arguments:
  280. '**     szDir$  - full directory path (with optional ending "\")
  281. '**     szFile$ - filename to append to directory
  282. '** Returns:
  283. '**     Resulting fully qualified path name.
  284. '*************************************************************************
  285. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  286.     IF szDir$ = "" THEN
  287.         MakePath = szFile$
  288.     ELSEIF szFile$ = "" THEN
  289.         MakePath = szDir$
  290.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  291.         MakePath = szDir$ + szFile$
  292.     ELSE
  293.         MakePath = szDir$ + "\" + szFile$
  294.     END IF
  295. END FUNCTION
  296.  
  297.