home *** CD-ROM | disk | FTP | other *** search
/ Travel Map of North America / Travel_Map_of_North_America_Softkey_1998_WIN31_WIN95.iso / SAMPLE1.MS_ / SAMPLE1.MS
Text File  |  1994-08-03  |  7KB  |  246 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  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 MODELESS      = 5000
  20. ''CONST MODELESS2     = 5100
  21. CONST TOOBIG        = 6300
  22. CONST WRONGVER      = 6350
  23. CONST BADPATH       = 6400
  24.  
  25. ''Bitmap ID
  26. CONST LOGO = 1
  27.  
  28. GLOBAL DEST$        ''Default destination directory.
  29. GLOBAL OPTCUR$      ''Option selection from option dialog.
  30.  
  31. DECLARE SUB Install
  32. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  33.  
  34.  
  35. INIT:
  36.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  37.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  38.  
  39.     SetBitmap CUIDLL$, LOGO
  40.     SetTitle "Key Travel Map for CD Installation"
  41.  
  42.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  43.     IF szInf$ = "" THEN
  44.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SAMPLE1.INF"
  45.     END IF
  46.     ReadInfFile szInf$
  47.     OPTCUR$ = "1"
  48.     DEST$ = "C:\TravCD"
  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.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  62.     IF sz$ = "CONTINUE" THEN
  63.         UIPop 1
  64.     ELSE
  65.         GOSUB ASKQUIT
  66.         GOTO WELCOME
  67.     END IF
  68.  
  69.  
  70. GETPATH:
  71.     SetSymbolValue "EditTextIn", DEST$
  72.     SetSymbolValue "EditFocus", "END"
  73. GETPATHL1:
  74.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  75.     DEST$ = GetSymbolValue("EditTextOut")
  76.  
  77.     IF sz$ = "CONTINUE" THEN
  78.         IF IsDirWritable(DEST$) = 0 THEN
  79.             GOSUB BADPATH
  80.             GOTO GETPATHL1
  81.         END IF
  82.         UIPop 1
  83.     ELSEIF sz$ = "REACTIVATE" THEN
  84.         GOTO GETPATHL1
  85.     ELSEIF sz$ = "BACK" THEN
  86.         UIPop 1
  87.         'GOTO OPTION
  88.         GOTO WELCOME
  89.     ELSE
  90.         GOSUB ASKQUIT
  91.         GOTO GETPATH
  92.     END IF
  93.  
  94.     majver% = GetWindowsMajorVersion()
  95.     minver% = GetWindowsMinorVersion()
  96.     IF majver < 3 THEN
  97.         GOTO WRONGVER
  98.     END IF
  99.     IF majver = 3 THEN
  100.         IF minver < 10 THEN
  101.            GOTO WRONGVER
  102.         END IF
  103.     END IF
  104.     DRV$ = "InstallDrive"
  105.     DRV$ = MID$(DEST$,1,1)
  106.     Sp& = GetFreeSpaceForDrive(DRV$)
  107.     IF Sp& < 6000000 THEN
  108.         GOTO TOOBIG
  109.     END IF
  110. ''    sz$ = UIStartDlg(CUIDLL$, MODELESS, "FModelessDlgProc", 0, "")
  111. ''    AddToBillboardList CUIDLL$, MODELESS, "FModelessDlgProc", 5000
  112. ''    AddToBillboardList CUIDLL$, MODELESS2, "FModelessDlgProc", 5000
  113.     Install
  114.  
  115.  
  116. QUIT:
  117.     ON ERROR GOTO ERRQUIT
  118.  
  119.     IF ERR = 0 THEN
  120.         dlg% = EXITSUCCESS
  121.     ELSEIF ERR = STFQUIT THEN
  122.         dlg% = EXITQUIT
  123.     ELSE
  124.         dlg% = EXITFAILURE
  125.     END IF
  126. QUITL1:
  127.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  128.     IF sz$ = "REACTIVATE" THEN
  129.         GOTO QUITL1
  130.     END IF
  131.     UIPop 1
  132.  
  133.     END
  134.  
  135. ERRQUIT:
  136.     i% = DoMsgBox("Setup sources were corrupted, call (310) 539-2803!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  137.     END
  138.  
  139.  
  140.  
  141. BADPATH:
  142.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  143.     IF sz$ = "REACTIVATE" THEN
  144.         GOTO BADPATH
  145.     END IF
  146.     UIPop 1
  147.     RETURN
  148.  
  149.  
  150.  
  151. ASKQUIT:
  152.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  153.  
  154.     IF sz$ = "EXIT" THEN
  155.         UIPopAll
  156.         ERROR STFQUIT
  157.     ELSEIF sz$ = "REACTIVATE" THEN
  158.         GOTO ASKQUIT
  159.     ELSE
  160.         UIPop 1
  161.     END IF
  162.     RETURN
  163.  
  164. TOOBIG:
  165.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  166.     sz$ = UIStartDlg(CUIDLL$, EXITFAILURE, "FInfo0DlgProc", 0, "")
  167.     END
  168.  
  169. WRONGVER:
  170.     sz$ = UIStartDlg(CUIDLL$, WRONGVER, "FInfo0DlgProc", 0, "")
  171.     sz$ = UIStartDlg(CUIDLL$, EXITFAILURE, "FInfo0DlgProc", 0, "")
  172.     END
  173.  
  174.  
  175. '**
  176. '** Purpose:
  177. '**     Builds the copy list and performs all installation operations.
  178. '** Arguments:
  179. '**     none.
  180. '** Returns:
  181. '**     none.
  182. '*************************************************************************
  183. SUB Install STATIC
  184.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  185.     CreateDir DEST$, cmoNone
  186.     CreateDir DEST$ + "\sessions", cmoNone
  187.  
  188.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  189.     WriteToLogFile ""
  190.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  191.     WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  192.     WriteToLogFile ""
  193.     WriteToLogFile "May have had to create the directory: " + DEST$
  194.     WriteToLogFile ""
  195.  
  196.     AddSectionFilesToCopyList "Files", SrcDir$ + "install", DEST$
  197.     AddSectionFilesToCopyList "Icons", SrcDir$ + "install" , DEST$ + "\icons"
  198.     AddSectionFilesToCopyList "Database", SrcDir$ + "install" , DEST$ +"\overlays"
  199.     j% = GetScreenWidth()
  200.     IF j = 640 THEN
  201.        AddSectionFilesToCopyList "Session", SrcDir$+ "install",DEST$ +"\sessions"
  202.     ENDIF
  203.     'AddSectionKeyFileToCopyList "Options", OPTCUR$, SrcDir$, DEST$
  204.     CopyFilesInCopyList
  205.  
  206.     ini$ = MakePath(DEST$, "TRAVMAP.INI")
  207.     CreateIniKeyValue "WIN.INI", "MSSetup Sample 1", "Option", OPTCUR$, cmoNone
  208.     CreateIniKeyValue ini$, "Section 1", "Key 1", "Value 1" , cmoNone
  209.     CreateIniKeyValue ini$, "Section 2", "Key 2", "Value 2" , cmoNone
  210.     CreateIniKeyValue ini$, "Section 3", "Key 3", "Value 3" , cmoNone
  211.     CreateProgmanGroup "Key Travel Map for CD", "", cmoNone
  212.     ShowProgmanGroup  "Key Travel Map for CD", 1, cmoNone
  213.     CreateProgmanItem "Key Travel Map for CD", "Key Travel Map for CD", MakePath(DEST$,"travmap.exe"), "", cmoOverwrite
  214.     CreateProgmanItem "Key Travel Map for CD", "Read Me", SrcDir$ +"manual\readme.wri", "", cmoOverwrite
  215.  
  216.     'AddDos5Help "YOURAPP", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
  217.  
  218.     CloseLogFile
  219.  
  220. END SUB
  221.  
  222.  
  223.  
  224. '**
  225. '** Purpose:
  226. '**     Appends a file name to the end of a directory path,
  227. '**     inserting a backslash character as needed.
  228. '** Arguments:
  229. '**     szDir$  - full directory path (with optional ending "\")
  230. '**     szFile$ - filename to append to directory
  231. '** Returns:
  232. '**     Resulting fully qualified path name.
  233. '*************************************************************************
  234. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  235.     IF szDir$ = "" THEN
  236.         MakePath = szFile$
  237.     ELSEIF szFile$ = "" THEN
  238.         MakePath = szDir$
  239.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  240.         MakePath = szDir$ + szFile$
  241.     ELSE
  242.         MakePath = szDir$ + "\" + szFile$
  243.     END IF
  244. END FUNCTION
  245.  
  246.