home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 12 / CD_ASCQ_12_0294.iso / news / 4501 / adhoc.ms_ / adhoc.ms
Text File  |  1993-09-25  |  6KB  |  240 lines

  1. '**************************************************************************
  2. '*           Ad Hoc DBMS setup script adapted from
  3. '*           MSSetup Toolkit Sample 1
  4. '*           FOR EVALUATION COPY
  5. '**************************************************************************
  6.  
  7. '$DEFINE DEBUG  ''Define for script development/debugging
  8.  
  9. '$INCLUDE 'setupapi.inc'
  10. '$INCLUDE 'msdetect.inc'
  11.  
  12. ''Dialog ID's
  13. CONST WELCOME       = 100
  14. CONST ASKQUIT       = 200
  15. CONST DESTPATH      = 300
  16. CONST EXITFAILURE   = 400
  17. CONST EXITQUIT      = 600
  18. CONST EXITSUCCESS   = 700
  19. CONST OPTIONS       = 800
  20. CONST CHECK         = 2500
  21. CONST APPHELP       = 900
  22. CONST BADPATH       = 6400
  23. CONST CDGETNAMEORG  = 7500
  24. CONST CDBADNAME     = 7700
  25. CONST CDCONFIRMINFO = 7300
  26.  
  27. ''Bitmap ID
  28. CONST LOGO = 1
  29.  
  30. GLOBAL DEST$        ''Default destination directory.
  31. GLOBAL SAMPLEDEST$  ''Destination directory for sample database
  32. GLOBAL OPTPM$       ''Option to install a Program Manager Group
  33. GLOBAL OPTSAMPLE$   ''Option to install the sample db
  34. GLOBAL SrcDir$      ''
  35.  
  36. DECLARE SUB Install
  37. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  38.  
  39. INIT:
  40.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  41.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  42.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  43.  
  44.     SetBitmap CUIDLL$, LOGO
  45.     SetTitle "Install Ad Hoc"
  46.  
  47.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  48.     IF szInf$ = "" THEN
  49.         szInf$ = GetSymbolValue("STF_CWDDIR") + "ADHOC.INF"
  50.     END IF
  51.     ReadInfFile szInf$
  52.  
  53.     OPTPM$ = "ON"
  54.     OPTSAMPLE = "ON"
  55.     DEST$ = "C:\ADHOC"
  56.  
  57. WELCOME:
  58.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  59.     IF sz$ = "CONTINUE" THEN
  60.         UIPop 1
  61.     ELSE
  62.         GOSUB ASKQUIT
  63.         GOTO WELCOME
  64.     END IF
  65.  
  66. CHECKOPT:
  67.     AddListItem "CheckItemsIn", "ON"
  68.     AddListItem "CheckItemsIn", "ON"
  69. CHL1:
  70.     sz$ = UIStartDlg(CUIDLL$, CHECK, "FCheckDlgProc", APPHELP, HELPPROC$)
  71.     OPTPM$ = GetListItem("CheckItemsOut", 1)
  72.     OPTSAMPLE$ = GetListItem("CheckItemsOut", 2)
  73.  
  74.     IF sz$ = "CONTINUE" THEN
  75.       UIPop(1)
  76.     ELSEIF sz$ = "REACTIVATE" THEN
  77.       GOTO CHL1
  78.     ELSEIF sz$ = "BACK" THEN
  79.       UIPop 1
  80.       GOTO WELCOME
  81.     ELSE
  82.       GOSUB ASKQUIT
  83.       GOTO CHECKOPT
  84.     END IF
  85.  
  86.  
  87. GETPATH:
  88.     SetSymbolValue "EditTextIn", DEST$
  89.     SetSymbolValue "EditFocus", "END"
  90. GETPATHL1:
  91.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  92.     DEST$ = GetSymbolValue("EditTextOut")
  93.  
  94.     IF sz$ = "CONTINUE" THEN
  95.         IF IsDirWritable(DEST$) = 0 THEN
  96.             GOSUB BADPATH
  97.             GOTO GETPATHL1
  98.         END IF
  99.         UIPop 1
  100.     ELSEIF sz$ = "REACTIVATE" THEN
  101.         GOTO GETPATHL1
  102.     ELSEIF sz$ = "BACK" THEN
  103.         UIPop 1
  104.         GOTO CHECKOPT
  105.     ELSE
  106.         GOSUB ASKQUIT
  107.         GOTO GETPATH
  108.     END IF
  109.  
  110. SAMPLEDEST$ = DEST + "\SAMPLE"
  111.  
  112.     Install
  113.  
  114.  
  115. QUIT:
  116.     ON ERROR GOTO ERRQUIT
  117.  
  118.     IF ERR = 0 THEN
  119.         dlg% = EXITSUCCESS
  120.     ELSEIF ERR = STFQUIT THEN
  121.         dlg% = EXITQUIT
  122.     ELSE
  123.         dlg% = EXITFAILURE
  124.     END IF
  125. QUITL1:
  126.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  127.     IF sz$ = "REACTIVATE" THEN
  128.         GOTO QUITL1
  129.     END IF
  130.     UIPop 1
  131.  
  132.     END
  133.  
  134. ERRQUIT:
  135.     i% = DoMsgBox("Error in setup source files", "Setup", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  136.     END
  137.  
  138.  
  139.  
  140. BADPATH:
  141.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  142.     IF sz$ = "REACTIVATE" THEN
  143.         GOTO BADPATH
  144.     END IF
  145.     UIPop 1
  146.     RETURN
  147.  
  148.  
  149.  
  150. ASKQUIT:
  151.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  152.  
  153.     IF sz$ = "EXIT" THEN
  154.         UIPopAll
  155.         ERROR STFQUIT
  156.     ELSEIF sz$ = "REACTIVATE" THEN
  157.         GOTO ASKQUIT
  158.     ELSE
  159.         UIPop 1
  160.     END IF
  161.     RETURN
  162.  
  163.  
  164.  
  165. '**
  166. '** Purpose:
  167. '**     Builds the copy list and performs all installation operations.
  168. '** Arguments:
  169. '**     none.
  170. '** Returns:
  171. '**     none.
  172. '*************************************************************************
  173. SUB Install STATIC
  174.  
  175.     WinDir$ = GetWindowsDir()
  176.     WinSysDir$ = GetWindowsSysDir()
  177.     WinIni$ = MakePath(WinDir$, "WIN.INI")
  178.     SysIni$ = MakePath(WinDir$, "SYSTEM.INI")
  179.     AppName$ = "Ad Hoc"
  180.     AppExe$ = "ADHOC.EXE"
  181.     AppIni$ = "ADHOC.INI"
  182.  
  183.     CreateDir DEST$, cmoNone
  184.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  185.  
  186.     IF OPTSAMPLE$ = "ON" THEN
  187.       CreateDir SAMPLEDEST$, cmoNone
  188.       AddSectionFilesToCopyList "sample", SrcDir$, SAMPLEDEST$
  189.     END IF
  190.  
  191.     CopyFilesInCopyList
  192.  
  193.     ini$ = MakePath(DEST$, AppIni$)
  194.  
  195.     DDF$ = GetIniKeyString(WinIni$, "Extensions", "DDF")
  196.     IF DDF$ = "" THEN
  197.       CreateIniKeyValue WinIni$, "Extensions", "DDF", MakePath(DEST$, AppExe$ + " ^.DDF"), cmoNone
  198.     END IF
  199.  
  200.     CreateIniKeyValue SysIni$, "386Enh", "UniqueDOSPSP", "true", cmoNone
  201.  
  202.     IF OPTSAMPLE$ = "ON" THEN
  203.       CreateIniKeyValue ini$, AppName$, "OpenLastDB", "1", cmoNone
  204.       CreateIniKeyValue ini$, AppName$, "LastDir", SAMPLEDEST$, cmoNone
  205.       CreateIniKeyValue ini$, AppName$, "LastDB", "SAMPLE", cmoNone
  206.     END IF
  207.  
  208.     IF OPTPM$ = "ON" THEN
  209.       CreateProgmanGroup AppName$, "", cmoNone
  210.       ShowProgmanGroup  AppName$, 1, cmoNone
  211.       CreateProgmanItem AppName$, AppName$, MakePath(DEST$, AppExe$), "", cmoOverwrite
  212.     END IF
  213.    
  214. END SUB
  215.  
  216.  
  217.  
  218. '**
  219. '** Purpose:
  220. '**     Appends a file name to the end of a directory path,
  221. '**     inserting a backslash character as needed.
  222. '** Arguments:
  223. '**     szDir$  - full directory path (with optional ending "\")
  224. '**     szFile$ - filename to append to directory
  225. '** Returns:
  226. '**     Resulting fully qualified path name.
  227. '*************************************************************************
  228. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  229.     IF szDir$ = "" THEN
  230.         MakePath = szFile$
  231.     ELSEIF szFile$ = "" THEN
  232.         MakePath = szDir$
  233.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  234.         MakePath = szDir$ + szFile$
  235.     ELSE
  236.         MakePath = szDir$ + "\" + szFile$
  237.     END IF
  238. END FUNCTION
  239.  
  240.