home *** CD-ROM | disk | FTP | other *** search
/ Professional Soft Collection 1.02 / Professional Soft Collection 1.02.iso / communic / bitfax.300 / disk1 / bfsetup.ms_ / bfsetup.bin
Encoding:
Text File  |  1994-04-19  |  35.0 KB  |  1,129 lines

  1. '**************************************************************************
  2. '*                       Install scrip file
  3. '**************************************************************************
  4.  
  5. ''$DEFINE DEBUG  ''Define for script development/debugging
  6. '$INCLUDE 'setupapi.inc'
  7. '$INCLUDE 'msdetect.inc'
  8. '$INCLUDE 'bfsetstr.str'
  9.  
  10. CONST MB_YESNO = 4
  11. CONST MB_Q = 32
  12.  
  13. ''Dialog ID's    
  14. CONST WELCOME       = 100
  15. CONST ASKQUIT       = 200
  16. CONST DESTPATH      = 300
  17. CONST EXITFAILURE   = 400
  18. CONST EXITQUIT      =  90
  19. CONST EXITSUCCESS   = 700
  20. CONST OPTIONS       = 800
  21. CONST APPHELP       = 900
  22. CONST BADPATH       = 6400
  23. CONST IDD_ASK_DIRS     =  7001
  24. CONST IDD_SEND_ONLY    =  7002
  25. CONST IDD_COPY_FILES   =  7003
  26. CONST IDD_SETUP_USER   =  7004
  27. CONST IDD_SET_BFDRV    =  7005
  28. CONST IDD_SET_PROGMAN  =  7006
  29. CONST IDD_REMOVE_OLDV  =  7007
  30. CONST IDD_REGISTER_INF =  7008
  31. CONST IDD_VERSION_DETECT  = 7009
  32. CONST IDD_APPHELP_CNT_EX          = 7010
  33. CONST IDD_APPHELP_OK_CAN_EX       = 7011
  34. CONST IDD_APPHELP_OK_CAN_EX_NX_PV = 7012
  35. CONST IDD_INSTALLOPTION          = 7013
  36. CONST IDD_CUSTOMOPTION          = 7014
  37. CONST IDD_CALCNOTE          = 7015
  38. CONST IDD_OCR_OPTION          = 7016
  39. CONST IDD_DLL_COPY_OPTION      = 7017
  40. CONST IDD_PROMPT_REBOOT           = 7019
  41. CONST IDD_CONVERTDATABASENOTE = 7020
  42. CONST IDD_RECV = 7050
  43. CONST IDD_RECVLOG = 7051
  44. CONST IDD_SEND = 7052
  45. CONST IDD_SENDLOG = 7053
  46. CONST IDD_VIEW = 7054
  47. CONST IDD_SCANFAX = 7055
  48. CONST IDD_PRNTFAX = 7056
  49. CONST IDD_PHONEBOOK = 7057
  50. CONST IDD_BITCOM = 7070
  51. CONST IDD_VOICE = 7071
  52. CONST IDD_MACROS= 7058
  53. CONST IDD_INITCONV= 7040
  54.  
  55. ''Bitmap ID
  56. CONST LOGO = 1
  57.  
  58. GLOBAL PRGDEST$        ''Default destination directory.
  59. GLOBAL OPTCUR$         ''Option selection from option dialog.
  60. GLOBAL CUIDLL$
  61. GLOBAL szInf$
  62. GLOBAL szOldVersion$
  63. GLOBAL szTemp$
  64. GLOBAL szLogFile$
  65. GLOBAL szStar$
  66. GLOBAL OPTION_BITFAX$
  67. GLOBAL OPTION_BITCOM$
  68. GLOBAL OPTION_OCR$
  69. GLOBAL OPTION_SCANFAX$
  70. GLOBAL OPTION_VOICE$
  71. GLOBAL DllCopyOption$
  72. GLOBAL QueryPBAPIFile%
  73.  
  74. ''Declare function prototype in DLL mscuistf.dll.
  75. DECLARE SUB BFMaxWindow LIB "mscuistf.dll" (hMainWnd%, hInstance%) 
  76. DECLARE SUB GetInstallInfo LIB "mscuistf.dll" (sInf$, sTemp$) 
  77. DECLARE SUB AskDirsDialogBox LIB "mscuistf.dll" ()
  78. DECLARE SUB BFUpdateIniFile LIB "mscuistf.dll" ()
  79. DECLARE SUB BFRegisterDatabase LIB "mscuistf.dll" ()
  80. DECLARE SUB SetBFDRVDialogBox LIB "mscuistf.dll" (hMainWnd%, dwmsg%)
  81. DECLARE SUB BFConvertDataBase LIB "mscuistf.dll" ()
  82. DECLARE SUB BFDetectModem LIB "mscuistf.dll" ()
  83. DECLARE SUB BFRegister LIB "mscuistf.dll" ()
  84. DECLARE SUB BFQuit LIB "mscuistf.dll" ()
  85. DECLARE SUB BFLoadConvertDll LIB "mscuistf.dll" ()
  86.  
  87. ''Declare function prototype in this scrip file.
  88. DECLARE SUB CopyPgmSysFiles
  89. DECLARE SUB TotalSizeOfFiles
  90. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  91. DECLARE FUNCTION MakeLong (szString$) AS LONG
  92.  
  93. '$IFDEF DEBUG
  94.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  95.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  96.     IF IsDriveValid(WinDrive$) = 0 THEN
  97.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  98.         GOTO QUIT
  99.     END IF
  100. '$ENDIF ''DEBUG
  101.  
  102.     WINDIR$   = GetWindowsDir
  103.     szLogFile$ = MakePath(WINDIR$, "bitfax.log")
  104.     OpenLogfile szLogFile$, 0
  105.     szSpace$ = " "
  106.     szStar$ = "***********************************************"
  107.  
  108.     WriteToLogFile szSpace$
  109.     WriteToLogFile szStar$
  110.     WriteToLogFile "INITIALIZATION"
  111.     WriteToLogFile szStar$
  112.  
  113. STARTHERE:
  114.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  115.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  116.     BFMaxWindow HwndFrame(), HinstFrame()
  117.     SetBitmap CUIDLL$, LOGO
  118.  
  119.     WriteToLogFile "Set background bitmap"
  120.  
  121. GETINSINF:
  122.     szSrcPath$ = GetSymbolValue("STF_SRCDIR")  
  123.     szTemp$ = GetSymbolValue("STF_CWDDIR") 
  124.     GetInstallInfo  szSrcPath$, szTemp$
  125.     PRGDEST$ = GetSymbolValue("BF_DESTDIR")
  126.     WINDOWTITLE$ = GetSymbolValue("BF_WINDOWTITLE")
  127.  
  128.  
  129. INIT:
  130.     OPTION_BITFAX$  = "N"
  131.     OPTION_BITCOM$  = "N"
  132.     OPTION_OCR$        = "N"
  133.     OPTION_SCANFAX$ = "N"
  134.     OPTION_VOICE$   = "N"
  135.  
  136.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  137.     IF szInf$ = "" THEN
  138.         szInf$ = GetSymbolValue("STF_CWDDIR") + "BFSETUP.INF"
  139.     END IF
  140.  
  141.     WriteToLogFile "Get install initializing information"
  142.  
  143.     WriteToLogFile szSpace$
  144.     WriteToLogFile szStar$
  145.     WriteToLogFile "WELCOM DIALOGBOX"
  146.     WriteToLogFile szStar$
  147.  
  148. WELCOME:
  149.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "WelcomDlgProc", IDD_APPHELP_CNT_EX, HELPPROC$)
  150.     IF sz$ = "CONTINUE" THEN
  151.         UIPop 1
  152.         WriteToLogFile "Select <Continue> button"
  153.     ELSE
  154.         WriteToLogFile "Select <Exit> button"
  155.         GOSUB ASKQUIT
  156.         GOTO WELCOME
  157.     END IF
  158.  
  159.  
  160. DETECTVERSION:
  161.     szOldVersion$ = GetSymbolValue("BF_OLDVERSION")
  162.     IF szOldVersion$ = "YES" THEN
  163.  
  164.        WriteToLogFile szSpace$
  165.        WriteToLogFile szStar$
  166.        WriteToLogFile "DETECT VERSION DIALOGBOX"
  167.        WriteToLogFile szStar$
  168.  
  169.        sz$ = UIStartDlg(CUIDLL$, IDD_VERSION_DETECT, "VersionDetectDlgProc", IDD_APPHELP_CNT_EX, HELPPROC$)
  170.        IF sz$ = "EXIT" THEN
  171.            WriteToLogFile "Select <Exit> button"
  172.            GOSUB ASKQUIT
  173.            GOTO DETECTVERSION
  174.        END IF
  175.        UIPop 1
  176.  
  177.        WriteToLogFile "Select <Continue> button"
  178.  
  179. '       BFDeleteOldVersion
  180. '       WriteToLogFile "Delete original version program"
  181.  
  182.     END IF
  183.  
  184. REGISTER:
  185.  
  186.     WriteToLogFile szSpace$
  187.     WriteToLogFile szStar$
  188.     WriteToLogFile "DETECT VERSION DIALOGBOX"
  189.     WriteToLogFile szStar$
  190.  
  191.     sz$ = UIStartDlg(CUIDLL$, IDD_REGISTER_INF, "RegisterDlgProc", IDD_APPHELP_OK_CAN_EX, HELPPROC$)
  192.     IF sz$ = "EXIT" THEN
  193.         WriteToLogFile "Select <Exit> button"
  194.         GOSUB ASKQUIT
  195.         GOTO REGISTER
  196.     ELSE
  197.         UIPop 1
  198.         WriteToLogFile "Select <OK> button"
  199.     END IF
  200.  
  201. CALCSPACE:
  202.     WriteToLogFile szSpace$
  203.     WriteToLogFile szStar$
  204.     WriteToLogFile "CALCULATE DISK SPACE"
  205.     WriteToLogFile szStar$
  206. ''' The sections and entries in the file BFSETUP.INF are following: 
  207. '''    [BitFax]
  208. '''      "PgmFile" = ........
  209. '''      "SysFile" = ........
  210. '''    [BitCom]
  211. '''      "PgmFile" = ........
  212. '''      "SysFile" = ........
  213. '''    [OCR]
  214. '''      "PgmFile" = ........
  215. '''      "SysFile" = ........
  216. '''    [ScanFax]
  217. '''      "PgmFile" = ........
  218. '''      "SysFile" = ........
  219. '''    [Voice]
  220. '''      "PgmFile" = ........
  221. '''      "SysFile" = ........
  222.  
  223.     PreCur% = ShowWaitCursor()
  224.  
  225.     sz$ = UIStartDlg(CUIDLL$, IDD_CALCNOTE, "CalculatingNoteDlgProc", 0, "")
  226.     ReadInfFile szInf$
  227.  
  228.     WriteToLogFile "Read bfsetup.inf file"
  229.  
  230.     OPTION_BITFAX$  = "Y"
  231.     ClearCopyList
  232.     AddSectionFilesToCopyList "BitFaxPgmFile", szSrcPath$, "C:\WXF~~~"
  233.     StillNeed& = GetCopyListCost("","SPACE","")
  234.     PgmCost& = 0 
  235.     FOR i% = 1 TO 26 STEP 1
  236.       PgmCost& = PgmCost& + VAL(GetListItem("SPACE", i%))
  237.     NEXT i%
  238.     SetSymbolValue  "BitFaxPgmNeed",  STR$(PgmCost& / 1024) 
  239.     FullInstSpace& = PgmCost& / 1024
  240.     MiniInstSpace& = PgmCost& / 1024
  241.     WriteToLogFile "Calculate the size of BitFax program files"
  242.  
  243.     QuerySection% = DoesIniSectionExist(szInf$, "BitComPgmFile")
  244.     IF QuerySection% = 1 THEN
  245.       OPTION_BITCOM$  = "Y"
  246.       ClearCopyList
  247.       AddSectionFilesToCopyList "BitComPgmFile", szSrcPath$, "C:\WXF~~~"
  248.       StillNeed& = GetCopyListCost("","SPACE","")
  249.       PgmCost& = 0 
  250.       FOR i% = 1 TO 26 STEP 1
  251.         PgmCost& = PgmCost& + VAL(GetListItem("SPACE", i%))
  252.       NEXT i%
  253.       SetSymbolValue  "BitComPgmNeed",  STR$(PgmCost& / 1024) 
  254.       FullInstSpace& = FullInstSpace& + PgmCost& / 1024
  255.       WriteToLogFile "Calculate the size of BitCom program files"
  256.     ELSE
  257.       OPTION_BITCOM$  = "N"
  258.       SetSymbolValue  "BitComPgmNeed",  "0"
  259.     END IF
  260.  
  261.     QuerySection% = DoesIniSectionExist(szInf$, "OCRW4File")
  262.     IF QuerySection% = 1 THEN
  263.       ClearCopyList
  264.       PgmCost& = 0 
  265.       FOR i% = 1 TO 70 STEP 1
  266.           j$ = LTRIM$(STR$( i% ))
  267.           k$ = CHR$(ASC(""""))+LTRIM$(STR$( i% ))+CHR$(ASC(""""))
  268.       s$ = "OCRW4File"
  269.       QueryIniKey% = DoesIniKeyExist(szInf$,s$,k$)
  270.           IF QueryIniKey% = 1 THEN
  271.         ClearCopyList
  272.             AddSectionKeyFileToCopyList "OCRW4File", j$, szSrcPath$, "C:\WXF~~~"
  273.             StillNeed& = GetCopyListCost("","SPACE","")
  274.             OCRW4Cost$ = STR$(VAL(GetListItem("SPACE", 3)) / 1024)
  275.         PgmCost& = PgmCost& + VAL(GetListItem("SPACE", 3)) / 1024
  276.         AddListItem "OCRW4NAME",   j$
  277.         AddListItem "OCRW4SPACE",  OCRW4Cost$
  278.         AddListItem "OCRW4SELECTFLAG", "N"
  279.         AddListItem "OCRW4SELECT", "N"
  280.       ENDIF
  281.       NEXT i%
  282.       SetSymbolValue  "OCRWNeed",  STR$(PgmCost&) 
  283.     ELSE
  284.       SetSymbolValue  "OCRWNeed",  "0"
  285.     END IF
  286.  
  287.     QuerySection% = DoesIniSectionExist(szInf$, "OCRPgmFile")
  288.     IF QuerySection% = 1 THEN
  289.       OPTION_OCR$ = "Y"
  290.       ClearCopyList
  291.       AddSectionFilesToCopyList "OCRPgmFile", szSrcPath$, "C:\WXF~~~"
  292.       StillNeed& = GetCopyListCost("","SPACE","")
  293.       PgmCost& = 0 
  294.       FOR i% = 1 TO 26 STEP 1
  295.         PgmCost& = PgmCost& + VAL(GetListItem("SPACE", i%))
  296.       NEXT i%
  297.       SetSymbolValue  "OCRPgmNeed",  STR$(PgmCost& / 1024) 
  298.       FullInstSpace& = FullInstSpace& + PgmCost& / 1024
  299.       WriteToLogFile "Calculate the size of OCR program files"
  300.     ELSE
  301.       OPTION_OCR$ = "N"
  302.       SetSymbolValue  "OCRPgmNeed",  "0"
  303.     END IF
  304.  
  305.     QuerySection% = DoesIniSectionExist(szInf$, "ScanFaxPgmFile")
  306.     IF QuerySection% = 1 THEN
  307.       OPTION_SCANFAX$ = "Y"
  308.       ClearCopyList
  309.       AddSectionFilesToCopyList "ScanFaxPgmFile", szSrcPath$, "C:\WXF~~~"
  310.       StillNeed& = GetCopyListCost("","SPACE","")
  311.       PgmCost& = 0 
  312.       FOR i% = 1 TO 26 STEP 1
  313.         PgmCost& = PgmCost& + VAL(GetListItem("SPACE", i%))
  314.       NEXT i%
  315.       SetSymbolValue  "ScanFaxPgmNeed",  STR$(PgmCost& / 1024) 
  316.       FullInstSpace& = FullInstSpace& + PgmCost& / 1024
  317.     ELSE
  318.       OPTION_SCANFAX$ = "N"
  319.       SetSymbolValue  "ScanFaxPgmNeed",  "0"
  320.     END IF
  321.  
  322.     QuerySection% = DoesIniSectionExist(szInf$, "VoicePgmFile")
  323.     IF QuerySection% = 1 THEN
  324.       OPTION_VOICE$   = "Y"
  325.       ClearCopyList
  326.       AddSectionFilesToCopyList "VoicePgmFile", szSrcPath$, "C:\WXF~~~"
  327.       StillNeed& = GetCopyListCost("","SPACE","")
  328.       PgmCost& = 0 
  329.       FOR i% = 1 TO 26 STEP 1
  330.         PgmCost& = PgmCost& + VAL(GetListItem("SPACE", i%))
  331.       NEXT i%
  332.       SetSymbolValue  "VoicePgmNeed",  STR$(PgmCost& / 1024) 
  333.       FullInstSpace& = FullInstSpace& + PgmCost& / 1024
  334.       WriteToLogFile "Calculate the size of Voice program files"
  335.     ELSE
  336.       OPTION_VOICE$   = "N"
  337.       SetSymbolValue  "VoicePgmNeed",  "0"
  338.     END IF
  339.  
  340.     ClearCopyList
  341.     AddSectionFilesToCopyList "BitFaxSysFile", szSrcPath$, "C:\WXF~~~"
  342.     StillNeed& = GetCopyListCost("","SPACE","")
  343.     SysCost& = 0 
  344.     FOR i% = 1 TO 26 STEP 1
  345.       SysCost& = SysCost& + VAL(GetListItem("SPACE", i%))
  346.     NEXT i%
  347.     SetSymbolValue  "BitFaxSysNeed",  STR$(SysCost& / 1024) 
  348.     FullInstSpace& = FullInstSpace& + SysCost& / 1024
  349.     MiniInstSpace& = MiniInstSpace& + SysCost& / 1024
  350.     WriteToLogFile "Calculate the size of BitFax .DLL files"
  351.  
  352.     QuerySection% = DoesIniSectionExist(szInf$, "BitComSysFile")
  353.     IF QuerySection% = 1 THEN
  354.         ClearCopyList
  355.         AddSectionFilesToCopyList "BitComSysFile", szSrcPath$, "C:\WXF~~~"
  356.         StillNeed& = GetCopyListCost("","SPACE","")
  357.         SysCost& = 0 
  358.         FOR i% = 1 TO 26 STEP 1
  359.           SysCost& = SysCost& + VAL(GetListItem("SPACE", i%))
  360.         NEXT i%
  361.         SetSymbolValue  "BitComSysNeed",  STR$(SysCost& / 1024) 
  362.         FullInstSpace& = FullInstSpace& + SysCost& / 1024
  363.         WriteToLogFile "Calculate the size of BitCom .DLL files"
  364.     ELSE
  365.     SetSymbolValue  "BitComSysNeed",  "0"
  366.     END IF
  367.  
  368.     QuerySection% = DoesIniSectionExist(szInf$, "OCRSysFile")
  369.     IF QuerySection% = 1 THEN
  370.       ClearCopyList
  371.       AddSectionFilesToCopyList "OCRSysFile", szSrcPath$, "C:\WXF~~~"
  372.       StillNeed& = GetCopyListCost("","SPACE","")
  373.       SysCost& = 0 
  374.       FOR i% = 1 TO 26 STEP 1
  375.         SysCost& = SysCost& + VAL(GetListItem("SPACE", i%))
  376.       NEXT i%
  377.       SetSymbolValue  "OCRSysNeed",  STR$(SysCost& / 1024) 
  378.       FullInstSpace& = FullInstSpace& + SysCost& / 1024
  379.       WriteToLogFile "Calculate the size of OCR .DLL files"
  380.     ELSE
  381.     SetSymbolValue  "OCRSysNeed",  "0"
  382.     END IF
  383.  
  384.     QuerySection% = DoesIniSectionExist(szInf$, "ScanFaxSysFile")
  385.     IF QuerySection% = 1 THEN
  386.       ClearCopyList
  387.       AddSectionFilesToCopyList "ScanFaxSysFile", szSrcPath$, "C:\WXF~~~"
  388.       StillNeed& = GetCopyListCost("","SPACE","")
  389.       SysCost& = 0 
  390.       FOR i% = 1 TO 26 STEP 1
  391.         SysCost& = SysCost& + VAL(GetListItem("SPACE", i%))
  392.       NEXT i%
  393.       SetSymbolValue  "ScanFaxSysNeed",  STR$(SysCost& / 1024) 
  394.       FullInstSpace& = FullInstSpace& + SysCost& / 1024
  395.     ELSE
  396.       SetSymbolValue  "ScanFaxSysNeed",  "0"
  397.     END IF
  398.  
  399.     QuerySection% = DoesIniSectionExist(szInf$, "VoiceSysFile")
  400.     IF QuerySection% = 1 THEN
  401.       ClearCopyList
  402.       AddSectionFilesToCopyList "VoiceSysFile", szSrcPath$, "C:\WXF~~~"
  403.       StillNeed& = GetCopyListCost("","SPACE","")
  404.       SysCost& = 0 
  405.       FOR i% = 1 TO 26 STEP 1
  406.         SysCost& = SysCost& + VAL(GetListItem("SPACE", i%))
  407.       NEXT i%
  408.       SetSymbolValue  "VoiceSysNeed",  STR$(SysCost& / 1024) 
  409.       FullInstSpace& = FullInstSpace& + SysCost& / 1024
  410.       WriteToLogFile "Calculate the size of Voice .DLL files"
  411.     ELSE
  412.       SetSymbolValue  "VoiceSysNeed",  "0"
  413.     END IF
  414.  
  415.     SetSymbolValue  "FullInstSpace",  STR$(FullInstSpace&) 
  416.     SetSymbolValue  "MiniInstSpace",  STR$(MiniInstSpace&) 
  417.  
  418.     ClearCopyList
  419.  
  420. '$IFDEF JAP
  421.     Drives$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  422.     FOR i% = 1 TO 26 STEP 1
  423.       Drive$ = MID$(Drives$, i%, 1)
  424.       free& = GetFreeSpaceForDrive(Drive$)
  425.       IF free& = 0 THEN
  426.          AddListItem  "SPACEAVL",  "0"
  427.       ELSE
  428.          AddListItem  "SPACEAVL",  STR$(free& / 1024)
  429.       END IF
  430.     NEXT i%
  431. '$ELSE
  432.     AddListItem  "SPACEAVL",  "0"
  433.     AddListItem  "SPACEAVL",  "0"
  434.     Drives$ = "CDEFGHIJKLMNOPQRSTUVWXYZ"
  435.     FOR i% = 1 TO 24 STEP 1
  436.       Drive$ = MID$(Drives$, i%, 1)
  437.       free& = GetFreeSpaceForDrive(Drive$)
  438.       IF free& = 0 THEN
  439.          AddListItem  "SPACEAVL",  "0"
  440.       ELSE
  441.          AddListItem  "SPACEAVL",  STR$(free& / 1024)
  442.       END IF
  443.     NEXT i%
  444. '$ENDIF
  445.     UIPop 1
  446.  
  447.     RestoreCursor PreCur%
  448.  
  449. DLLCOPYOPTION:
  450.  
  451. ''   WriteToLogFile szSpace$
  452. ''   WriteToLogFile szStar$
  453. ''   WriteToLogFile "DLL COPY OPTION DIALOGBOX"
  454. ''   WriteToLogFile szStar$
  455.  
  456. ''   sz$ = UIStartDlg(CUIDLL$, IDD_DLL_COPY_OPTION, "DllCopyOptionDlgProc", 0, "")
  457. ''   UIPop 1
  458. ''   DllCopyOption$ = GetSymbolValue("DLLCOPYOPTION")
  459.  
  460.     DllCopyOption$ = "SYSTEM"
  461.  
  462.     AddListItem  "SPACENEED",  "1"
  463.     AddListItem  "SPACENEED",  "2"
  464.  
  465. INSTALLOPTION:
  466.  
  467.   WriteToLogFile szSpace$
  468.   WriteToLogFile szStar$
  469.   WriteToLogFile "INSTALL OPTION DIALOGBOX"
  470.   WriteToLogFile szStar$
  471.  
  472.   IF OPTION_BITFAX$  = "Y" THEN
  473.     SetSymbolValue  "OPTION_BITFAX",  "Y"
  474.   ELSE
  475.     SetSymbolValue  "OPTION_BITFAX",  "N"
  476.   ENDIF
  477.  
  478.   IF OPTION_BITCOM$  = "Y" THEN
  479.     SetSymbolValue  "OPTION_BITCOM",  "Y"
  480.   ELSE
  481.     SetSymbolValue  "OPTION_BITCOM",  "N"
  482.   ENDIF
  483.  
  484.   IF OPTION_OCR$    = "Y" THEN
  485.     SetSymbolValue  "OPTION_OCR",  "Y"
  486.   ELSE
  487.     SetSymbolValue  "OPTION_OCR",  "N"
  488.   ENDIF
  489.  
  490.   IF OPTION_SCANFAX$ = "Y" THEN
  491.     SetSymbolValue  "OPTION_SCANFAX",  "Y"
  492.   ELSE
  493.     SetSymbolValue  "OPTION_SCANFAX",  "N"
  494.   ENDIF
  495.  
  496.   IF OPTION_VOICE$   = "Y" THEN
  497.     SetSymbolValue  "OPTION_VOICE",  "Y"
  498.   ELSE
  499.     SetSymbolValue  "OPTION_VOICE",  "N"
  500.   ENDIF
  501.  
  502.   sz$ = UIStartDlg(CUIDLL$, IDD_INSTALLOPTION, "InstallOptionDlgProc", 0, "")
  503.   IF sz$ = "EXIT" THEN
  504.  
  505.     WriteToLogFile "Select <Exit> button"
  506.  
  507.     GOSUB ASKQUIT
  508.     GOTO INSTALLOPTION
  509.   ELSEIF sz$ = "FULL" THEN
  510.  
  511.     WriteToLogFile "Select <Full Install> button"
  512.  
  513.     UIPop 1
  514.  
  515.     TotalSizeOfFiles
  516.  
  517.     SetSymbolValue  "INSTALLOPTION",  "FULL"
  518.     GOTO ASKDIRS
  519.   ELSEIF sz$ = "MINI" THEN
  520.  
  521.     WriteToLogFile "Select <Minimum Install> button"
  522.  
  523.     UIPop 1
  524.  
  525.     PgmCost& =  VAL(GetSymbolValue("BitFaxPgmNeed"))
  526.     SysCost& =  VAL(GetSymbolValue("BitFaxSysNeed"))
  527.     ReplaceListItem  "SPACENEED", 1, STR$(PgmCost&) 
  528.     ReplaceListItem  "SPACENEED", 2, STR$(SysCost&)
  529.  
  530.     SetSymbolValue  "INSTALLOPTION",  "MINI"
  531.     GOTO ASKDIRS
  532.   ELSEIF sz$ = "CUST" THEN
  533.  
  534.     WriteToLogFile "Select <Custom Install> button"
  535.  
  536.     TotalSizeOfFiles
  537.  
  538.     UIPop 1
  539.     GOTO CUSTOMOPTION
  540.   ELSE
  541.  
  542.     WriteToLogFile "Select <Exit> button"
  543.  
  544.     UIPop 1
  545.     GOSUB ASKQUIT
  546.     GOTO INSTALLOPTION
  547.   ENDIF
  548.  
  549. CUSTOMOPTION:
  550.  
  551.   WriteToLogFile szSpace$
  552.   WriteToLogFile szStar$
  553.   WriteToLogFile "CUSTOM OPTION DIALOGBOX"
  554.   WriteToLogFile szStar$
  555.  
  556.   sz$ = UIStartDlg(CUIDLL$, IDD_CUSTOMOPTION, "CustomOptionDlgProc", 0, "")
  557.   IF sz$ = "EXIT" THEN
  558.  
  559.     WriteToLogFile "Select <Exit> button"
  560.  
  561.     GOSUB ASKQUIT
  562.     GOTO CUSTOMOPTION
  563.  
  564.   ELSEIF sz$ = "OK" THEN
  565.  
  566.     WriteToLogFile "Select <OK> button"
  567.     PRGDEST$ = GetSymbolValue("BF_DESTDIR")
  568.     IF IsDirWritable(PRGDEST$) = 0 THEN
  569.         GOSUB BADPATH
  570.         GOTO CUSTOMOPTION
  571.     END IF
  572.     UIPop 1
  573.     PRGDEST$ = GetSymbolValue("BF_DESTDIR")
  574.     OPTION_BITFAX$   = GetSymbolValue("BITFAX_CHECKED")
  575.     OPTION_BITCOM$   = GetSymbolValue("BITCOM_CHECKED")
  576.     OPTION_OCR$      = GetSymbolValue("OCR_CHECKED")
  577.     OPTION_SCANFAX$  = GetSymbolValue("SCANFAX_CHECKED")
  578.     OPTION_VOICE$    = GetSymbolValue("VOICE_CHECKED")
  579.     GOTO COPYFILES
  580.   ELSEIF sz$ = "SELECT" THEN
  581.  
  582.     WriteToLogFile "Select <Option> button"
  583.  
  584.  
  585.     WriteToLogFile szSpace$
  586.     WriteToLogFile szStar$
  587.     WriteToLogFile "OCR OPTION DIALOGBOX"
  588.     WriteToLogFile szStar$
  589.  
  590.     sz1$ = UIStartDlg(CUIDLL$, IDD_OCR_OPTION, "OCROptionDlgProc", 0, "")
  591.     UIPop 1
  592.     IF sz1$ = "OK" THEN
  593.       WriteToLogFile "Select <OK> button"
  594.       GOTO CUSTOMOPTION
  595.     ELSE
  596.       WriteToLogFile "Select <Cancel> button"
  597.       GOTO CUSTOMOPTION
  598.     ENDIF
  599.   ELSEIF sz$ = "BACK" THEN
  600.  
  601.     WriteToLogFile "Select <Back> button"
  602.  
  603.     UIPop 1
  604.     GOTO INSTALLOPTION
  605.   ELSE
  606.     GOTO CUSTOMOPTION
  607.   ENDIF
  608.  
  609.  
  610. ASKDIRS:
  611.  
  612.     WriteToLogFile szSpace$
  613.     WriteToLogFile szStar$
  614.     WriteToLogFile "ASK PROGRAM DIRECTORY DIALOGBOX"
  615.     WriteToLogFile szStar$
  616.  
  617.     sz$ = UIStartDlg(CUIDLL$, IDD_ASK_DIRS, "AskDirsDlgProc", 0, "")
  618.     PRGDEST$ = GetSymbolValue("BF_DESTDIR")
  619.  
  620.     IF sz$ = "OK" THEN
  621.         WriteToLogFile "Select <OK> button"
  622.         IF IsDirWritable(PRGDEST$) = 0 THEN
  623.             GOSUB BADPATH
  624.             GOTO ASKDIRS
  625.         END IF
  626.  
  627.         sz$ = GetSymbolValue("INSTALLOPTION")
  628.     IF sz$ = "MINI" THEN
  629.           OPTION_BITFAX$  = "Y"
  630.           OPTION_BITCOM$  = "N"
  631.           OPTION_OCR$     = "N"
  632.           OPTION_SCANFAX$ = "N"
  633.           OPTION_VOICE$   = "N"
  634.     ENDIF
  635.  
  636.         UIPop 1
  637.     ELSEIF sz$ = "CANCEL" THEN
  638.         WriteToLogFile "Select <Cancel> button"
  639.         IF IsDirWritable(PRGDEST$) = 0 THEN
  640.             GOSUB BADPATH
  641.             GOTO ASKDIRS
  642.         END IF
  643.         UIPop 1
  644.     ELSEIF sz$ = "EXIT" THEN
  645.         WriteToLogFile "Select <Exit> button"
  646.         GOSUB ASKQUIT
  647.         GOTO ASKDIRS
  648.     ELSE
  649.         WriteToLogFile "Select <Back> button"
  650.         UIPop 1
  651.         GOTO INSTALLOPTION
  652.     ENDIF
  653.  
  654. COPYFILES:
  655.  
  656.     WriteToLogFile szSpace$
  657.     WriteToLogFile szStar$
  658.     WriteToLogFile "COPY FILES TO PROGRAM DIRECTORY"
  659.     WriteToLogFile szStar$
  660.  
  661.     CopyPgmSysFiles
  662.  
  663. SETUPSUBDIRS:
  664.  
  665.     WriteToLogFile szSpace$
  666.     WriteToLogFile szStar$
  667.     WriteToLogFile "CREATE SUBDIRECTORY OF PROGRAM DIRECTORY"
  668.     WriteToLogFile szStar$
  669.  
  670. '' Create BitFax directories...
  671.     DIRS$ = GetSymbolValue("BFTXPATH")
  672.     CreateDir DIRS$, cmoNone
  673.     WriteToLogFile "Create BitFax TxPath =" + DIRS$
  674.     DIRS$ = GetSymbolValue("BFRXPATH")
  675.     CreateDir DIRS$, cmoNone
  676.     WriteToLogFile "Create BitFax RxPath =" + DIRS$
  677.     DIRS$ = GetSymbolValue("BFDOCPATH")
  678.     CreateDir DIRS$, cmoNone
  679.     WriteToLogFile "Create BitFax DocPath =" + DIRS$
  680.  
  681. '' Create Voice directories...
  682.     IF OPTION_VOICE$ = "Y" THEN
  683.     DIRS$ = GetSymbolValue("BFVOICEPATH")
  684.         CreateDir DIRS$, cmoNone
  685.         WriteToLogFile "Create Voice Path =" + DIRS$
  686.     ENDIF
  687.  
  688. ''Create BitCom directories...
  689.     IF OPTION_BITCOM$ = "Y" THEN
  690.         CreateDir PRGDEST$+"\CAP", cmoNone
  691.         WriteToLogFile "Create BitCom CapPath =" + PRGDEST$+"\CAP"
  692.         CreateDir PRGDEST$+"\XFER", cmoNone
  693.         WriteToLogFile "Create BitCom XferPath =" + PRGDEST$+"\XFER"
  694.     ENDIF
  695.  
  696. SETUPSTATION:
  697. ''    SetupUserDialogBox NULL, 0
  698.  
  699. DETECTMODEM:
  700.  
  701.     WriteToLogFile szSpace$
  702.     WriteToLogFile szStar$
  703.     WriteToLogFile "DETECT MODEM"
  704.     WriteToLogFile szStar$
  705.  
  706.     BFDetectModem
  707.  
  708. SETBFDRV:
  709.  
  710.     WriteToLogFile szSpace$
  711.     WriteToLogFile szStar$
  712.     WriteToLogFile "SET BITFAX DRIVER"
  713.     WriteToLogFile szStar$
  714.  
  715.     SetBFDRVDialogBox NULL, 0
  716.  
  717. SETPROGMAN:
  718.  
  719.     WriteToLogFile szSpace$
  720.     WriteToLogFile szStar$
  721.     WriteToLogFile "ASK PROGRAM GROUP DIALOGBOX"
  722.     WriteToLogFile szStar$
  723.  
  724.     sz$ = UIStartDlg(CUIDLL$, IDD_SET_PROGMAN, "SetProgmanDlgProc", 0, "")
  725.     UIPop 1
  726.     PROGNAME$ = GetSymbolValue("BF_PROGNAME")
  727.     EXENAME$ = GetSymbolValue("BF_EXENAME")
  728.     GRPNAME$ = GetSymbolValue("BF_GRPNAME")
  729.     CreateProgmanGroup GRPNAME$, "", cmoNone
  730.     ShowProgmanGroup  GRPNAME$, 1, cmoNone
  731.  
  732.     CreateProgmanItem GRPNAME$, STR_Read_Me$, MakePath("WRITE.EXE "+PRGDEST$,"README.WRI"), "", cmoOverwrite
  733.  
  734.     IF OPTION_BITFAX$ = "Y" THEN
  735.         CreateProgmanItem GRPNAME$, PROGNAME$, MakePath(PRGDEST$,EXENAME$), "", cmoOverwrite
  736.         CreateProgmanItem GRPNAME$, STR_Transmit_Fax$, MakePath(PRGDEST$,"BFSEND.EXE"), "", cmoOverwrite
  737.         CreateProgmanItem GRPNAME$, STR_Transmit_Log$, MakePath(PRGDEST$,"BFTLOG.EXE"), "", cmoOverwrite
  738.         CreateProgmanItem GRPNAME$, STR_Receive_Manager$, MakePath(PRGDEST$,"BFRECV.EXE"), "", cmoOverwrite
  739.         CreateProgmanItem GRPNAME$, STR_Receive_Log$, MakePath(PRGDEST$,"BFRLOG.EXE"), "", cmoOverwrite
  740.         CreateProgmanItem GRPNAME$, STR_View_Fax$, MakePath(PRGDEST$,"VIEWFAX.EXE"), "", cmoOverwrite
  741.         CreateProgmanItem GRPNAME$, STR_Print_Fax$, MakePath(PRGDEST$,"PRINTFAX.EXE"), "", cmoOverwrite
  742.     IF EXISTS( MakePath(PRGDEST$,"FAXMAN.EXE") ) THEN
  743.        CreateProgmanItem GRPNAME$, STR_Fax_Manager$, MakePath(PRGDEST$,"FAXMAN.EXE"), "", cmoOverwrite
  744.     ENDIF
  745.     ENDIF
  746.         
  747.     IF OPTION_BITCOM$ = "Y" THEN
  748.         CreateProgmanItem GRPNAME$, STR_BitCom$, MakePath(PRGDEST$,"BCOMWIN.EXE"), "", cmoOverwrite
  749. ''        CreateProgmanItem GRPNAME$, STR_MCI$, MakePath(PRGDEST$,"BCOMWIN.EXE @mci.scp"), MakePath(PRGDEST$,"BCOMWIN.EXE,1"), cmoOverwrite
  750. ''        CreateProgmanItem GRPNAME$, STR_Wild_Cat$, MakePath(PRGDEST$,"BCOMWIN.EXE @wildcat.scp"), MakePath(PRGDEST$,"BCOMWIN.EXE,2"), cmoOverwrite
  751. ''        CreateProgmanItem GRPNAME$, STR_CompuServe$, MakePath(PRGDEST$,"BCOMWIN.EXE @comserv.scp"), MakePath(PRGDEST$,"BCOMWIN.EXE,3"), cmoOverwrite
  752. ''        CreateProgmanItem GRPNAME$, STR_EasyLink$, MakePath(PRGDEST$,"BCOMWIN.EXE @easylink.scp"), MakePath(PRGDEST$,"BCOMWIN.EXE,4"), cmoOverwrite
  753. ''        CreateProgmanItem GRPNAME$, STR_Sprintnet_Delphi$, MakePath(PRGDEST$,"BCOMWIN.EXE @sprinet.scp"), MakePath(PRGDEST$,"BCOMWIN.EXE,5"), cmoOverwrite
  754. ''        CreateProgmanItem GRPNAME$, STR_DowJones$, MakePath(PRGDEST$,"BCOMWIN.EXE @dowjones.scp"), MakePath(PRGDEST$,"BCOMWIN.EXE,6"), cmoOverwrite
  755. ''        CreateProgmanItem GRPNAME$, STR_Tymnet_Delphi$, MakePath(PRGDEST$,"BCOMWIN.EXE @tymnet.scp"), MakePath(PRGDEST$,"BCOMWIN.EXE,7"), cmoOverwrite
  756. ''        CreateProgmanItem GRPNAME$, STR_GEnie$, MakePath(PRGDEST$,"BCOMWIN.EXE @genie.scp"), MakePath(PRGDEST$,"BCOMWIN.EXE,8"), cmoOverwrite
  757.     ENDIF
  758.  
  759.     IF OPTION_VOICE$ = "Y" THEN
  760.         CreateProgmanItem GRPNAME$, STR_Voice_Manager$, MakePath(PRGDEST$,"BFVOICE.EXE"), "", cmoOverwrite
  761.     ENDIF
  762.  
  763.     IF OPTION_BITFAX$ = "Y" THEN
  764.         CreateProgmanItem GRPNAME$, STR_BitFax_Help$, "WINHELP.EXE "+MakePath(PRGDEST$,"BITFAX.HLP"), "", cmoOverwrite
  765.     ENDIF
  766.  
  767.     IF OPTION_BITCOM$ = "Y" THEN
  768.     CreateProgmanItem GRPNAME$, STR_BitCom_Help$, "WINHELP.EXE "+MakePath(PRGDEST$,"BCOMWIN.HLP"), "", cmoOverwrite
  769.     ENDIF
  770.  
  771. '$IFDEF ENG
  772. COPYMACROS:
  773.  
  774.     WriteToLogFile szSpace$
  775.     WriteToLogFile szStar$
  776.     WriteToLogFile "ASK TO COPY MACROS DIALOGBOX"
  777.     WriteToLogFile szStar$
  778.  
  779.     sz$ = UIStartDlg(CUIDLL$, IDD_MACROS, "PromptMacrosDlgProc", 0, "")
  780.     UIPop 1
  781.     IF sz$ = "OK" THEN
  782.  
  783.       SZEXCELTO$   = GetSymbolValue("SZEXCELTO")
  784.       SZAMIPROTO$  = GetSymbolValue("SZAMIPROTO")
  785.       SZAMIPROTO1$ = GetSymbolValue("SZAMIPROTO1")
  786.       SZWORDTO$    = GetSymbolValue("SZWORDTO")
  787.       SZWORDTYPE$  = GetSymbolValue("WINWORDTYPE")
  788.  
  789.       IF SZEXCELTO$ <> "" THEN
  790.         IF IsDirWritable(SZEXCELTO$) = 0 THEN
  791.             GOSUB BADPATH
  792.             GOTO COPYMACROS
  793.         END IF
  794.     CreateDir SZEXCELTO$, cmoNone
  795.         CopyFile PRGDEST$+"\BFEXCEL.Xll", SZEXCELTO$+"\BFEXCEL.Xll", cmoOverwrite, 0
  796.       END IF
  797.  
  798.       IF SZAMIPROTO$ <> "" THEN
  799.         IF IsDirWritable(SZAMIPROTO$) = 0 THEN
  800.             GOSUB BADPATH
  801.             GOTO COPYMACROS
  802.         END IF
  803.     CreateDir SZAMIPROTO$, cmoNone
  804.     CreateDir SZAMIPROTO1$, cmoNone
  805.         CopyFile PRGDEST$+"\BITFAX.SMM", SZAMIPROTO$+"\BITFAX.SMM", cmoOverwrite, 0
  806.         CopyFile PRGDEST$+"\BITFAX.BMP", SZAMIPROTO1$+"\BITFAX.BMP", cmoOverwrite, 0
  807.       END IF
  808.  
  809.       IF SZWORDTO$ <> "" THEN
  810.         IF IsDirWritable(SZWORDTO$) = 0 THEN
  811.             GOSUB BADPATH
  812.             GOTO COPYMACROS
  813.         END IF
  814.     CreateDir SZWORDTO$, cmoNone
  815.     IF SZWORDTYPE$ = "WORD6" THEN
  816.        CopyFile PRGDEST$+"\BITFAX.DOT", SZWORDTO$+"\TEMPLATE\BITFAX.DOT", cmoOverwrite, 0
  817.         ELSE
  818.        CopyFile PRGDEST$+"\BITFAX2.DOT", SZWORDTO$+"\BITFAX2.DOT", cmoOverwrite, 0
  819.         END IF
  820.       END IF
  821.       
  822.     END IF
  823. '$ENDIF
  824.  
  825. QUIT:
  826.     ON ERROR GOTO ERRQUIT
  827.  
  828.     IF ERR = 0 THEN
  829.         dlg% = EXITSUCCESS
  830.     ELSEIF ERR = STFQUIT THEN
  831.         GOTO FINALQUIT
  832.     ELSE
  833.         dlg% = EXITQUIT
  834.     END IF
  835.  
  836. QUITL1:
  837.  
  838.     WriteToLogFile szSpace$
  839.     WriteToLogFile szStar$
  840.     WriteToLogFile "QUIT DIALOGBOX"
  841.     WriteToLogFile szStar$
  842.  
  843.     IF dlg% = EXITSUCCESS THEN
  844.         IF szOldVersion$ = "YES" THEN
  845. '' Convert Tx-, Rx-, logs and phone book.
  846.            WriteToLogFile szSpace$
  847.            WriteToLogFile szStar$
  848.            WriteToLogFile "CONVERT DATA BASE DIALOGBOX"
  849.            WriteToLogFile szStar$
  850.            
  851.            UIPop 1
  852.            sz$ = UIStartDlg(CUIDLL$, IDD_INITCONV, "CalculatingNoteDlgProc", 0, "")
  853.        BFLoadConvertDll
  854.            UIPop 1
  855.            BFConvertDataBase
  856.         ENDIF
  857.  
  858.         WriteToLogFile "Install Completed Successfully"
  859.         sz$ = UIStartDlg(CUIDLL$, dlg%, "BFSuccessInstallDlgProc", 0, "")
  860.  
  861.     IF DllCopyOption$ = "PROGRAM" THEN
  862.  
  863.             WriteToLogFile szSpace$
  864.             WriteToLogFile szStar$
  865.             WriteToLogFile "PROMPT REBOOT DIALOGBOX"
  866.             WriteToLogFile szStar$
  867.  
  868.             UIPop 1
  869.         sz$ = UIStartDlg(CUIDLL$, IDD_PROMPT_REBOOT, "PromptRebootDlgProc", 0, "")
  870.         ENDIF
  871.     
  872.     ELSE    
  873.         WriteToLogFile "Install Completed Unsuccessfully"
  874.         sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  875.         UIPop 1
  876.         GOTO FINALQUIT
  877.     END IF
  878.  
  879.     IF sz$ = "REACTIVATE" THEN
  880.         GOTO QUITL1
  881.     END IF
  882.     UIPop 1
  883.  
  884. ''  Automatic Registration
  885.     WriteToLogFile szSpace$
  886.     WriteToLogFile szStar$
  887.     WriteToLogFile "AUTOMATIC REGISTRATION DIALOGBOX"
  888.     WriteToLogFile szStar$
  889.    
  890.     BFRegister
  891.     
  892.     GOTO FINALQUIT
  893.  
  894. ERRQUIT:
  895.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  896.  
  897. FINALQUIT:
  898.     BFQuit
  899.  
  900.     CloseLogFile
  901.     END
  902.  
  903. BADPATH:
  904.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  905.     IF sz$ = "REACTIVATE" THEN
  906.         GOTO BADPATH
  907.     END IF
  908.     UIPop 1
  909.     RETURN
  910.  
  911. ASKQUIT:
  912.     WriteToLogFile szSpace$
  913.     WriteToLogFile szStar$
  914.     WriteToLogFile "ASK QUIT DIALOGBOX"
  915.     WriteToLogFile szStar$
  916.  
  917.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  918.  
  919.     IF sz$ = "EXIT" THEN
  920.     WriteToLogFile "Select <Yes> Button"
  921.         CloseLogFile
  922.         UIPopAll
  923.         ERROR STFQUIT
  924.     ELSEIF sz$ = "REACTIVATE" THEN
  925.         GOTO ASKQUIT
  926.     ELSE
  927.     WriteToLogFile "Select <No> Button"
  928.         UIPop 1
  929.     END IF
  930.     RETURN
  931.  
  932. '*************************************************************************
  933. '** Purpose:
  934. '**     Builds the copy list and performs all installation operations.
  935. '** Arguments:
  936. '**     none.
  937. '** Returns:
  938. '**     none.
  939. '*************************************************************************
  940. SUB CopyPgmSysFiles STATIC
  941.  
  942.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  943.     WinSysDir$ = GetSymbolValue("BF_WINSYSDIR")
  944.     CreateDir PRGDEST$, cmoNone
  945.  
  946.     ClearCopyList
  947.     IF OPTION_BITFAX$ = "Y" THEN
  948.       AddToBillBoardList CUIDLL$, IDD_SEND,    "BFBillBoardDlgProc", 10
  949.       AddToBillBoardList CUIDLL$, IDD_RECV,    "BFBillBoardDlgProc", 10
  950.       AddToBillBoardList CUIDLL$, IDD_RECVLOG, "BFBillBoardDlgProc", 10
  951.       AddToBillBoardList CUIDLL$, IDD_VIEW,    "BFBillBoardDlgProc", 10
  952.  
  953.       AddSectionFilesToCopyList "BitFaxPgmFile", SrcDir$, PRGDEST$
  954.       IF DllCopyOption$ = "SYSTEM" THEN
  955.          AddSectionFilesToCopyList "BitFaxSysFile", SrcDir$, WinSysDir$
  956.       ELSE
  957.          AddSectionFilesToCopyList "BitFaxSysFile", SrcDir$, PRGDEST$
  958.       ENDIF
  959.     ENDIF
  960.  
  961.     IF OPTION_OCR$ = "Y" THEN
  962.       AddSectionFilesToCopyList "OCRPgmFile", SrcDir$, PRGDEST$
  963.       IF DllCopyOption$ = "SYSTEM" THEN
  964.          AddSectionFilesToCopyList "OCRSysFile", SrcDir$, WinSysDir$
  965.       ELSE
  966.          AddSectionFilesToCopyList "OCRSysFile", SrcDir$, PRGDEST$
  967.       ENDIF
  968.       c% = GetListLength("OCRW4NAME")
  969.       FOR i% = 1 TO c% STEP 1
  970.     j$ = GetListItem("OCRW4SELECT", i%)
  971.         IF j$ = "Y" THEN
  972.       k$ = GetListItem("OCRW4NAME", i%)
  973.           AddSectionKeyFileToCopyList "OCRW4File", k$, SrcDir$, PRGDEST$
  974.     ENDIF
  975.       NEXT i%
  976.     ENDIF
  977.  
  978.     IF OPTION_BITCOM$ = "Y" THEN
  979.       AddToBillBoardList CUIDLL$, IDD_BITCOM,   "BFBillBoardDlgProc", 10
  980.  
  981.       AddSectionFilesToCopyList "BitComPgmFile", SrcDir$, PRGDEST$
  982.       QuerySection% = DoesIniSectionExist(szInf$, "BitComSysFile")
  983.       IF QuerySection% = 1 THEN
  984.         IF DllCopyOption$ = "SYSTEM" THEN
  985.            AddSectionFilesToCopyList "BitComSysFile", SrcDir$, WinSysDir$
  986.         ELSE
  987.            AddSectionFilesToCopyList "BitComSysFile", SrcDir$, PRGDEST$
  988.         ENDIF
  989.       ENDIF
  990.       
  991.     ENDIF
  992.     
  993.     QueryPhoneBookFile% = DoesFileExist(PRGDEST$+"\default.dbf", femExists)
  994.     IF QueryPhoneBookFile% = 0 THEN
  995.       AddSectionFilesToCopyList "PHONEBOOK", SrcDir$, PRGDEST$
  996.       RemoveFile PRGDEST$+"\default.mdx", cmoNone
  997.     ENDIF
  998.     QueryPBAPIFile% = DoesFileExist(PRGDEST$+"\pbapi.ini", femExists)
  999.     IF QueryPBAPIFile% = 0 THEN
  1000.       AddSectionFilesToCopyList "PBAPI", SrcDir$, PRGDEST$
  1001.     ENDIF
  1002.  
  1003.     IF OPTION_SCANFAX$ = "Y" THEN
  1004.       QuerySection% = DoesIniSectionExist(szInf$, "ScanFaxPgmFile")
  1005.       IF QuerySection% = 1 THEN
  1006.         AddSectionFilesToCopyList "ScanFaxPgmFile", SrcDir$, PRGDEST$
  1007.       END IF
  1008.       QuerySection% = DoesIniSectionExist(szInf$, "ScanFaxSysFile")
  1009.       IF QuerySection% = 1 THEN
  1010.         IF DllCopyOption$ = "SYSTEM" THEN
  1011.            AddSectionFilesToCopyList "ScanFaxSysFile", SrcDir$, WinSysDir$
  1012.         ELSE
  1013.            AddSectionFilesToCopyList "ScanFaxSysFile", SrcDir$, PRGDEST$
  1014.         ENDIF
  1015.       END IF
  1016.     ENDIF
  1017.  
  1018.     IF OPTION_VOICE$ = "Y" THEN
  1019.       AddToBillBoardList CUIDLL$, IDD_VOICE,   "BFBillBoardDlgProc", 10
  1020.  
  1021.       AddSectionFilesToCopyList "VoicePgmFile", SrcDir$, PRGDEST$
  1022.       QuerySection% = DoesIniSectionExist(szInf$, "VoiceSysFile")
  1023.       IF QuerySection% = 1 THEN
  1024.         IF DllCopyOption$ = "SYSTEM" THEN
  1025.            AddSectionFilesToCopyList "VoiceSysFile", SrcDir$, WinSysDir$
  1026.         ELSE
  1027.            AddSectionFilesToCopyList "VoiceSysFile", SrcDir$, PRGDEST$
  1028.         ENDIF
  1029.       ENDIF
  1030.     ENDIF
  1031.  
  1032.     SetCopyGaugePosition 162, 60
  1033.  
  1034.     CopyFilesInCopyList
  1035.  
  1036.     IF DllCopyOption$ = "PROGRAM" THEN
  1037.       CopyFile PRGDEST$+"\BFPRO.DRV", WinSysDir$+"\BFPRO.DRV", cmoOverwrite, 0
  1038.       RemoveFile PRGDEST$+"\BFPRO.DRV", cmoNone
  1039.     ENDIF
  1040.  
  1041.     BFUpdateIniFile
  1042.  
  1043.     BFRegisterDatabase
  1044.  
  1045. ''    IF DllCopyOption$ = "PROGRAM" THEN
  1046. ''       BFUpdateAutoFile
  1047. ''    ENDIF
  1048.  
  1049.     IF OPTION_OCR$ = "Y" THEN
  1050.         CreateIniKeyValue "WIN.INI", "OMNIPAGE", "OP30", PRGDEST$+"\", cmoOverwrite
  1051.         CreateIniKeyValue "WIN.INI", "OMNIPAGE", "Memsize_200", "1000", cmoOverwrite
  1052.         CreateIniKeyValue "WIN.INI", "OMNIPAGE", "Memsize_300", "1200", cmoOverwrite
  1053.         CreateIniKeyValue "WIN.INI", "OMNIPAGE", "Autoloadocr", "YES", cmoOverwrite
  1054.     ENDIF
  1055.  
  1056.     IF QueryPBAPIFile% = 0 THEN
  1057.       CreateIniKeyValue PRGDEST$+"\PBAPI.INI",  "PhoneBooks", "pbFilename1", PRGDEST$+"\default.dbf", cmoOverwrite
  1058.       CreateIniKeyValue PRGDEST$+"\PBAPI.INI",  "Last Selected Phone Book", "pbFilename", PRGDEST$+"\default.dbf", cmoOverwrite
  1059.     ENDIF
  1060.  
  1061. END SUB
  1062.  
  1063. SUB TotalSizeOfFiles STATIC
  1064.  
  1065.     PgmCost& =  0
  1066.     SysCost& =  0
  1067.  
  1068.     IF OPTION_BITFAX$  = "Y"  THEN
  1069.       PgmCost& =  VAL(GetSymbolValue("BitFaxPgmNeed"))
  1070.       SysCost& =  VAL(GetSymbolValue("BitFaxSysNeed"))
  1071.     ENDIF
  1072.  
  1073.     IF OPTION_BITCOM$  = "Y"  THEN
  1074.       PgmCost& =  PgmCost& + VAL(GetSymbolValue("BitComPgmNeed"))
  1075.       SysCost& =  SysCost& + VAL(GetSymbolValue("BitComSysNeed"))
  1076.     ENDIF
  1077.  
  1078.     IF OPTION_OCR$     = "Y"  THEN
  1079.       PgmCost& =  PgmCost& + VAL(GetSymbolValue("OCRPgmNeed"))
  1080.       SysCost& =  SysCost& + VAL(GetSymbolValue("OCRSysNeed"))
  1081.     ENDIF
  1082.  
  1083.     IF OPTION_SCANFAX$ = "Y"  THEN
  1084.       PgmCost& =  PgmCost& + VAL(GetSymbolValue("ScanFaxPgmNeed"))
  1085.       SysCost& =  SysCost& + VAL(GetSymbolValue("ScanFaxSysNeed"))
  1086.     ENDIF
  1087.  
  1088.     IF OPTION_VOICE$   = "Y"  THEN
  1089.       PgmCost& =  PgmCost& + VAL(GetSymbolValue("VoicePgmNeed"))
  1090.       SysCost& =  SysCost& + VAL(GetSymbolValue("VoiceSysNeed"))
  1091.     ENDIF
  1092.  
  1093.     ReplaceListItem  "SPACENEED", 1, STR$(PgmCost&) 
  1094.     ReplaceListItem  "SPACENEED", 2, STR$(SysCost&)
  1095.  
  1096. END SUB
  1097.  
  1098. '*************************************************************************
  1099. '** Purpose:
  1100. '**     Appends a file name to the end of a directory path,
  1101. '**     inserting a backslash character as needed.
  1102. '** Arguments:
  1103. '**     szDir$  - full directory path (with optional ending "\")
  1104. '**     szFile$ - filename to append to directory
  1105. '** Returns:
  1106. '**     Resulting fully qualified path name.
  1107. '*************************************************************************
  1108. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  1109.     IF szDir$ = "" THEN
  1110.         MakePath = szFile$
  1111.     ELSEIF szFile$ = "" THEN
  1112.         MakePath = szDir$
  1113.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  1114.         MakePath = szDir$ + szFile$
  1115.     ELSE
  1116.         MakePath = szDir$ + "\" + szFile$
  1117.     END IF
  1118. END FUNCTION
  1119.  
  1120. FUNCTION MakeLong (szString$) STATIC AS LONG
  1121.     l% = LEN(szString$)
  1122.     c& = 0
  1123.     FOR i% = 1 TO l% STEP 1
  1124.       Digit$ = MID$(szString$, i%, 1)
  1125.       c& = (c& * 10) + VAL(Digit$) 
  1126.     NEXT i%
  1127.     MakeLong = c&
  1128. END FUNCTION
  1129.