| 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 |