Kodak Alaris Inc.

WIA Readme File

11-November-2013

 

 

This directory contains information on Kodak Alaris Inc.’s WIA driver (e.g. custom properties).

 

 

Custom Properties

This contains information on the custom properties exposed by Kodak Alaris Inc.’s WIA driver.

 

Standard Properties

This contains information on how standard properties are used by Kodak Alaris Inc.’s WIA driver.

 

Debugging

This contains information on generating debug information.

NOTE: It is suggested that you only generate debug information when instructed by Kodak Alaris Inc. support personnel.

 

 

Getting Started with WIA (on MSDN)

This link takes you to the WIA programming section on MSDN. This contains information on how to programmatically use a WIA driver. The Tutorial is a good place to start.

 

 

 

Finding the scanner’s model directory

Multiple places within the WIA document mention the scanner’s model directory. This section describes how to locate that directory.

 

All of the user files are found in the scanner’s model directory within the Operating System’s All Users directory:

XP: %ALLUSERSPROFILE%\Application Data\kds_kodak\modeldir

Vista/Windows 7: %ALLUSERSPROFILE%\kds_kodak\modeldir


Where:

%ALLUSERSPROFILE% is the actual path for the All Users directory (e.g. “C:\Documents and Settings\All Users”) and is different based on Operating System. To find out what it is for your operating system:

1.     Open a command window (for XP: click on START, select RUN, type CMD, and then click OK)

2.     Type: set ALLUSERSPROFILE

modeldir is the scanner’s model directory. Typically, this is “kds_” appended with the scanner’s series (e.g. kds_i1200).

 

 

 

WIA Versions

There two different types of WIA drivers. The one in use depends on when the scanner was developed. Older WIA drivers use a wiamini.dll, but new drivers use a wia.dll.
The file is located in the C:\Windows\System32\Kodak\modeldir directory.

Any feature that was available in a wiamini.dll based driver is available in a wia.dll based driver.

NOTE: The version is the version number of the .dll file and not the CD version.

 

 

 

WIA Automation

Microsoft provides a “full-featured image manipulation component that provides end-to-end image processing capabilities.”  This component may be accessed from languages like C# or VB Script.  It has some limitations.  It works through the WIA 1.0 interface, and is not designed to handle duplex scanners.

Kodak Alaris Inc. provides a way around this using the const.ini file for its WIA driver.  See the Debugging section for information on the location of the const.ini file.  Make sure the following items are present in this file:

            [dsidentity]

            ForceVersion=1

            ForceWiaAutomation=1
            ForceReset=1

Please note that these settings may cause problems with some WIA applications, especially on Windows 7 and later.  Do not set these values unless you must have duplex support for WIA Automation.

What follows is a sample VB Script showing how WIA Automation can be used running wscript from the command line:

 

' Variables...

Dim devmgr

Dim CommonDialog1

Dim dev

Dim itms

Dim itm

Dim img

Dim count

Dim filesys

Dim name

Dim info

Dim scannername

 

' The scanner we want to use...

scannername = "KODAK i2800 Scanner"

 

' Get our objects...

Set filesys = CreateObject("Scripting.FileSystemObject")

Set devmgr = CreateObject("WIA.DeviceManager")

Set CommonDialog1 = CreateObject("WIA.CommonDialog")

 

' Find our scanner...

For Each info in devmgr.DeviceInfos

            If info.Properties("Name").Value = scannername Then

                        Exit For

            End If

Next

If devmgr Is Nothing Then

            MsgBox scannername & " not found..."

            WScript.Quit

End If

 

' Connect to it...

set dev = info.Connect

 

' Pick the Scan item...

Set itm = dev.GetItem(dev.Items(1).ItemID)

 

' Configure Root...

dev.Properties("Document Handling Select") = 5 ' FEEDER | DUPLEX

dev.Properties("Pages") = 0 ' Scan all pages

 

' Configure Root/Scan...

itm.Properties("Data Type") = 0 ' Black & White

itm.Properties("Compression").Value = 0 ' NONE

itm.Properties("Horizontal Resolution").Value = 200

itm.Properties("Vertical Resolution").Value = 200

 

' Any attempt to change setting after this point will

' be ignored for the duration of scanning...

count = 0

Do

            ' Scan...

            Err.Clear

            Set img = CommonDialog1.ShowTransfer(itm, "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}", False)

 

            ' Handle errors and end-of-job...

            If Err.Number <> 0 Then

                        If Err.Number = -2145320957 And count > 0 Then

                                    'out of paper...

                        Else

                                    MsgBox Err.Number & ": " & Err.Description

                        End If

                        Err.Clear ' Clear the error.

                        Exit Do

            End If

            If img Is Nothing Then

                        'User cancelled the scan

                        Exit Do

            End If

 

            ' Save the image...

            count = count + 1

            name = "C:\temp\www" & count & ".bmp"

            If filesys.FileExists(name) Then

                        filesys.DeleteFile(name)

            End If

            img.SaveFile(name)

 

Loop

 

' Report the result...

MsgBox "scanned " & count & " images..."