home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / mslang / mfcvbx / mfcvbx.mst < prev    next >
Text File  |  1994-06-04  |  10KB  |  309 lines

  1. '**************************************************************************
  2. '*                       MFCVBX + VBXWIZ Setup
  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 CUSTINST        = 6200
  15. CONST EXITFAILURE   = 400
  16. CONST EXITQUIT      = 600
  17. CONST EXITSUCCESS   = 700
  18. CONST OPTIONS       = 800
  19. CONST APPHELP       = 900
  20. CONST BADPATH       = 6400
  21. CONST LOCATION        = 102
  22.  
  23. ''Bitmap ID
  24. CONST LOGO = 1
  25.  
  26. GLOBAL DEST$        ''Default destination directory.
  27. GLOBAL INC_DEST$    ''Default destination for include files.
  28. GLOBAL LIB_DEST$    ''Default destination for library files.
  29. GLOBAL VBXWIZ_DEST$ ''Default destination for vbxwiz and help.
  30. GLOBAL DEMO_DEST$   ''Default destination for demo control(s).
  31. GLOBAL BMP_DEST$    ''Default home for the bitmaps.
  32. GLOBAL MSVC_HOME$   ''Home of MSVC for INI File.
  33. GLOBAL CDK_HOME$    ''Home for Control Development Kit.
  34. GLOBAL WIN_HOME$    ''Home of Windows for ctl3d.
  35. GLOBAL INST_MFCVBX$ ''Do we add entry to MSVC.ini?
  36. GLOBAL INST_DEMO$   ''Do we install the demo control(s).
  37. GLOBAL INST_VBXWIZ$ ''Do we install vbxwiz and help.
  38.  
  39. DECLARE SUB Install
  40. DECLARE SUB Cleanup
  41. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  42.  
  43.  
  44. INIT:
  45.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  46.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  47.  
  48.     SetBitmap CUIDLL$, LOGO
  49.     SetTitle "MFCVBX Custom Control Library Setup"
  50.  
  51.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  52.     IF szInf$ = "" THEN
  53.         szInf$ = GetSymbolValue("STF_CWDDIR") + "MFCVBX.INF"
  54.     END IF
  55.     ReadInfFile szInf$
  56.  
  57.     DEST$ = "C:\VBX"
  58.     VBXWIZ_DEST$ = DEST$
  59.     DEMO_DEST$ = DEST$ + "\DEMO"
  60.     INC_DEST$ = DEST$ + "\INCLUDE"
  61.     LIB_DEST$ = DEST$ + "\LIB"
  62.     BMP_DEST$ = DEST$ + "\BMP"
  63.     WIN_HOME$ = "C:\WINDOWS"
  64.     MSVC_HOME$ = "C:\MSVC"    
  65.     CDK_HOME$ = "C:\CDK"
  66.     INST_MFCVBX$ = "ON"
  67.     INST_DEMO$ = "ON"
  68.     INST_VBXWIZ$ = "ON"    
  69.     
  70.     WIN_HOME$ = GetWindowsDir()
  71.  
  72. '$IFDEF DEBUG
  73.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  74.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  75.     IF IsDriveValid(WinDrive$) = 0 THEN
  76.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  77.         GOTO QUIT
  78.     END IF
  79. '$ENDIF ''DEBUG
  80.  
  81. WELCOME:
  82.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  83.  
  84.     IF sz$ = "CONTINUE" THEN
  85.         UIPop 1
  86.     ELSE
  87.         GOSUB ASKQUIT
  88.         GOTO WELCOME
  89.     END IF
  90.  
  91. GP1:
  92.     SetSymbolValue "MFCVBX", INST_MFCVBX$
  93.     SetSymbolValue "VBXWIZ", INST_VBXWIZ$        
  94.     SetSymbolValue "SAMPLE", INST_DEMO$
  95. GETPATH:
  96.     SetSymbolValue "EditTextIn", DEST$
  97.     SetSymbolValue "MSVCPath", MSVC_HOME$
  98.     SetSymbolValue "CDKPath", CDK_HOME$
  99.     SetSymbolValue "EditFocus", "END"    
  100. GETPATHL1:
  101.     sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustDlgProc", APPHELP, HELPPROC$)
  102.     IF sz$ = "CONTINUE" THEN
  103.         IF IsDirWritable(DEST$) = 0 THEN
  104.             GOSUB BADPATH
  105.             GOTO GETPATHL1
  106.         END IF
  107.  
  108.         DEST$ = GetSymbolValue("EditTextOut")
  109.         MSVC_HOME$ = GetSymbolValue("MSVCPath")
  110.         CDK_HOME$ = GetSymbolValue("CDKPath")
  111.         INST_MFCVBX$ = GetSymbolValue("MFCVBX")
  112.         INST_VBXWIZ$ = GetSymbolValue("VBXWIZ")
  113.         INST_DEMO$ = GetSymbolValue("SAMPLE")
  114.                 
  115.         UIPop 1
  116.     ELSEIF sz$ = "REACTIVATE" THEN
  117.         GOTO GETPATHL1
  118.     ELSEIF sz$ = "BACK" THEN
  119.         UIPop 1
  120.         GOTO WELCOME
  121.     ELSEIF sz$ = "PATH" THEN
  122.         GOTO GETLOCATION        
  123.     ELSE
  124.         GOSUB ASKQUIT
  125.         GOTO GETPATH
  126.     END IF
  127.                   
  128.     DEMO_DEST$ = DEST$ + "\DEMO"
  129.     VBXWIZ_DEST$ = DEST$    
  130.     INC_DEST$ = DEST$ + "\INCLUDE"
  131.     LIB_DEST$ = DEST$ + "\LIB"
  132.     BMP_DEST$ = DEST$ + "\BMP"
  133.                   
  134.     Install
  135.     GOTO QUIT
  136.     
  137. GETLOCATION:   
  138.     sz$ = UIStartDlg(CUIDLL$, LOCATION, "DoLocations", APPHELP, HELPPROC$)
  139.     
  140.     if sz$ = "CONTINUE" THEN
  141.         DEST$ = GetSymbolValue("EditTextOut")
  142.         MSVC_HOME$ = GetSymbolValue("MSVCPath")
  143.         CDK_HOME$ = GetSymbolValue("CDKPath")
  144.         UIPop 1
  145.         GOTO GETPATH
  146.     else
  147.         UIPop 1
  148.         GOTO GETPATHL1
  149.     end if
  150.     
  151. QUIT:
  152.     ON ERROR GOTO ERRQUIT
  153.  
  154.     IF ERR = 0 THEN
  155.         dlg% = EXITSUCCESS
  156.     ELSEIF ERR = STFQUIT THEN
  157.         dlg% = EXITQUIT
  158.     ELSE
  159.         dlg% = EXITFAILURE
  160.     END IF
  161. QUITL1:
  162.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  163.     IF sz$ = "REACTIVATE" THEN
  164.         GOTO QUITL1
  165.     END IF
  166.     UIPop 1
  167.  
  168.     END
  169.  
  170. ERRQUIT:
  171.     i% = DoMsgBox("Setup sources were corrupted", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  172.     END
  173.  
  174. BADPATH:
  175.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  176.     IF sz$ = "REACTIVATE" THEN
  177.         GOTO BADPATH
  178.     END IF
  179.     UIPop 1
  180.     RETURN
  181.  
  182. ASKQUIT:
  183.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  184.  
  185.     IF sz$ = "EXIT" THEN
  186.         UIPopAll
  187.         ERROR STFQUIT
  188.     ELSEIF sz$ = "REACTIVATE" THEN
  189.         GOTO ASKQUIT
  190.     ELSE
  191.         UIPop 1
  192.     END IF
  193.     RETURN
  194.  
  195. '**
  196. '** Purpose:
  197. '**     Builds the copy list and performs all installation operations.
  198. '** Arguments:
  199. '**     none.
  200. '** Returns:
  201. '**     none.
  202. '*************************************************************************
  203. SUB Install STATIC
  204.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  205.     CreateDir DEST$, cmoNone
  206.  
  207.     OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  208.     WriteToLogFile ""
  209.     WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  210.     WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  211.     WriteToLogFile ""
  212.     WriteToLogFile "May have had to create the directory: " + DEST$
  213.     WriteToLogFile ""
  214.  
  215.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  216.     
  217.     if INST_VBXWIZ$ = "ON" THEN
  218.         AddSectionFilesToCopyList "VBXWIZ", SrcDir$, VBXWIZ_DEST$
  219.         AddSectionFilesToCopyList "UTILS", SrcDir$, WIN_HOME$
  220.     END IF
  221.         
  222.     IF INST_DEMO$ = "ON" THEN
  223.         AddSectionFilesToCopyList "DEMO", SrcDir$, DEMO_DEST$
  224.     END IF
  225.         
  226.     IF INST_MFCVBX$ = "ON" THEN
  227.         AddSectionFilesToCopyList "MFCVBX_LIB", SrcDir$, LIB_DEST$        
  228.         AddSectionFilesToCopyList "MFCVBX_INC", SrcDir$, INC_DEST$
  229.         AddSectionFilesToCopyList "MFCVBX_BMP", SrcDir$, BMP_DEST$
  230.     END IF
  231.     
  232.     CopyFilesInCopyList
  233.  
  234.     ini$ = MakePath(WIN_HOME$, "MFCVBX.INI")
  235.     RemoveFile ini$, cmoNone
  236.     CreateIniKeyValue ini$, "MFCVBX", "MFCVBXInclude", INC_DEST$ , cmoNone
  237.     CreateIniKeyValue ini$, "MFCVBX", "MFCVBXLib", LIB_DEST$ , cmoNone
  238.     CreateIniKeyValue ini$, "MFCVBX", "MFCVBXHome", DEST$, cmoNone
  239.     CreateIniKeyValue ini$, "MFCVBX", "DEFBitmaps", BMP_DEST$, cmoNone
  240.     
  241.     CreateIniKeyValue ini$, "MSVC", "MSVCInclude", MSVC_HOME$ + "\include", cmoNone
  242.     CreateIniKeyValue ini$, "MSVC", "MSVCLib", MSVC_HOME$ + "\lib", cmoNone
  243.     CreateIniKeyValue ini$, "MSVC", "MSVCHome", MSVC_HOME$, cmoNone
  244.      
  245.     CreateIniKeyValue ini$, "MFC", "MFCInclude", MSVC_HOME$ + "\mfc\include", cmoNone
  246.     CreateIniKeyValue ini$, "MFC", "MFCLib", MSVC_HOME$ + "\mfc\lib", cmoNone
  247.     CreateIniKeyValue ini$, "MFC", "MFCHome", MSVC_HOME$ + "\mfc", cmoNone
  248.     
  249.     CreateIniKeyValue ini$, "CDK", "CDKInclude", CDK_HOME$, cmoNone
  250.     CreateIniKeyValue ini$, "CDK", "CDKLib", CDK_HOME$, cmoNone
  251.     CreateIniKeyValue ini$, "CDK", "CDKHome", CDK_HOME$, cmoNone
  252.                         
  253.     if INST_VBXWIZ$ = "ON" THEN                        
  254.         CreateProgmanGroup "MFCVBX", "", cmoNone
  255.         ShowProgmanGroup  "MFCVBX", 1, cmoNone
  256.         CreateProgmanItem "MFCVBX", "VBX Wizard", "" + MakePath(DEST$,"vbx_wiz.exe"), "", cmoOverwrite
  257.         CreateProgmanItem "MFCVBX", "VBX Wizard Help", "winhelp.exe "+MakePath(DEST$,"vbx_wiz.hlp"), "", cmoOverwrite
  258.     END IF
  259.     
  260.     AddDos5Help "MFCVBX", "VBX Custom Control Library for VC++", cmoNone
  261.  
  262.     CloseLogFile
  263.  
  264.     Cleanup
  265. END SUB
  266.  
  267. '**
  268. '** Purpose:
  269. '**     Appends a file name to the end of a directory path,
  270. '**     inserting a backslash character as needed.
  271. '** Arguments:
  272. '**     szDir$  - full directory path (with optional ending "\")
  273. '**     szFile$ - filename to append to directory
  274. '** Returns:
  275. '**     Resulting fully qualified path name.
  276. '*************************************************************************
  277. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  278.     IF szDir$ = "" THEN
  279.         MakePath = szFile$
  280.     ELSEIF szFile$ = "" THEN
  281.         MakePath = szDir$
  282.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  283.         MakePath = szDir$ + szFile$
  284.     ELSE
  285.         MakePath = szDir$ + "\" + szFile$
  286.     END IF
  287. END FUNCTION
  288.  
  289. Sub Cleanup STATIC
  290.     RemoveFile ""+MakePath(Dest$, "logfile.out"), cmoNone
  291.     RemoveFile ""+MakePath(Dest$, "mfcvbx.mst"), cmoNone
  292.     RemoveFile ""+MakePath(Dest$, "mfcvbx.inf"), cmoNone
  293.     RemoveFile ""+MakePath(Dest$, "_mssetup.exe"), cmoNone
  294.     RemoveFile ""+MakePath(Dest$, "_mstest.exe"), cmoNone
  295.     RemoveFile ""+MakePath(Dest$, "setup.exe"), cmoNone
  296.     RemoveFile ""+MakePath(Dest$, "setup.lst"), cmoNone
  297.     RemoveFile ""+MakePath(Dest$, "setupapi.inc"), cmoNone
  298.     RemoveFile ""+MakePath(Dest$, "msdetect.inc"), cmoNone
  299.     RemoveFile ""+MakePath(Dest$, "msshared.inc"), cmoNone
  300.     RemoveFile ""+MakePath(Dest$, "msregdb.inc"), cmoNone
  301.     RemoveFile ""+MakePath(Dest$, "mscomstf.dll"), cmoNone
  302.     RemoveFile ""+MakePath(Dest$, "mscuistf.dll"), cmoNone
  303.     RemoveFile ""+MakePath(Dest$, "msdetstf.dll"), cmoNone
  304.     RemoveFile ""+MakePath(Dest$, "msinsstf.dll"), cmoNone
  305.     RemoveFile ""+MakePath(Dest$, "msshlstf.dll"), cmoNone
  306.     RemoveFile ""+MakePath(Dest$, "msuilstf.dll"), cmoNone
  307. End Sub
  308.  
  309.