home *** CD-ROM | disk | FTP | other *** search
- Attribute VB_Name = "TbOcr"
- Option Explicit
-
- Public Const timeouterr = -6
- Public Const ocrerr = -7
- Public Const registryerr = -8
-
- Public Const TYPE_PIXD = &H44584950
- Public Const TYPE_TIFF = &H46464954
- Public Const TYPE_BMP = &H20504D42
- Public Const TYPE_RTF = &H20465452
- Public Const TYPE_file = &H656C6966
- Public Const CREATOR_PIXL = &H4C584950
-
- Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
-
- Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
- (ByVal hwnd As Long, _
- ByVal lpOperation As String, _
- ByVal lpFile As String, _
- ByVal lpParameters As String, _
- ByVal lpDirectory As String, _
- ByVal nShowCmd As Long) As Long
-
-
- Function TextBridgeOcr(infile As String, outfile As String) As Integer
-
- Dim keyname As String
-
- Dim retval As Long
- Dim hKey1 As Long
- Dim hKey2 As Long
- Dim hKey3 As Long
-
- Dim version As Variant
- Dim docpath As Variant
- Dim terminate As Variant
- Dim faceless As Variant
- Dim format As Variant
-
- Dim starttime As Date
-
- keyname = "Software\Xerox\TextBridge"
-
- TextBridgeOcr = 0 ' no error to start with
-
- ' Get original registry values and set the values we need
-
- retval = RegOpenKeyEx(HKEY_CURRENT_USER, keyname, 0, KEY_ALL_ACCESS, hKey1)
- If hKey1 = 0 Then
- TextBridgeOcr = registryerr
- Exit Function
- End If
- retval = QueryValueEx(hKey1, "CURRENTVERSION", version)
- retval = RegOpenKeyEx(hKey1, version, 0, KEY_ALL_ACCESS, hKey2)
- retval = RegOpenKeyEx(hKey2, "TextBridge", 0, KEY_ALL_ACCESS, hKey3)
- retval = QueryValueEx(hKey3, "DefaultDocnamePath", docpath)
- retval = QueryValueEx(hKey3, "TerminateAtEnd", terminate)
- retval = QueryValueEx(hKey3, "Faceless", faceless)
- retval = QueryValueEx(hKey3, "DefaultWpformat", format)
- retval = SetValueEx(hKey3, "DefaultDocnamePath", REG_SZ, outfile)
- retval = SetValueEx(hKey3, "TerminateAtEnd", REG_DWORD, 1)
- retval = SetValueEx(hKey3, "Faceless", REG_DWORD, 1)
- retval = SetValueEx(hKey3, "DefaultWpformat", REG_SZ, "Word 7.0 (*.rtf)")
-
- RegCloseKey (hKey3)
- RegCloseKey (hKey2)
- RegCloseKey (hKey1)
-
- ' Start TextBridge
-
- retval = ShellExecute(0, "open", "tb96.exe", infile, vbNullString, 1)
- If retval <= 31 Then
- TextBridgeOcr = ocrerr
- GoTo restore
- End If
-
- ' Wait for the OCR to be completed
-
- starttime = Time
-
- While (Dir(outfile) = "")
- If DateDiff("n", starttime, Time) > 5 Then ' 5 minute timeout
- TextBridgeOcr = timeouterr
- GoTo restore
- End If
- Call Sleep(200)
- Wend
-
- ' Restore original registry values
- restore:
- retval = RegOpenKeyEx(HKEY_CURRENT_USER, keyname, 0, KEY_ALL_ACCESS, hKey1)
- If hKey1 = 0 Then
- TextBridgeOcr = registryerr
- Exit Function
- End If
- retval = QueryValueEx(hKey1, "CURRENT_VERSION", version)
- retval = RegOpenKeyEx(hKey1, version, 0, KEY_ALL_ACCESS, hKey2)
- retval = RegOpenKeyEx(hKey2, "TextBridge", 0, KEY_ALL_ACCESS, hKey3)
- retval = SetValueEx(hKey3, "DefaultDocnamePath", REG_SZ, docpath)
- retval = SetValueEx(hKey3, "TerminateAtEnd", REG_DWORD, terminate)
- retval = SetValueEx(hKey3, "Faceless", REG_DWORD, faceless)
- retval = SetValueEx(hKey3, "DefaultWpformat", REG_SZ, format)
- RegCloseKey (hKey3)
- RegCloseKey (hKey2)
- RegCloseKey (hKey1)
-
- End Function
-
-
-