home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 1996 Counselor / COMPUSERVE.ISO / software / wintv / wintv.ms_ / wintv.ms
Encoding:
Text File  |  1995-07-06  |  6.3 KB  |  257 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 2.2", App$, "", cmoOverwrite
  207.  
  208.     App$ = MakePath( DEST$, "wintv.hlp" )
  209.  
  210.     CreateProgmanItem GROUP$, "Anleitung zu winTV", App$, "", cmoOverwrite
  211.  
  212.     App$ = MakePath( DEST$, "readme.wri" )
  213.     Ico$ = MakePath( DEST$, "mt66.ico" )
  214.  
  215.     CreateProgmanItem GROUP$, "Info zu winTV", App$, Ico$, cmoOverwrite
  216.  
  217.     App$ = MakePath( DEST$, "cserve.wri" )
  218.  
  219.     CreateProgmanItem GROUP$, "winTV auf Compuserve", App$, "", cmoOverwrite
  220.  
  221.     App$ = MakePath( DEST$, "internet.wri" )
  222.  
  223.     CreateProgmanItem GROUP$, "winTV im Internet", App$, "", cmoOverwrite
  224.  
  225.     App$ = MakePath( DEST$, "mbx.wri" )
  226.  
  227.     CreateProgmanItem GROUP$, "winTV aus der Mailbox", App$, "", cmoOverwrite
  228.  
  229.     CloseLogFile
  230.  
  231. END SUB
  232.  
  233.  
  234.  
  235. '**
  236. '** Purpose:
  237. '**     Appends a file name to the end of a directory path,
  238. '**     inserting a backslash character as needed.
  239. '** Arguments:
  240. '**     szDir$  - full directory path (with optional ending "\")
  241. '**     szFile$ - filename to append to directory
  242. '** Returns:
  243. '**     Resulting fully qualified path name.
  244. '*************************************************************************
  245. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  246.     IF szDir$ = "" THEN
  247.         MakePath = szFile$
  248.     ELSEIF szFile$ = "" THEN
  249.         MakePath = szDir$
  250.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  251.         MakePath = szDir$ + szFile$
  252.     ELSE
  253.         MakePath = szDir$ + "\" + szFile$
  254.     END IF
  255. END FUNCTION
  256.  
  257.