update for HEAD-2003091401
[reactos.git] / lib / twain / TWAIN
diff --git a/lib/twain/TWAIN b/lib/twain/TWAIN
new file mode 100644 (file)
index 0000000..29bc4f3
--- /dev/null
@@ -0,0 +1,172 @@
+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