home *** CD-ROM | disk | FTP | other *** search
/ Inside Multimedia 1995 February / IMM0295.ISO / wintv / install / wintv.ms_ / wintv.ms
Text File  |  1994-12-21  |  6KB  |  256 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  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 EXISTINFO     = 1300
  18. CONST GROUPNAME     = 1200
  19.  
  20. ''Bitmap ID
  21. CONST LOGO = 1
  22.  
  23. GLOBAL DEST$        ''Default destination directory.
  24. GLOBAL GROUP$       ''Default group name.
  25. GLOBAL WINDIR$      ''Windows system directory
  26.  
  27. DECLARE SUB Install
  28. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  29.  
  30.  
  31. INIT:
  32.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  33.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  34.  
  35.     SetBitmap CUIDLL$, LOGO
  36.     SetTitle "winTV digital Setup"
  37.  
  38.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  39.     IF szInf$ = "" THEN
  40.         szInf$ = GetSymbolValue("STF_CWDDIR") + "WINTV.INF"
  41.     END IF
  42.     ReadInfFile szInf$
  43.  
  44.     DEST$ = "C:\WINTV"
  45.     WIDTH% = GetScreenWidth()
  46.  
  47.     GROUP$ = "winTV"
  48.  
  49. WELCOME:
  50.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  51.     IF sz$ = "CONTINUE" THEN
  52.         UIPop 1
  53.     ELSE
  54.         GOSUB ASKQUIT
  55.         GOTO WELCOME
  56.     END IF
  57.  
  58. GETPATH:
  59.     SetSymbolValue "EditTextIn", DEST$
  60.     SetSymbolValue "EditFocus", "END"
  61. GETPATHL1:
  62.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  63.     DEST$ = GetSymbolValue("EditTextOut")
  64.  
  65.     IF sz$ = "CONTINUE" THEN
  66.         UIPop (1)
  67.     ELSEIF sz$ = "REACTIVATE" THEN
  68.         GOTO GETPATHL1
  69.     ELSEIF sz$ = "BACK" THEN
  70.         UIPop 1
  71.         GOTO WELCOME
  72.     ELSE
  73.         GOSUB ASKQUIT
  74.         GOTO GETPATH
  75.     END IF
  76.  
  77. WINTV_EXISTS:
  78.     exist% = DoesFileExist( MakePath(DEST$, "WINTV.EXE"), femExists )
  79.  
  80. WINTV_EXISTS1:
  81.     IF exist% = 1 THEN
  82.     sz$ = UIStartDlg(CUIDLL$, EXISTINFO, "FInfoDlgProc", APPHELP, HELPPROC$)
  83.  
  84.     IF sz$ = "CONTINUE" THEN
  85.         UIPop (1)
  86.     ELSEIF sz$ = "REACTIVATE" THEN
  87.         GOTO WINTV_EXISTS1
  88.     ELSEIF sz$ = "BACK" THEN
  89.         UIPop 1
  90.         GOTO GETPATH
  91.     ELSE
  92.         GOSUB ASKQUIT
  93.         GOTO WINTV_EXISTS1
  94.     END IF
  95.  
  96.     END IF
  97.  
  98. GETGROUP:
  99.     SetSymbolValue "EditTextIn", GROUP$
  100.     SetSymbolValue "EditFocus", "END"
  101. GETGROUP1:
  102.     sz$ = UIStartDlg(CUIDLL$, GROUPNAME, "FEditDlgProc", APPHELP, HELPPROC$)
  103.     GROUP$ = GetSymbolValue("EditTextOut")
  104.  
  105.     IF sz$ = "CONTINUE" THEN
  106.         UIPop(1)
  107.     ELSEIF sz$ = "REACTIVATE" THEN
  108.         GOTO GETGROUP1
  109.     ELSEIF sz$ = "BACK" THEN
  110.         UIPop 1
  111.         GOTO GETPATH
  112.     ELSE
  113.         GOSUB ASKQUIT
  114.         GOTO GETGROUP
  115.     END IF
  116.  
  117.     Install
  118.  
  119. QUIT:
  120.     ON ERROR GOTO ERRQUIT
  121.  
  122.     IF ERR = 0 THEN
  123.         dlg% = EXITSUCCESS
  124.     ELSEIF ERR = STFQUIT THEN
  125.         dlg% = EXITQUIT
  126.     ELSE
  127.         dlg% = EXITFAILURE
  128.     END IF
  129. QUITL1:
  130.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  131.     IF sz$ = "REACTIVATE" THEN
  132.         GOTO QUITL1
  133.     END IF
  134.     UIPop 1
  135.  
  136.     END
  137.  
  138. ERRQUIT:
  139.     i% = DoMsgBox("Quelldateien sind fehlerhaft!", "Setup Meldung", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  140.     END
  141.  
  142.  
  143. BADPATH:
  144.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  145.     IF sz$ = "REACTIVATE" THEN
  146.         GOTO BADPATH
  147.     END IF
  148.     UIPop 1
  149.     RETURN
  150.  
  151.  
  152.  
  153. ASKQUIT:
  154.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  155.  
  156.     IF sz$ = "EXIT" THEN
  157.         UIPopAll
  158.         ERROR STFQUIT
  159.     ELSEIF sz$ = "REACTIVATE" THEN
  160.         GOTO ASKQUIT
  161.     ELSE
  162.         UIPop 1
  163.     END IF
  164.     RETURN
  165.  
  166.  
  167.  
  168. '**
  169. '** Purpose:
  170. '**     Builds the copy list and performs all installation operations.
  171. '** Arguments:
  172. '**     none.
  173. '** Returns:
  174. '**     none.
  175. '*************************************************************************
  176. SUB Install STATIC
  177.  
  178.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  179.     WINDIR$ = GetWindowsDir()
  180.     CreateDir DEST$, cmoNone
  181.  
  182.     OpenLogFile MakePath(DEST$, "LOGDATEI.TXT"), 0
  183.     WriteToLogFile ""
  184.     WriteToLogFile "Es wurde folgendes Verzeichnis erstellt: " + DEST$
  185.     WriteToLogFile ""
  186.     WriteToLogFile "Alle Dateien sind in " + DEST$ + "installiert."
  187.     WriteToLogFile ""
  188.     WriteToLogFile "Eintrag in WIN.INI:"
  189.     WriteToLogFile "[WINTV]"
  190.     WriteToLogFile "WINTVDIR="+DEST$ 
  191.     WriteToLogFile ""
  192.     WriteToLogFile "*** Ende LOGDATEI.TXT ***"
  193.  
  194.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  195.     CopyFilesInCopyList
  196.  
  197.     CreateIniKeyValue DEST$ + "\wintv.ini", "WinTV", "Base", DEST$, cmoOverwrite 
  198.  
  199.     CreateProgmanGroup GROUP$, "", cmoVital
  200.     ShowProgmanGroup  GROUP$, 1, cmoVital
  201.  
  202.     App$ = MakePath( DEST$, "wintv.exe" ) 
  203.  
  204.     CreateIniKeyValue "win.ini", "WINTV", "WINTVDIR", DEST$, cmoOverwrite
  205.  
  206.     CreateProgmanItem GROUP$, "winTV", App$, "", cmoOverwrite
  207.  
  208.     App$ = MakePath( DEST$, "readme.wri" )
  209.  
  210.     CreateProgmanItem GROUP$, "Anleitung zu winTV", App$, "", cmoOverwrite
  211.  
  212.     App$ = MakePath( DEST$, "neues.wri" )
  213.  
  214.     CreateProgmanItem GROUP$, "Neues in winTV 2", App$, "", cmoOverwrite
  215.  
  216.     App$ = MakePath( DEST$, "videodat.wri" )
  217.  
  218.     CreateProgmanItem GROUP$, "winTV auf Videodat", App$, "", cmoOverwrite
  219.  
  220.     App$ = MakePath( DEST$, "btx.wri" )
  221.  
  222.     CreateProgmanItem GROUP$, "winTV auf BTX/Datex J", App$, "", cmoOverwrite
  223.  
  224.     App$ = MakePath( DEST$, "sat.wri" )
  225.  
  226.     CreateProgmanItem GROUP$, "Satelliten- Frequenzen", App$, "", cmoOverwrite
  227.  
  228.     CloseLogFile
  229.  
  230. END SUB
  231.  
  232.  
  233.  
  234. '**
  235. '** Purpose:
  236. '**     Appends a file name to the end of a directory path,
  237. '**     inserting a backslash character as needed.
  238. '** Arguments:
  239. '**     szDir$  - full directory path (with optional ending "\")
  240. '**     szFile$ - filename to append to directory
  241. '** Returns:
  242. '**     Resulting fully qualified path name.
  243. '*************************************************************************
  244. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  245.     IF szDir$ = "" THEN
  246.         MakePath = szFile$
  247.     ELSEIF szFile$ = "" THEN
  248.         MakePath = szDir$
  249.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  250.         MakePath = szDir$ + szFile$
  251.     ELSE
  252.         MakePath = szDir$ + "\" + szFile$
  253.     END IF
  254. END FUNCTION
  255.  
  256.