| Requirements to be a TWAIN-Compliant Source |
| Requirements |
| TWAIN-compliant Sources must support the following: |
| Operations |
| ---------- |
| DG_CONTROL / DAT_CAPABILITY / MSG_GET |
| DG_CONTROL / DAT_CAPABILITY / MSG_GETCURRENT |
| DG_CONTROL / DAT_CAPABILITY / MSG_GETDEFAULT |
| DG_CONTROL / DAT_CAPABILITY / MSG_RESET |
| DG_CONTROL / DAT_CAPABILITY / MSG_SET |
| DG_CONTROL / DAT_EVENT / MSG_PROCESSEVENT |
| DG_CONTROL / DAT_IDENTITY / MSG_GET |
| DG_CONTROL / DAT_IDENTITY / MSG_OPENDS |
| DG_CONTROL / DAT_IDENTITY / MSG_CLOSEDS |
| DG_CONTROL / DAT_PENDINGXFERS / MSG_ENDXFER |
| DG_CONTROL / DAT_PENDINGXFERS / MSG_GET |
| DG_CONTROL / DAT_PENDINGXFERS / MSG_RESET |
| DG_CONTROL / DAT_SETUPMEMXFER / MSG_GET |
| DG_CONTROL / DAT_STATUS / MSG_GET |
| DG_CONTROL / DAT_USERINTERFACE / MSG_DISABLEDS |
| DG_CONTROL / DAT_USERINTERFACE / MSG_ENABLEDS |
| DG_CONTROL / DAT_XFERGROUP / MSG_GET |
| DG_IMAGE / DAT_IMAGEINFO / MSG_GET |
| DG_IMAGE / DAT_IMAGELAYOUT / MSG_GET |
| DG_IMAGE / DAT_IMAGELAYOUT / MSG_GETDEFAULT |
| DG_IMAGE / DAT_IMAGELAYOUT / MSG_RESET |
| DG_IMAGE / DAT_IMAGELAYOUT / MSG_SET |
| DG_IMAGE / DAT_IMAGEMEMXFER / MSG_GET |
| DG_IMAGE / DAT_IMAGENATIVEXFER / MSG_GET |
| |
| Capabilities |
| ------------ |
| Every Source must support all five DG_CONTROL / DAT_CAPABILITY operations on: |
| CAP_XFERCOUNT |
| Every Source must support DG_CONTROL / DAT_CAPABILITY MSG_GET on: |
| CAP_SUPPORTEDCAPS |
| CAP_UICONTROLLABLE |
| Sources that supply image information must support DG_CONTROL / DAT_CAPABILITY / |
| MSG_GET, MSG_GETCURRENT, MSG_GETDEFAULT on: |
| ICAP_COMPRESSION |
| ICAP_PLANARCHUNKY |
| ICAP_PHYSICALHEIGHT |
| ICAP_PHYSICALWIDTH |
| ICAP_PIXELFLAVOR |
| Sources that supply image information must support DG_CONTROL / DAT_CAPABILITY / |
| MSG_GET, MSG_GETCURRENT, MSG_GETDEFAULT, MSG_RESET and MSG_SET on: |
| ICAP_BITDEPTH |
| ICAP_BITORDER |
| ICAP_PIXELTYPE |
| ICAP_UNITS |
| ICAP_XFERMECH |
| ICAP_XRESOLUTION |
| ICAP_YRESOLUTION |
| All Sources must implement the advertised features supported by their devices. They must |
| make these features available to applications via the TWAIN protocol. For example, a Source |
| thats connected to a device that has an ADF must support DG_CONTROL / |
| DAT_CAPABILITY / MSG_GET, MSG_GETCURRENT, MSG_GETDEFAULT on: |
| CAP_FEEDERENABLED |
| CAP_FEEDERLOADED |
| and DG_CONTROL / DAT_CAPABILITY / MSG_GET, MSG_GETCURRENT, |
| MSG_GETDEFAULT, MSG_RESET and MSG_SET on: |
| CAP_AUTOFEED |
| If the ADF also supports ejecting and rewinding of pages then the Source should also support |
| DG_CONTROL / DAT_CAPABILITY / MSG_GET, MSG_GETCURRENT, |
| MSG_GETDEFAULT, MSG_RESET and MSG_SET on: |
| CAP_CLEARPAGE |
| CAP_REWINDPAGE |
| |
| |
| ******************************************************************************* |
| |
| From Application to Source Manager (Control Information) |
| |
| Data Group Data Argument Type Message |
| DG_CONTROL DAT_IDENTITY MSG_CLOSEDS |
| MSG_GETDEFAULT |
| MSG_GETFIRST |
| MSG_GETNEXT |
| MSG_OPENDS |
| MSG_USERSELECT |
| DG_CONTROL DAT_PARENT MSG_CLOSEDSM |
| MSG_OPENDSM |
| DG_CONTROL DAT_STATUS MSG_GET |
| |
| From Application to Source (Control Information) |
| Data Group Data Argument Type Message |
| DG_CONTROL DAT_CAPABILITY MSG_GET |
| MSG_GETCURRENT |
| MSG_GETDEFAULT |
| MSG_QUERYSUPPORT |
| MSG_RESET |
| MSG_SET |
| DG_CONTROL DAT_CUSTOMDSDATA MSG_GET |
| MSG_SET |
| DG_CONTROL DAT_FILESYSTEM MSG_AUTOMATICCAPTURE |
| DIRECTORY |
| MSG_CHANGEDIRECTORY |
| MSG_COPY |
| MSG_CREATEDIRECTORY |
| MSG_DELETE |
| MSG_FORMATMEDIA |
| MSG_GETCLOSE |
| MSG_GETFIRSTFILE |
| MSG_GETINFO |
| MSG_GETNEXTFILE |
| MSG_RENAME |
| DG_CONTROL DAT_EVENT MSG_PROCESSEVENT |
| DG_CONTROL DAT_PASSTHRU MSG_PASSTHRU |
| DG_CONTROL DAT_PENDINGXFERS MSG_ENDXFER |
| MSG_GET |
| MSG_RESET |
| MSG_STOPFEEDER |
| DG_CONTROL DAT_SETUPFILEXFER MSG_GET |
| MSG_GETDEFAULT |
| MSG_RESET |
| MSG_SET |
| DG_CONTROL DAT_SETUPFILEXFER2 MSG_GET |
| MSG_GETDEFAULT |
| MSG_RESET |
| MSG_SET |
| DG_CONTROL DAT_SETUPMEMXFER MSG_GET |
| DG_CONTROL DAT_STATUS MSG_GET |
| DG_CONTROL DAT_USERINTERFACE MSG_DISABLEDS |
| MSG_ENABLEDS |
| MSG_ENABLEDSUIONLY |
| DG_CONTROL DAT_XFERGROUP MSG_GET |
| MSG_SET |
| |
| From Application to Source (Image Information) |
| Data Group Data Argument Type Message |
| DG_IMAGE DAT_CIECOLOR MSG_GET |
| DG_IMAGE DAT_EXTIMAGEINFO MSG_GET |
| DG_IMAGE DAT_GRAYRESPONSE MSG_RESET |
| MSG_SET |
| DG_IMAGE DAT_IMAGEFILEXFER MSG_GET |
| DG_IMAGE DAT_IMAGEINFO MSG_GET |
| DG_IMAGE DAT_IMAGELAYOUT MSG_GET |
| MSG_GETDEFAULT |
| MSG_RESET |
| MSG_SET |
| DG_IMAGE DAT_IMAGEMEMXFER MSG_GET |
| DG_IMAGE DAT_IMAGENATIVEXFER MSG_GET |
| DG_IMAGE DAT_JPEGCOMPRESSION MSG_GET |
| MSG_GETDEFAULT |
| MSG_RESET |
| MSG_SET |
| DG_IMAGE DAT_PALETTE8 MSG_GET |
| MSG_GETDEFAULT |
| MSG_RESET |
| MSG_SET |
| DG_IMAGE DAT_RGBRESPONSE MSG_RESET |
| MSG_SET |
| |
| From Application to Source (Audio Information) |
| Data Group Data Argument Type Message |
| DG_AUDIO DAT_AUDIOFILEXFER MSG_GET |
| DG_AUDIO DAT_AUDIOINFO MSG_GET |
| DG_AUDIO DAT_AUDIONATIVEXFER MSG_GET |
| |
| From Source Manager to Source (Control Information) |
| Data Group Data Argument Type Message |
| DG_CONTROL DAT_IDENTITY MSG_CLOSEDS |
| MSG_GET |
| MSG_OPENDS |
| |
| From Source to Application (Control Information via the Source Manager) |
| (Used by Windows Sources only) |
| Data Group Data Argument Type Message |
| DG_CONTROL DAT_NULL MSG_CLOSEDSOK |
| MSG_CLOSEDSREQ |
| MSG_DEVICEEVENT |
| MSG_XFERREADY |