home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 March / VPR9703B.ISO / driver / epson / fsdv10 / disk1 / estwain.ms_ / estwain.ms
Text File  |  1996-02-25  |  11KB  |  363 lines

  1. '* *************************************************************************
  2. '*                      EPSON FS-1200 TWAIN Driver Setup Script
  3. '* *************************************************************************
  4.  
  5. '$INCLUDE 'setupapi.inc'
  6. '$INCLUDE 'msdetect.inc'
  7.  
  8. CONST WS_VISIBLE=&H10000000
  9. CONST WS_BORDER =&H00800000
  10. CONST WS_CLIPCHILDREN =&H02000000
  11. CONST GWL_STYLE =-16
  12. CONST SW_SHOWMAXIMIZED=3
  13.  
  14. ''Dialog ID's
  15.  
  16. CONST WelcomeDlg    = 100
  17. CONST AskQuitDlg    = 200
  18. CONST WindowPathDlg = 300
  19. CONST ExitFailDlg   = 400
  20. ''CONST WinPathHelp   = 500
  21. CONST UtyPathDlg    = 600
  22. CONST SetupComplete = 700
  23. CONST BadPathDlg    = 800
  24. ''CONST SetupHelp     = 900
  25. ''CONST AspiInst     = 901
  26.  
  27. ''Bitmap ID
  28. CONST LOGO = 1
  29.  
  30. GLOBAL DESTWIN$        ''Default destination directory.
  31. 'GLOBAL DESTUTY$        ''Default EPSON Scan! II directory.
  32. GLOBAL DESTTWN$        ''Default twain directory.
  33. GLOBAL DESTTWN16$      ''Default twain16 directory on 32-bit Windows.
  34. GLOBAL DESTCAL$        ''Default calibrat files directory.
  35. GLOBAL DESTMSVC$       ''Default directory for MSVCRT20.DLL.    ''MSVCRT20.DLL
  36. GLOBAL MAJORVERSION%   ''Windows Major version number
  37. GLOBAL MINORVERSION%   ''Windows Minor version number    
  38.  
  39. DECLARE SUB Install
  40. DECLARE SUB Install32
  41. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  42. DECLARE SUB RunSetup LIB "mscuistf.dll" (Path$)
  43. DECLARE FUNCTION IsWindowsNT LIB "mscuistf.dll" AS INTEGER
  44. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  45. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  46.  
  47. INIT:
  48.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  49.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  50.  
  51.     hWnd%=HwndFrame()
  52.     SWLxx&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  53.     SWyy%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  54.  
  55.     SetBitmap CUIDLL$, LOGO
  56.     SetTitle "EPSON TWAIN セットアッププログラム"
  57.     SetAbout "EPSON TWAIN セットアッププログラム", "Copyright (C) SEIKO EPSON CORP.1996"
  58.  
  59.     MAJORVERSION% = GetWindowsMajorVersion()
  60.     MINORVERSION% = GetWindowsMinorVersion()
  61.  
  62.     IF  MAJORVERSION% < 3 OR (MAJORVERSION% = 3 AND MINORVERSION% < 10) THEN
  63.         i% = DoMsgBox("It needs Windows 3.1 or later", "Setup Message", MB_OK+MB_ICONHAND)
  64.         ERR% = STFQUIT  '' Need windows 3.1 or later.
  65.         GOTO QUIT
  66.     END IF
  67.  
  68.     szInf$ = GetSymbolValue ("STF_SRCINFPATH")
  69.     IF szInf$ = "" THEN
  70.         szInf$ = GetSymbolValue ("STF_CWDDIR") + "ESTWAIN.INF"
  71.     END IF
  72.     ReadInfFile szInf$
  73.  
  74.     WinLocation$ = GetWindowsDir
  75.     DESTWIN$ = WinLocation$
  76.  
  77.  
  78.  
  79. '*
  80. '* WELCOME DIALOG.
  81. '*
  82.  
  83. WELCOME:
  84.     sz$ = UIStartDlg (CUIDLL$, WelcomeDlg, "InfoDlgProc", 0, "")
  85.  
  86.     IF sz$ = "OK" THEN
  87.         UIPop 1
  88.     ELSE
  89.         GOSUB ASKQUIT
  90.         GOTO WELCOME
  91.     END IF
  92.  
  93. '*
  94. '* Get Windows Path
  95. '*
  96.  
  97. GETPATH:
  98.     SetSymbolValue "EditTextIn", DESTWIN$
  99.     SetSymbolValue "EditFocus", "END"
  100. GETPATHL1:
  101.     sz$ = UIStartDlg (CUIDLL$, WindowPathDlg, "EditDlgProc", 0, "")
  102.     DESTWIN$ = GetSymbolValue ("EditTextOut")
  103.  
  104.     IF sz$ = "CONTINUE" THEN
  105.         IF IsDirWritable(DESTWIN$) = 0 THEN
  106.             GOSUB BADPATH
  107.             GOTO GETPATHL1
  108.         END IF
  109.         UIPop 1
  110.     ELSEIF sz$ = "REACTIVATE" THEN
  111.         GOTO GETPATHL1
  112.     ELSE
  113.         GOSUB ASKQUIT
  114.         GOTO GETPATH
  115.     END IF
  116.  
  117.  
  118.  
  119.     IF IsWindowsNT THEN
  120.         Install32
  121.     ELSEIF (MAJORVERSION%>3 OR (MAJORVERSION%=3 AND MINORVERSION%>10)) THEN
  122.         Install32
  123.     ELSE
  124.         Install
  125.     END IF
  126.  
  127.  
  128.  
  129. '*
  130. '* Intallation is complete or a serious error has occurred. Display the
  131. '* appropriate dialog box.
  132. '*
  133.  
  134. QUIT:
  135.     ON ERROR GOTO ERRQUIT
  136.  
  137.     IF ERR = 0 THEN
  138.         goto SuccessfulExit
  139.     ELSEIF ERR = STFQUIT THEN
  140.         END
  141.     END IF
  142.  
  143. QUITL1:
  144.  
  145.     sz$ = UIStartDlg (CUIDLL$, ExitFailDlg, "FInfo0DlgProc", 0, "")
  146.  
  147.     IF sz$ = "REACTIVATE" THEN
  148.         GOTO QUITL1
  149.     END IF
  150.     UIPop 1
  151. END
  152.  
  153. ERRQUIT:
  154.     i% = DoMsgBox("Setup sources were corrupted, call Customer Service!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  155.     END
  156.     RETURN
  157.  
  158.  
  159.  
  160. '*
  161. '* Intallation is successful.
  162. '*
  163.  
  164. SuccessfulExit:
  165. QUITL2:
  166.  
  167. '*    sz$ = UIStartDlg (CUIDLL$, SetupComplete, "Info0DlgProc", 0, "")
  168. '*
  169. '*    IF sz$ = "REACTIVATE" THEN
  170. '*        GOTO QUITL2
  171. '*    END IF
  172. '*    IF sz$ = "SETUP" THEN
  173. '*        RunSetup (DESTTWN$)
  174. '*        GOTO QUITL2
  175. '*    END IF
  176. '*
  177. '*    UIPop 1
  178.  
  179. '*    IF IsWindowsNT THEN
  180.          RunSetup (DESTTWN$)
  181. '*    ELSEIF (MAJORVERSION%>3 OR (MAJORVERSION%=3 AND MINORVERSION%>10)) THEN
  182. '*         RunSetup (DESTTWN$)
  183. '*    ELSEIF aspi$ = "OFF" THEN
  184. '*         RunSetup (DESTTWN$)
  185. '*    END IF
  186. END
  187.  
  188.  
  189.  
  190. '*
  191. '* Error handling code.
  192. '*
  193.  
  194. BADPATH:
  195.     sz$ = UIStartDlg (CUIDLL$, BadPathDlg, "FInfo0DlgProc", 0, "")
  196.     IF sz$ = "REACTIVATE" THEN
  197.         GOTO BADPATH
  198.     END IF
  199.     UIPop 1
  200.     RETURN
  201.  
  202. ASKQUIT:
  203.     sz$ = UIStartDlg (CUIDLL$, AskQuitDlg, "FQuitDlgProc", 0, "")
  204.  
  205.     IF sz$ = "EXIT" THEN
  206.         UIPopAll
  207.         ERROR STFQUIT
  208.     ELSEIF sz$ = "REACTIVATE" THEN
  209.         GOTO ASKQUIT
  210.     ELSE
  211.         UIPop 1
  212.     END IF
  213.     RETURN
  214.  
  215.  
  216.  
  217. '*
  218. '* Build the copy list and perform all installation operations for 32-bit version.
  219. '*
  220.  
  221. SUB Install32 STATIC
  222.  
  223.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  224.     DESTTWN$ = DESTWIN$+"TWAIN_32\EPSON\"
  225.     DESTTWN16$ = DESTWIN$+"TWAIN\"
  226.     DESTCAL$ = DESTWIN$+"TWAIN\CALIBRAT\"
  227.     DESTMSVC$ = DESTWIN$+"SYSTEM32\"    ''MSVCRT20.DLL
  228.     CreateDir DESTWIN$, cmoNone
  229.     CreateDir DESTTWN$, cmoNone
  230.     CreateDir DESTTWN16$, cmoNone
  231.     CreateDir DESTCAL$, cmoNone
  232. '    CreateDir DESTUTY$, cmoNone
  233.  
  234. '*    szNewVer$ = GetVersionOfFile( SrcDir$ + "TWAIN_32.DLL" )
  235. '*    TwainFileExist% = DoesFileExist( DESTWIN$ + "TWAIN_32.DLL", femExists )
  236. '*    InstallTwainFile% = 1
  237. '*    IF TwainFileExist% = 1 THEN
  238. '*        szOldVer$ = GetVersionOfFile( DESTWIN$ + "TWAIN_32.DLL" )
  239. '*        IF (szOldVer$ > szNewVer$) OR (szOldVer$ = szNewVer$) THEN
  240. '*            InstallTwainFile% = 0
  241. '*        END IF
  242. '*    ENDIF
  243. '*
  244. '*    IF InstallTwainFile% = 1 THEN
  245.         AddSectionFilesToCopyList "WINFILES", SrcDir$, DESTWIN$
  246. '*    END IF
  247.  
  248. '    AddSectionFilesToCopyList "UTYFILES", SrcDir$, DESTUTY$
  249. '    AddSectionFilesToCopyList "HELPFILE", SrcDir$, DESTUTY$
  250.     AddSectionFilesToCopyList "TWNFILES", SrcDir$, DESTTWN$
  251.     AddSectionFilesToCopyList "TWNFILES16", SrcDir$, DESTTWN16$
  252.     AddSectionFilesToCopyList "PMDDFILE", SrcDir$, DESTTWN16$
  253.     AddSectionFilesToCopyList "CALFILES", SrcDir$, DESTCAL$ 
  254.     AddSectionFilesToCopyList "CALUTYFILES", SrcDir$, DESTCAL$    ''Add calibration utilities to COPYLIST
  255.     AddSectionFilesToCopyList "CTL3DW31", SrcDir$, DESTWIN$+"SYSTEM\" 
  256.     IF IsWindowsNT THEN
  257.            AddSectionFilesToCopyList "MSVCRTNT", SrcDir$, DESTMSVC$    ''MSVCRT20.DLL    
  258.             AddSectionFilesToCopyList "CTL3DNT", SrcDir$, DESTWIN$+"SYSTEM32\" 
  259.     ELSE 
  260. '*           AddSectionFilesToCopyList "PMDDFILE", SrcDir$, DESTTWN$
  261.             IF (MAJORVERSION%>3 OR (MAJORVERSION%=3 AND MINORVERSION%>10)) THEN
  262.              '* windows 4.0
  263.                 AddSectionFilesToCopyList "W40CFILE", SrcDir$, DESTTWN$
  264.                 AddSectionFilesToCopyList "CTL3DW40", SrcDir$, DESTWIN$+"SYSTEM\" 
  265.         '* ELSE
  266.             '* windows 32s
  267.                 '* AddSectionFilesToCopyList "W32SFILE", SrcDir$, DESTTWN$
  268.         END IF
  269.         END IF
  270.  
  271.     CopyFilesInCopyList
  272.  
  273. '*    IF IsWindowsNT THEN
  274.         CreateIniKeyValue DestWin$+"CONTROL.INI", "MMCPL", "scanner", DestTwn$+"pmdd32f.dll",cmoOverwrite
  275. '*    ELSE
  276. '*        CreateIniKeyValue DestWin$+"CONTROL.INI", "MMCPL", "scanner", DestTwn$+"pmdd16.dll", cmoOverwrite
  277. '*    END IF
  278.  
  279. '*
  280. '* Build the copy list and perform all installation operations.
  281. '*
  282.  
  283.  
  284. '    RemoveIniSection "WIN.INI", "EPSNDRV", cmoNone
  285.     CreateIniKeyValue "WIN.INI", "TWAIN", "Default Source", DestTwn$+"ESTWN32.DS",cmoOverwrite
  286.  
  287.     CreateProgmanGroup "EPSON スキャナ", "", cmoNone
  288.     ShowProgmanGroup  "EPSON スキャナ", 1, cmoNone
  289. '    CreateProgmanItem "EPSON スキャナ", "Release Notes", MakePath(DESTUTY$,"RELEASE.TXT"), "", cmoOverwrite
  290.     CreateProgmanItem "EPSON スキャナ", "EPSON Screen Calibration", MakePath(DESTCAL$,"EPSCNCAL.EXE"), "", cmoOverwrite
  291. END SUB
  292.  
  293.  
  294. '*
  295. '* Build the copy list and perform all installation operations for 16-bit version.
  296. '*
  297.  
  298. SUB Install STATIC
  299.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  300.     DESTTWN$ = DESTWIN$+"TWAIN\"
  301.     DESTCAL$ = DESTWIN$+"TWAIN\CALIBRAT"
  302. '    CreateDir DESTUTY$, cmoNone
  303.     CreateDir DESTWIN$, cmoNone
  304.     CreateDir DESTTWN$, cmoNone
  305.     CreateDir DESTCAL$, cmoNone
  306.     VERSION% = GetWindowsMinorVersion()
  307.     IF (VERSION% < 10) THEN
  308.         IF (EXISTS (DESTWIN$+"VER.DLL")) THEN
  309.         ELSE
  310.             CopyFile SrcDir$+"VER.DLL", DESTWIN$+"VER.DLL", cmoOverwrite, 0
  311.         END IF
  312.         IF (EXISTS (DESTWIN$+"MSCUISTF.DLL")) THEN
  313.         ELSE
  314.             CopyFile SrcDir$+"MSCUISTF.DLL", DESTWIN$+"MSCUISTF.DLL", cmoOverwrite, 0
  315.         END IF
  316.     END IF
  317. '*************************
  318. '    AddSectionFilesToCopyList "UTYFILES16", SrcDir$, DESTUTY$
  319. '    AddSectionFilesToCopyList "HELPFILE", SrcDir$, DESTUTY$
  320.     AddSectionFilesToCopyList "CALFILES", SrcDir$, DESTCAL$
  321. '*************************
  322.     AddSectionFilesToCopyList "WINFILES16", SrcDir$, DESTWIN$
  323.     AddSectionFilesToCopyList "TWNFILES16", SrcDir$, DESTTWN$
  324.     AddSectionFilesToCopyList "PMDDFILE", SrcDir$, DESTTWN$
  325.     AddSectionFilesToCopyList "CALUTYFILES", SrcDir$, DESTCAL$    ''Add calibration utilities to COPYLIST
  326.     AddSectionFilesToCopyList "CTL3DW31", SrcDir$, DESTWIN$+"SYSTEM\" 
  327.     CopyFilesInCopyList
  328.     '*IF IsWindowsNT THEN
  329.     '*ELSE
  330.     '*END IF
  331.     IF IsWindowsNT THEN
  332.         CreateIniKeyValue DestWin$+"CONTROL.INI", "MMCPL", "scanner", DestTwn$+"pmdd32.dll",cmoNone
  333.         CreateIniKeyValue "WIN.INI", "PMDDSETUPPATH", "PMDDPATH", DestTwn$+"runsetup.exe", cmoNone
  334.     ELSE
  335.         CreateIniKeyValue DestWin$+"CONTROL.INI", "MMCPL", "scanner", DestTwn$+"pmdd.dll", cmoNone
  336.     END IF
  337. '    RemoveIniSection "WIN.INI", "EPSNDRV", cmoNone
  338.     CreateProgmanGroup "EPSON スキャナ", "", cmoNone
  339.     ShowProgmanGroup  "EPSON スキャナ", 1, cmoNone
  340. '    CreateProgmanItem "EPSON スキャナ", "READ ME", MakePath(DESTTWN$,"README.TXT"), "", cmoOverwrite
  341. '*************************
  342.     CreateProgmanItem "EPSON スキャナ", "EPSON Screen Calibration", MakePath(DESTCAL$,"EPSCNCAL.EXE"), "", cmoOverwrite
  343. '*************************
  344. END SUB
  345.  
  346. '*
  347. '* Appends a file name to the end of a directory path, inserting a backslash character as needed.
  348. '* szDir$  - full directory path (with optional ending "\")
  349. '* szFile$ - filename to append to directory
  350. '* Return fully qualified path name.
  351. '*
  352.  
  353. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  354.     IF szDir$ = "" THEN
  355.         MakePath = szFile$
  356.     ELSEIF szFile$ = "" THEN
  357.         MakePath = szDir$
  358.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  359.         MakePath = szDir$ + szFile$
  360.     ELSE
  361.         MakePath = szDir$ + "\" + szFile$
  362.     END IF
  363. END FUNCTION