Device Capabilities
The capabilities of an image acquisition device are the various aspects of the device that can be changed or queried. For example, the resolution, pixel depth, gamma correction, page orientation, halftone patterns, duplex scanning, etc. are considered device capabilities. The number and types of capabilities vary between devices. For example, some devices may support changing the resolution, while others may not.
The list of all possible device capabilities and what each one does is available in the current Twain 1.9 specification. The specification can be obtained at the following URLs:
http://www.dynarithmic.com/Download/Spec1_9_197.pdf http://www.twain.org/docs/Spec1_9_197.pdf
Negotiating is the term used to define the functions of getting and setting capability values for a particular Source. DTWAIN allows you to negotiate the capabilities available easily. You can also query whether a capability is supported for a particular Source, as well as get all of the supported capabilities for a device.
The capabilities are usually set when the Source is opened, but not yet acquiring images (TWAIN State 4). There are other capabilities called extended capabilities that are negotiated when the Source is in the acquisition states (State 5 and State 6). The extended capabilities include ejecting a blank page (e.g. use the blank page as a job separator). Currently, a majority of the Sources do not have extended capabilities.
Some Sources also support custom capabilities. These capabilities are defined by the manufacturer of the device. If your application decides to use custom capabilities, you must have prior knowledge as to how and when the capability is to be used. The custom capabilities have values that are greater than or equal to 32,768. DTWAIN DLL supports setting and getting values from custom capabilities.
Capability Containers and DTWAIN
DTWAIN has encapsulated some capabilities with functions such as DTWAIN_SetBrightness, DTWAIN_GetContrast, DTWAIN_EnableFeeder, etc. However, if your application needs to supply functionality that has no DTWAIN functional equivalent, the way to provide the support is to set the capability yourself using DTWAIN_SetCapValues.
|