xref: /aoo41x/main/twain/inc/twain.h (revision 124601a8)
1cdf0e10cSrcweir /* ======================================================================== *\
2cdf0e10cSrcweir 
34faf9d3aSPedro Giffuni   Copyright (C) 2007 TWAIN Working Group: Adobe Systems Incorporated,
44faf9d3aSPedro Giffuni   AnyDoc Software Inc., Eastman Kodak Company, Fujitsu Computer Products
54faf9d3aSPedro Giffuni   of America, JFL Peripheral Solutions Inc., Ricoh Corporation, and
64faf9d3aSPedro Giffuni   Xerox Corporation.  All rights reserved.
74faf9d3aSPedro Giffuni 
8cdf0e10cSrcweir   Copyright (C) 1991, 1992 TWAIN Working Group: Aldus, Caere, Eastman-Kodak,
9cdf0e10cSrcweir   Hewlett-Packard and Logitech Corporations.  All rights reserved.
10cdf0e10cSrcweir 
11cdf0e10cSrcweir   Copyright (C) 1997 TWAIN Working Group: Bell+Howell, Canon, DocuMagix,
12cdf0e10cSrcweir   Fujitsu, Genoa Technology, Hewlett-Packard, Kofax Imaging Products, and
13cdf0e10cSrcweir   Ricoh Corporation.  All rights reserved.
14cdf0e10cSrcweir 
15cdf0e10cSrcweir   Copyright � 1998 TWAIN Working Group: Adobe Systems Incorporated,
16cdf0e10cSrcweir   Canon Information Systems, Eastman Kodak Company,
17cdf0e10cSrcweir   Fujitsu Computer Products of America, Genoa Technology,
18cdf0e10cSrcweir   Hewlett-Packard Company, Intel Corporation, Kofax Image Products,
19cdf0e10cSrcweir   JFL Peripheral Solutions Inc., Ricoh Corporation, and Xerox Corporation.
20cdf0e10cSrcweir   All rights reserved.
21cdf0e10cSrcweir 
22cdf0e10cSrcweir   Copyright � 2000 TWAIN Working Group: Adobe Systems Incorporated,
23cdf0e10cSrcweir   Canon Information Systems, Digimarc Corporation, Eastman Kodak Company,
24cdf0e10cSrcweir   Fujitsu Computer Products of America, Hewlett-Packard Company,
25cdf0e10cSrcweir   JFL Peripheral Solutions Inc., Ricoh Corporation, and Xerox Corporation.
26cdf0e10cSrcweir   All rights reserved.
27cdf0e10cSrcweir 
28cdf0e10cSrcweir 
29cdf0e10cSrcweir   TWAIN.h -  This is the definitive include file for applications and
30cdf0e10cSrcweir           data sources written to the TWAIN specification.
31cdf0e10cSrcweir           It defines constants, data structures, messages etc.
32cdf0e10cSrcweir           for the public interface to TWAIN.
33cdf0e10cSrcweir 
34cdf0e10cSrcweir   Revision History:
35cdf0e10cSrcweir     version 1.0, March 6, 1992.  TWAIN 1.0.
36cdf0e10cSrcweir     version 1.1, January 1993.   Tech Notes 1.1
37cdf0e10cSrcweir     version 1.5, June 1993.      Specification Update 1.5
38cdf0e10cSrcweir                                  Change DC to TW
39cdf0e10cSrcweir                                  Change filename from DC.H to TWAIN.H
40cdf0e10cSrcweir     version 1.5, July 1993.      Remove spaces from country identifiers
41cdf0e10cSrcweir 
42cdf0e10cSrcweir     version 1.7, July 1997       Added Capabilities and data structure for
43cdf0e10cSrcweir                                  document imaging and digital cameras.
44cdf0e10cSrcweir                                  KHL.
45cdf0e10cSrcweir     version 1.7, July 1997       Inserted Borland compatibile structure packing
46cdf0e10cSrcweir                                  directives provided by Mentor.  JMH
47cdf0e10cSrcweir     version 1.7, Aug 1997        Expanded file tabs to spaces.
48cdf0e10cSrcweir                                  NOTE: future authors should be sure to have
49cdf0e10cSrcweir                                  their editors set to automatically expand tabs
50cdf0e10cSrcweir                                  to spaces (original tab setting was 4 spaces).
51cdf0e10cSrcweir     version 1.7, Sept 1997       Added job control values
52cdf0e10cSrcweir                                  Added return codes
53cdf0e10cSrcweir     version 1.7, Sept 1997       changed definition of pRGBRESPONSE to
54cdf0e10cSrcweir                                  pTW_RGBRESPONSE
55cdf0e10cSrcweir     version 1.7  Aug 1998        Added missing TWEI_BARCODEROTATION values
56cdf0e10cSrcweir                                  TWBCOR_ types JMH
57cdf0e10cSrcweir     version 1.8  August 1998     Added new types and definitions required
58cdf0e10cSrcweir                                  for 1.8 Specification JMH
59cdf0e10cSrcweir     version 1.8  January 1999    Changed search mode from SRCH_ to TWBD_ as
604faf9d3aSPedro Giffuni                                  in 1.8 Specification, added TWBT_MAXICODE JMH
614faf9d3aSPedro Giffuni     version 1.8  January 1999    Removed undocumented duplicate AUTO<cap> JMH
62cdf0e10cSrcweir     version 1.8  March 1999      Removed undocumented 1.8 caps:
63cdf0e10cSrcweir                                  CAP_FILESYSTEM
64cdf0e10cSrcweir                                  CAP_PAPERBINDING
65cdf0e10cSrcweir                                  CAP_PASSTHRU
66cdf0e10cSrcweir                                  CAP_POWERDOWNTIME
67cdf0e10cSrcweir                                  ICAP_AUTODISCARDBLANKPAGES
68cdf0e10cSrcweir                                * CAP_PAGEMULTIPLEACQUIRE - is CAP_REACQUIREALLOWED,
694faf9d3aSPedro Giffuni                                requires spec change.  JMH
70cdf0e10cSrcweir                                  Added Mac structure packing modifications JMH
714faf9d3aSPedro Giffuni     version 1.9  March 2000  Added new types and definations required
724faf9d3aSPedro Giffuni                              for 1.9 Specification MLM
734faf9d3aSPedro Giffuni     version 1.9  March 2000  Added ICAP_JPEGQUALITY, TWJQ_ values,
74cdf0e10cSrcweir                                  updated TWON_PROTOCOLMINOR for Release v1.9 MN
754faf9d3aSPedro Giffuni     version 1.91 August 2007     Added new types and definitions required
764faf9d3aSPedro Giffuni                                  for 1.91 Specification MLM
774faf9d3aSPedro Giffuni     version 2.0  Sept 2007       Added new types and definitions required
784faf9d3aSPedro Giffuni                                  for 2.0 Specification FHH
794faf9d3aSPedro Giffuni     version 2.0  Mar 2008        Depreciated ICAP_PIXELTYPEs TWPT_SRGB64, TWPT_BGR,
804faf9d3aSPedro Giffuni                                  TWPT_CIELAB, TWPT_CIELUV, and TWPT_YCBCR  JMW
814faf9d3aSPedro Giffuni     version 2.0  Mar 2008        Added missing new 2.0 CAP_ definitions JMW
824faf9d3aSPedro Giffuni     version 2.0  Dec 2008        Updated TW_INFO structure for 64bit JMW
834faf9d3aSPedro Giffuni     version 2.1  Mar 2009        Added new types and definitions required
844faf9d3aSPedro Giffuni                                  for 2.1 Specification JMW
85cdf0e10cSrcweir \* ======================================================================== */
86cdf0e10cSrcweir 
87cdf0e10cSrcweir #ifndef TWAIN
88cdf0e10cSrcweir #define TWAIN
89cdf0e10cSrcweir 
90cdf0e10cSrcweir /****************************************************************************
91cdf0e10cSrcweir  * TWAIN Version                                                            *
92cdf0e10cSrcweir  ****************************************************************************/
934faf9d3aSPedro Giffuni #define TWON_PROTOCOLMINOR   1        /* Changed for Version 2.1            */
944faf9d3aSPedro Giffuni #define TWON_PROTOCOLMAJOR   2
95cdf0e10cSrcweir 
96cdf0e10cSrcweir /****************************************************************************
97cdf0e10cSrcweir  * Platform Dependent Definitions and Typedefs                              *
98cdf0e10cSrcweir  ****************************************************************************/
99cdf0e10cSrcweir 
1004faf9d3aSPedro Giffuni /*
1014faf9d3aSPedro Giffuni  * Mingw32 may be detected as both GNUC or WIN32/64 so try
1024faf9d3aSPedro Giffuni  * to detect it early and override both GNU and MS.
1034faf9d3aSPedro Giffuni  */
1044faf9d3aSPedro Giffuni #if defined(__MINGW32__)
105*124601a8SPedro Giffuni     #define TWH_CMP_MING32
1064faf9d3aSPedro Giffuni #endif
1074faf9d3aSPedro Giffuni 
1084faf9d3aSPedro Giffuni /* Microsoft C/C++ Compiler */
1094faf9d3aSPedro Giffuni #if defined(WIN32) || defined(WIN64) || defined (_WINDOWS)
1104faf9d3aSPedro Giffuni     #define TWH_CMP_MSC
1114faf9d3aSPedro Giffuni     #if  defined(_WIN64) || defined(WIN64)
1124faf9d3aSPedro Giffuni       #define TWH_64BIT
1134faf9d3aSPedro Giffuni     #elif defined(WIN32) || defined(_WIN32)
1144faf9d3aSPedro Giffuni       #define TWH_32BIT
1154faf9d3aSPedro Giffuni     #endif
1164faf9d3aSPedro Giffuni 
1174faf9d3aSPedro Giffuni /* Apple Compiler (which is GNU now) */
1184faf9d3aSPedro Giffuni #elif defined(__APPLE__)
1194faf9d3aSPedro Giffuni     #define TWH_CMP_XCODE
1204faf9d3aSPedro Giffuni     #define TWH_32BIT
1214faf9d3aSPedro Giffuni 
1224faf9d3aSPedro Giffuni /* GNU C/C++ Compiler */
1234faf9d3aSPedro Giffuni #elif defined(__GNUC__)
1244faf9d3aSPedro Giffuni     #define TWH_CMP_GNU
1254faf9d3aSPedro Giffuni     #if defined(__alpha__)\
1264faf9d3aSPedro Giffuni         ||defined(__ia64__)\
1274faf9d3aSPedro Giffuni         ||defined(__ppc64__)\
1284faf9d3aSPedro Giffuni         ||defined(__s390x__)\
1294faf9d3aSPedro Giffuni         ||defined(__x86_64__)
1304faf9d3aSPedro Giffuni       #define TWH_64BIT
1314faf9d3aSPedro Giffuni     #else
1324faf9d3aSPedro Giffuni       #define TWH_32BIT
1334faf9d3aSPedro Giffuni     #endif
134cdf0e10cSrcweir 
1354faf9d3aSPedro Giffuni /* Borland C/C++ Compiler */
1364faf9d3aSPedro Giffuni #elif defined(__BORLAND__)
1374faf9d3aSPedro Giffuni     #define TWH_CMP_BORLAND
1384faf9d3aSPedro Giffuni     #define TWH_32BIT
1394faf9d3aSPedro Giffuni /* Unrecognized */
1404faf9d3aSPedro Giffuni #else
1414faf9d3aSPedro Giffuni     #error Unrecognized compiler
1424faf9d3aSPedro Giffuni #endif
1434faf9d3aSPedro Giffuni 
1444faf9d3aSPedro Giffuni /* Win32 and Win64 systems */
1454faf9d3aSPedro Giffuni #if defined(TWH_CMP_MSC) | defined(TWH_CMP_BORLAND)
1464faf9d3aSPedro Giffuni     typedef HANDLE  TW_HANDLE;
1474faf9d3aSPedro Giffuni     typedef LPVOID  TW_MEMREF;
1484faf9d3aSPedro Giffuni     typedef UINT_PTR TW_UINTPTR;
1494faf9d3aSPedro Giffuni 
1504faf9d3aSPedro Giffuni /* MacOS/X... */
1514faf9d3aSPedro Giffuni #elif defined(TWH_CMP_XCODE)
1524faf9d3aSPedro Giffuni     #define PASCAL   pascal
1534faf9d3aSPedro Giffuni     #define FAR
1544faf9d3aSPedro Giffuni     typedef Handle   TW_HANDLE;
1554faf9d3aSPedro Giffuni     typedef char    *TW_MEMREF;
1564faf9d3aSPedro Giffuni 
1574faf9d3aSPedro Giffuni     #ifdef TWH_32BIT
1584faf9d3aSPedro Giffuni       //32 bit GNU
1594faf9d3aSPedro Giffuni       typedef unsigned long      TW_UINTPTR;
1604faf9d3aSPedro Giffuni     #else
1614faf9d3aSPedro Giffuni       //64 bit GNU
1624faf9d3aSPedro Giffuni       typedef unsigned long long TW_UINTPTR;
1634faf9d3aSPedro Giffuni     #endif
164cdf0e10cSrcweir 
1654faf9d3aSPedro Giffuni /* Everything else... */
1664faf9d3aSPedro Giffuni #else
1674faf9d3aSPedro Giffuni     #define PASCAL
1684faf9d3aSPedro Giffuni     #define FAR
1694faf9d3aSPedro Giffuni     typedef void* TW_HANDLE;
1704faf9d3aSPedro Giffuni     typedef void* TW_MEMREF;
1714faf9d3aSPedro Giffuni     typedef unsigned char BYTE;
1724faf9d3aSPedro Giffuni 
1734faf9d3aSPedro Giffuni     #ifdef TWH_32BIT
1744faf9d3aSPedro Giffuni       //32 bit GNU
1754faf9d3aSPedro Giffuni       typedef unsigned long      TW_UINTPTR;
1764faf9d3aSPedro Giffuni     #else
1774faf9d3aSPedro Giffuni       //64 bit GNU
1784faf9d3aSPedro Giffuni       typedef unsigned long long TW_UINTPTR;
1794faf9d3aSPedro Giffuni     #endif
1804faf9d3aSPedro Giffuni #endif
1814faf9d3aSPedro Giffuni 
1824faf9d3aSPedro Giffuni 
1834faf9d3aSPedro Giffuni /* Set the packing: this occurs before any structures are defined */
1846538ed46SPedro Giffuni #if defined(TWH_CMP_MING32)
1854faf9d3aSPedro Giffuni     #pragma pack (push, 2)
1866538ed46SPedro Giffuni #elif defined(TWH_CMP_MSC)
1874faf9d3aSPedro Giffuni     #pragma pack (push, before_twain)
1884faf9d3aSPedro Giffuni     #pragma pack (2)
1894faf9d3aSPedro Giffuni #elif defined(TWH_CMP_GNU)
1904faf9d3aSPedro Giffuni     #pragma pack (push, before_twain)
1914faf9d3aSPedro Giffuni     #pragma pack (2)
1924faf9d3aSPedro Giffuni #elif defined(TWH_CMP_BORLAND)
1934faf9d3aSPedro Giffuni     #pragma option -a2
1944faf9d3aSPedro Giffuni #elif defined(TWH_CMP_XCODE)
195cdf0e10cSrcweir     #if PRAGMA_STRUCT_ALIGN
1964faf9d3aSPedro Giffuni         #pragma options align=mac68k
197cdf0e10cSrcweir     #elif PRAGMA_STRUCT_PACKPUSH
1984faf9d3aSPedro Giffuni         #pragma pack (push, 2)
199cdf0e10cSrcweir     #elif PRAGMA_STRUCT_PACK
2004faf9d3aSPedro Giffuni         #pragma pack (2)
201cdf0e10cSrcweir     #endif
2024faf9d3aSPedro Giffuni #endif
203cdf0e10cSrcweir 
204cdf0e10cSrcweir 
205cdf0e10cSrcweir /****************************************************************************
206cdf0e10cSrcweir  * Type Definitions                                                         *
207cdf0e10cSrcweir  ****************************************************************************/
208cdf0e10cSrcweir 
209cdf0e10cSrcweir /* String types. These include room for the strings and a NULL char,     *
210cdf0e10cSrcweir  * or, on the Mac, a length byte followed by the string.                 *
211cdf0e10cSrcweir  * TW_STR255 must hold less than 256 chars so length fits in first byte. */
212cdf0e10cSrcweir typedef char    TW_STR32[34],     FAR *pTW_STR32;
213cdf0e10cSrcweir typedef char    TW_STR64[66],     FAR *pTW_STR64;
214cdf0e10cSrcweir typedef char    TW_STR128[130],   FAR *pTW_STR128;
215cdf0e10cSrcweir typedef char    TW_STR255[256],   FAR *pTW_STR255;
216cdf0e10cSrcweir 
217cdf0e10cSrcweir /* Numeric types. */
218cdf0e10cSrcweir typedef char           TW_INT8,   FAR *pTW_INT8;
219cdf0e10cSrcweir typedef short          TW_INT16,  FAR *pTW_INT16;
220cdf0e10cSrcweir typedef long           TW_INT32,  FAR *pTW_INT32;
221cdf0e10cSrcweir typedef unsigned char  TW_UINT8,  FAR *pTW_UINT8;
222cdf0e10cSrcweir typedef unsigned short TW_UINT16, FAR *pTW_UINT16;
223cdf0e10cSrcweir typedef unsigned long  TW_UINT32, FAR *pTW_UINT32;
224cdf0e10cSrcweir typedef unsigned short TW_BOOL,   FAR *pTW_BOOL;
225cdf0e10cSrcweir 
2264faf9d3aSPedro Giffuni 
2274faf9d3aSPedro Giffuni /****************************************************************************
2284faf9d3aSPedro Giffuni  * Structure Definitions                                                    *
2294faf9d3aSPedro Giffuni  ****************************************************************************/
2304faf9d3aSPedro Giffuni 
231cdf0e10cSrcweir /* Fixed point structure type. */
232cdf0e10cSrcweir typedef struct {
233cdf0e10cSrcweir     TW_INT16     Whole;        /* maintains the sign */
234cdf0e10cSrcweir     TW_UINT16    Frac;
235cdf0e10cSrcweir } TW_FIX32,  FAR *pTW_FIX32;
236cdf0e10cSrcweir 
2374faf9d3aSPedro Giffuni /* No DAT.  Defines a frame rectangle in ICAP_UNITS coordinates. */
238cdf0e10cSrcweir typedef struct {
2394faf9d3aSPedro Giffuni    TW_FIX32   Left;
2404faf9d3aSPedro Giffuni    TW_FIX32   Top;
2414faf9d3aSPedro Giffuni    TW_FIX32   Right;
2424faf9d3aSPedro Giffuni    TW_FIX32   Bottom;
2434faf9d3aSPedro Giffuni } TW_FRAME, FAR * pTW_FRAME;
244cdf0e10cSrcweir 
245cdf0e10cSrcweir /* No DAT needed. */
246cdf0e10cSrcweir typedef struct {
247cdf0e10cSrcweir    TW_FIX32   StartIn;
248cdf0e10cSrcweir    TW_FIX32   BreakIn;
249cdf0e10cSrcweir    TW_FIX32   EndIn;
250cdf0e10cSrcweir    TW_FIX32   StartOut;
251cdf0e10cSrcweir    TW_FIX32   BreakOut;
252cdf0e10cSrcweir    TW_FIX32   EndOut;
253cdf0e10cSrcweir    TW_FIX32   Gamma;
254cdf0e10cSrcweir    TW_FIX32   SampleCount;  /* if =0 use the gamma */
255cdf0e10cSrcweir } TW_DECODEFUNCTION, FAR * pTW_DECODEFUNCTION;
256cdf0e10cSrcweir 
257cdf0e10cSrcweir /* No DAT needed. */
258cdf0e10cSrcweir typedef struct {
259cdf0e10cSrcweir    TW_DECODEFUNCTION   Decode[3];
260cdf0e10cSrcweir    TW_FIX32            Mix[3][3];
261cdf0e10cSrcweir } TW_TRANSFORMSTAGE, FAR * pTW_TRANSFORMSTAGE;
262cdf0e10cSrcweir 
263cdf0e10cSrcweir /* TWON_ARRAY. Container for array of values (a simplified TW_ENUMERATION) */
264cdf0e10cSrcweir typedef struct {
265cdf0e10cSrcweir    TW_UINT16  ItemType;
266cdf0e10cSrcweir    TW_UINT32  NumItems;    /* How many items in ItemList           */
267cdf0e10cSrcweir    TW_UINT8   ItemList[1]; /* Array of ItemType values starts here */
268cdf0e10cSrcweir } TW_ARRAY, FAR * pTW_ARRAY;
269cdf0e10cSrcweir 
2704faf9d3aSPedro Giffuni /* DAT_AUDIOINFO, information about audio data */
271cdf0e10cSrcweir typedef struct {
2724faf9d3aSPedro Giffuni    TW_STR255  Name;       /* name of audio data */
2734faf9d3aSPedro Giffuni    TW_UINT32  Reserved;   /* reserved space */
2744faf9d3aSPedro Giffuni } TW_AUDIOINFO, FAR * pTW_AUDIOINFO;
275cdf0e10cSrcweir 
2764faf9d3aSPedro Giffuni /* TW_CALLBACK, used to register callbacks Added 2.0 */
2774faf9d3aSPedro Giffuni typedef struct  {
2784faf9d3aSPedro Giffuni     TW_MEMREF   CallBackProc;
2794faf9d3aSPedro Giffuni     TW_UINT32   RefCon;
2804faf9d3aSPedro Giffuni     TW_INT16    Message;
2814faf9d3aSPedro Giffuni } TW_CALLBACK, FAR * pTW_CALLBACK;
282cdf0e10cSrcweir 
283cdf0e10cSrcweir /* DAT_CAPABILITY. Used by application to get/set capability from/in a data source. */
284cdf0e10cSrcweir typedef struct {
285cdf0e10cSrcweir    TW_UINT16  Cap; /* id of capability to set or get, e.g. CAP_BRIGHTNESS */
286cdf0e10cSrcweir    TW_UINT16  ConType; /* TWON_ONEVALUE, _RANGE, _ENUMERATION or _ARRAY   */
287cdf0e10cSrcweir    TW_HANDLE  hContainer; /* Handle to container of type Dat              */
288cdf0e10cSrcweir } TW_CAPABILITY, FAR * pTW_CAPABILITY;
289cdf0e10cSrcweir 
2904faf9d3aSPedro Giffuni /* No DAT needed. */
2914faf9d3aSPedro Giffuni typedef struct {
2924faf9d3aSPedro Giffuni    TW_FIX32   X;
2934faf9d3aSPedro Giffuni    TW_FIX32   Y;
2944faf9d3aSPedro Giffuni    TW_FIX32   Z;
2954faf9d3aSPedro Giffuni } TW_CIEPOINT, FAR * pTW_CIEPOINT;
2964faf9d3aSPedro Giffuni 
297cdf0e10cSrcweir /* DAT_CIECOLOR. */
298cdf0e10cSrcweir typedef struct {
299cdf0e10cSrcweir    TW_UINT16           ColorSpace;
300cdf0e10cSrcweir    TW_INT16            LowEndian;
301cdf0e10cSrcweir    TW_INT16            DeviceDependent;
302cdf0e10cSrcweir    TW_INT32            VersionNumber;
303cdf0e10cSrcweir    TW_TRANSFORMSTAGE   StageABC;
304cdf0e10cSrcweir    TW_TRANSFORMSTAGE   StageLMN;
305cdf0e10cSrcweir    TW_CIEPOINT         WhitePoint;
306cdf0e10cSrcweir    TW_CIEPOINT         BlackPoint;
307cdf0e10cSrcweir    TW_CIEPOINT         WhitePaper;
308cdf0e10cSrcweir    TW_CIEPOINT         BlackInk;
309cdf0e10cSrcweir    TW_FIX32            Samples[1];
310cdf0e10cSrcweir } TW_CIECOLOR, FAR * pTW_CIECOLOR;
311cdf0e10cSrcweir 
3124faf9d3aSPedro Giffuni typedef struct {
3134faf9d3aSPedro Giffuni     TW_UINT32  InfoLength;     /* Length of Information in bytes.  */
3144faf9d3aSPedro Giffuni     TW_HANDLE  hData;          /* Place holder for data, DS Allocates */
3154faf9d3aSPedro Giffuni }TW_CUSTOMDSDATA, FAR *pTW_CUSTOMDSDATA;
3164faf9d3aSPedro Giffuni 
3174faf9d3aSPedro Giffuni /* DAT_DEVICEEVENT, information about events */
3184faf9d3aSPedro Giffuni typedef struct {
3194faf9d3aSPedro Giffuni    TW_UINT32  Event;                  /* One of the TWDE_xxxx values. */
3204faf9d3aSPedro Giffuni    TW_STR255  DeviceName;             /* The name of the device that generated the event */
3214faf9d3aSPedro Giffuni    TW_UINT32  BatteryMinutes;         /* Battery Minutes Remaining    */
3224faf9d3aSPedro Giffuni    TW_INT16   BatteryPercentage;      /* Battery Percentage Remaining */
3234faf9d3aSPedro Giffuni    TW_INT32   PowerSupply;            /* Power Supply                 */
3244faf9d3aSPedro Giffuni    TW_FIX32   XResolution;            /* Resolution                   */
3254faf9d3aSPedro Giffuni    TW_FIX32   YResolution;            /* Resolution                   */
3264faf9d3aSPedro Giffuni    TW_UINT32  FlashUsed2;             /* Flash Used2                  */
3274faf9d3aSPedro Giffuni    TW_UINT32  AutomaticCapture;       /* Automatic Capture            */
3284faf9d3aSPedro Giffuni    TW_UINT32  TimeBeforeFirstCapture; /* Automatic Capture            */
3294faf9d3aSPedro Giffuni    TW_UINT32  TimeBetweenCaptures;    /* Automatic Capture            */
3304faf9d3aSPedro Giffuni } TW_DEVICEEVENT, FAR * pTW_DEVICEEVENT;
3314faf9d3aSPedro Giffuni 
3324faf9d3aSPedro Giffuni /* No DAT needed. */
3334faf9d3aSPedro Giffuni typedef struct {
3344faf9d3aSPedro Giffuni    TW_UINT8    Index;    /* Value used to index into the color table. */
3354faf9d3aSPedro Giffuni    TW_UINT8    Channel1; /* First  tri-stimulus value (e.g Red)       */
3364faf9d3aSPedro Giffuni    TW_UINT8    Channel2; /* Second tri-stimulus value (e.g Green)     */
3374faf9d3aSPedro Giffuni    TW_UINT8    Channel3; /* Third  tri-stimulus value (e.g Blue)      */
3384faf9d3aSPedro Giffuni } TW_ELEMENT8, FAR * pTW_ELEMENT8;
3394faf9d3aSPedro Giffuni 
3404faf9d3aSPedro Giffuni /* TWON_ENUMERATION. Container for a collection of values. */
3414faf9d3aSPedro Giffuni typedef struct {
3424faf9d3aSPedro Giffuni    TW_UINT16  ItemType;
3434faf9d3aSPedro Giffuni    TW_UINT32  NumItems;     /* How many items in ItemList                 */
3444faf9d3aSPedro Giffuni    TW_UINT32  CurrentIndex; /* Current value is in ItemList[CurrentIndex] */
3454faf9d3aSPedro Giffuni    TW_UINT32  DefaultIndex; /* Powerup value is in ItemList[DefaultIndex] */
3464faf9d3aSPedro Giffuni    TW_UINT8   ItemList[1];  /* Array of ItemType values starts here       */
3474faf9d3aSPedro Giffuni } TW_ENUMERATION, FAR * pTW_ENUMERATION;
3484faf9d3aSPedro Giffuni 
349cdf0e10cSrcweir /* DAT_EVENT. For passing events down from the application to the DS. */
350cdf0e10cSrcweir typedef struct {
351cdf0e10cSrcweir    TW_MEMREF  pEvent;    /* Windows pMSG or Mac pEvent.                 */
352cdf0e10cSrcweir    TW_UINT16  TWMessage; /* TW msg from data source, e.g. MSG_XFERREADY */
353cdf0e10cSrcweir } TW_EVENT, FAR * pTW_EVENT;
354cdf0e10cSrcweir 
3554faf9d3aSPedro Giffuni typedef struct {
3564faf9d3aSPedro Giffuni     TW_UINT16   InfoID;
3574faf9d3aSPedro Giffuni     TW_UINT16   ItemType;
3584faf9d3aSPedro Giffuni     TW_UINT16   NumItems;
3594faf9d3aSPedro Giffuni     union {
3604faf9d3aSPedro Giffuni       TW_UINT16   CondCode;    /* Depreciated, use ReturnCode. TWAIN 2.0 and older. */
3614faf9d3aSPedro Giffuni       TW_UINT16   ReturnCode;  /* TWAIN 2.1 and newer */
3624faf9d3aSPedro Giffuni     };
3634faf9d3aSPedro Giffuni     TW_UINTPTR  Item;
3644faf9d3aSPedro Giffuni }TW_INFO, FAR* pTW_INFO;
3654faf9d3aSPedro Giffuni 
3664faf9d3aSPedro Giffuni typedef struct {
3674faf9d3aSPedro Giffuni     TW_UINT32   NumInfos;
3684faf9d3aSPedro Giffuni     TW_INFO     Info[1];
3694faf9d3aSPedro Giffuni }TW_EXTIMAGEINFO, FAR* pTW_EXTIMAGEINFO;
3704faf9d3aSPedro Giffuni 
3714faf9d3aSPedro Giffuni /* DAT_FILESYSTEM, information about TWAIN file system */
3724faf9d3aSPedro Giffuni typedef struct {
3734faf9d3aSPedro Giffuni    /* DG_CONTROL / DAT_FILESYSTEM / MSG_xxxx fields     */
3744faf9d3aSPedro Giffuni    TW_STR255  InputName; /* The name of the input or source file */
3754faf9d3aSPedro Giffuni    TW_STR255  OutputName; /* The result of an operation or the name of a destination file */
3764faf9d3aSPedro Giffuni    TW_MEMREF  Context; /* Source specific data used to remember state information */
3774faf9d3aSPedro Giffuni    /* DG_CONTROL / DAT_FILESYSTEM / MSG_DELETE field    */
3784faf9d3aSPedro Giffuni    int        Recursive; /* recursively delete all sub-directories */
3794faf9d3aSPedro Giffuni    /* DG_CONTROL / DAT_FILESYSTEM / MSG_GETINFO fields  */
3804faf9d3aSPedro Giffuni    TW_INT32   FileType; /* One of the TWFY_xxxx values */
3814faf9d3aSPedro Giffuni    TW_UINT32  Size; /* Size of current FileType */
3824faf9d3aSPedro Giffuni    TW_STR32   CreateTimeDate; /* creation date of the file */
3834faf9d3aSPedro Giffuni    TW_STR32   ModifiedTimeDate; /* last date the file was modified */
3844faf9d3aSPedro Giffuni    TW_UINT32  FreeSpace; /* bytes of free space on the current device */
3854faf9d3aSPedro Giffuni    TW_INT32   NewImageSize; /* estimate of the amount of space a new image would take up */
3864faf9d3aSPedro Giffuni    TW_UINT32  NumberOfFiles; /* number of files, depends on FileType */
3874faf9d3aSPedro Giffuni    TW_UINT32  NumberOfSnippets; /* number of audio snippets */
3884faf9d3aSPedro Giffuni    TW_UINT32  DeviceGroupMask; /* used to group cameras (ex: front/rear bitonal, front/rear grayscale...) */
3894faf9d3aSPedro Giffuni    char       Reserved[508]; /**/
3904faf9d3aSPedro Giffuni } TW_FILESYSTEM, FAR * pTW_FILESYSTEM;
3914faf9d3aSPedro Giffuni 
392cdf0e10cSrcweir /* DAT_GRAYRESPONSE */
393cdf0e10cSrcweir typedef struct {
394cdf0e10cSrcweir    TW_ELEMENT8         Response[1];
395cdf0e10cSrcweir } TW_GRAYRESPONSE, FAR * pTW_GRAYRESPONSE;
396cdf0e10cSrcweir 
3974faf9d3aSPedro Giffuni /* No DAT needed.  Describes version of software currently running. */
3984faf9d3aSPedro Giffuni typedef struct {
3994faf9d3aSPedro Giffuni    TW_UINT16  MajorNum;  /* Major revision number of the software. */
4004faf9d3aSPedro Giffuni    TW_UINT16  MinorNum;  /* Incremental revision number of the software. */
4014faf9d3aSPedro Giffuni    TW_UINT16  Language;  /* e.g. TWLG_SWISSFRENCH */
4024faf9d3aSPedro Giffuni    TW_UINT16  Country;   /* e.g. TWCY_SWITZERLAND */
4034faf9d3aSPedro Giffuni    TW_STR32   Info;      /* e.g. "1.0b3 Beta release" */
4044faf9d3aSPedro Giffuni } TW_VERSION, FAR * pTW_VERSION;
4054faf9d3aSPedro Giffuni 
406cdf0e10cSrcweir /* DAT_IDENTITY. Identifies the program/library/code resource. */
407cdf0e10cSrcweir typedef struct {
408cdf0e10cSrcweir    TW_UINT32  Id;              /* Unique number.  In Windows, application hWnd      */
409cdf0e10cSrcweir    TW_VERSION Version;         /* Identifies the piece of code              */
410cdf0e10cSrcweir    TW_UINT16  ProtocolMajor;   /* Application and DS must set to TWON_PROTOCOLMAJOR */
411cdf0e10cSrcweir    TW_UINT16  ProtocolMinor;   /* Application and DS must set to TWON_PROTOCOLMINOR */
412cdf0e10cSrcweir    TW_UINT32  SupportedGroups; /* Bit field OR combination of DG_ constants */
413cdf0e10cSrcweir    TW_STR32   Manufacturer;    /* Manufacturer name, e.g. "Hewlett-Packard" */
414cdf0e10cSrcweir    TW_STR32   ProductFamily;   /* Product family name, e.g. "ScanJet"       */
415cdf0e10cSrcweir    TW_STR32   ProductName;     /* Product name, e.g. "ScanJet Plus"         */
416cdf0e10cSrcweir } TW_IDENTITY, FAR * pTW_IDENTITY;
417cdf0e10cSrcweir 
418cdf0e10cSrcweir /* DAT_IMAGEINFO. Application gets detailed image info from DS with this. */
419cdf0e10cSrcweir typedef struct {
420cdf0e10cSrcweir    TW_FIX32   XResolution;      /* Resolution in the horizontal             */
421cdf0e10cSrcweir    TW_FIX32   YResolution;      /* Resolution in the vertical               */
422cdf0e10cSrcweir    TW_INT32   ImageWidth;       /* Columns in the image, -1 if unknown by DS*/
423cdf0e10cSrcweir    TW_INT32   ImageLength;      /* Rows in the image, -1 if unknown by DS   */
424cdf0e10cSrcweir    TW_INT16   SamplesPerPixel;  /* Number of samples per pixel, 3 for RGB   */
425cdf0e10cSrcweir    TW_INT16   BitsPerSample[8]; /* Number of bits for each sample           */
426cdf0e10cSrcweir    TW_INT16   BitsPerPixel;     /* Number of bits for each padded pixel     */
427cdf0e10cSrcweir    TW_BOOL    Planar;           /* True if Planar, False if chunky          */
428cdf0e10cSrcweir    TW_INT16   PixelType;        /* How to interp data; photo interp (TWPT_) */
429cdf0e10cSrcweir    TW_UINT16  Compression;      /* How the data is compressed (TWCP_xxxx)   */
430cdf0e10cSrcweir } TW_IMAGEINFO, FAR * pTW_IMAGEINFO;
431cdf0e10cSrcweir 
432cdf0e10cSrcweir /* DAT_IMAGELAYOUT. Provides image layout information in current units. */
433cdf0e10cSrcweir typedef struct {
434cdf0e10cSrcweir    TW_FRAME   Frame;          /* Frame coords within larger document */
435cdf0e10cSrcweir    TW_UINT32  DocumentNumber;
436cdf0e10cSrcweir    TW_UINT32  PageNumber;     /* Reset when you go to next document  */
437cdf0e10cSrcweir    TW_UINT32  FrameNumber;    /* Reset when you go to next page      */
438cdf0e10cSrcweir } TW_IMAGELAYOUT, FAR * pTW_IMAGELAYOUT;
439cdf0e10cSrcweir 
4404faf9d3aSPedro Giffuni /* No DAT needed.  Used to manage memory buffers. */
4414faf9d3aSPedro Giffuni typedef struct {
4424faf9d3aSPedro Giffuni    TW_UINT32  Flags;  /* Any combination of the TWMF_ constants.           */
4434faf9d3aSPedro Giffuni    TW_UINT32  Length; /* Number of bytes stored in buffer TheMem.          */
4444faf9d3aSPedro Giffuni    TW_MEMREF  TheMem; /* Pointer or handle to the allocated memory buffer. */
4454faf9d3aSPedro Giffuni } TW_MEMORY, FAR * pTW_MEMORY;
4464faf9d3aSPedro Giffuni 
447cdf0e10cSrcweir /* DAT_IMAGEMEMXFER. Used to pass image data (e.g. in strips) from DS to application.*/
448cdf0e10cSrcweir typedef struct {
449cdf0e10cSrcweir    TW_UINT16  Compression;  /* How the data is compressed                */
450cdf0e10cSrcweir    TW_UINT32  BytesPerRow;  /* Number of bytes in a row of data          */
451cdf0e10cSrcweir    TW_UINT32  Columns;      /* How many columns                          */
452cdf0e10cSrcweir    TW_UINT32  Rows;         /* How many rows                             */
453cdf0e10cSrcweir    TW_UINT32  XOffset;      /* How far from the side of the image        */
454cdf0e10cSrcweir    TW_UINT32  YOffset;      /* How far from the top of the image         */
455cdf0e10cSrcweir    TW_UINT32  BytesWritten; /* How many bytes written in Memory          */
456cdf0e10cSrcweir    TW_MEMORY  Memory;       /* Mem struct used to pass actual image data */
457cdf0e10cSrcweir } TW_IMAGEMEMXFER, FAR * pTW_IMAGEMEMXFER;
458cdf0e10cSrcweir 
459cdf0e10cSrcweir /* Changed in 1.1: QuantTable, HuffmanDC, HuffmanAC TW_MEMREF -> TW_MEMORY  */
460cdf0e10cSrcweir /* DAT_JPEGCOMPRESSION. Based on JPEG Draft International Std, ver 10918-1. */
461cdf0e10cSrcweir typedef struct {
462cdf0e10cSrcweir    TW_UINT16   ColorSpace;       /* One of the TWPT_xxxx values                */
463cdf0e10cSrcweir    TW_UINT32   SubSampling;      /* Two word "array" for subsampling values    */
464cdf0e10cSrcweir    TW_UINT16   NumComponents;    /* Number of color components in image        */
465cdf0e10cSrcweir    TW_UINT16   RestartFrequency; /* Frequency of restart marker codes in MDU's */
466cdf0e10cSrcweir    TW_UINT16   QuantMap[4];      /* Mapping of components to QuantTables       */
467cdf0e10cSrcweir    TW_MEMORY   QuantTable[4];    /* Quantization tables                        */
468cdf0e10cSrcweir    TW_UINT16   HuffmanMap[4];    /* Mapping of components to Huffman tables    */
469cdf0e10cSrcweir    TW_MEMORY   HuffmanDC[2];     /* DC Huffman tables                          */
470cdf0e10cSrcweir    TW_MEMORY   HuffmanAC[2];     /* AC Huffman tables                          */
471cdf0e10cSrcweir } TW_JPEGCOMPRESSION, FAR * pTW_JPEGCOMPRESSION;
472cdf0e10cSrcweir 
4734faf9d3aSPedro Giffuni /* TWON_ONEVALUE. Container for one value. */
4744faf9d3aSPedro Giffuni typedef struct {
4754faf9d3aSPedro Giffuni    TW_UINT16  ItemType;
4764faf9d3aSPedro Giffuni    TW_UINT32  Item;
4774faf9d3aSPedro Giffuni } TW_ONEVALUE, FAR * pTW_ONEVALUE;
4784faf9d3aSPedro Giffuni 
479cdf0e10cSrcweir /* DAT_PALETTE8. Color palette when TWPT_PALETTE pixels xfer'd in mem buf. */
480cdf0e10cSrcweir typedef struct {
481cdf0e10cSrcweir    TW_UINT16    NumColors;   /* Number of colors in the color table.  */
482cdf0e10cSrcweir    TW_UINT16    PaletteType; /* TWPA_xxxx, specifies type of palette. */
483cdf0e10cSrcweir    TW_ELEMENT8  Colors[256]; /* Array of palette values starts here.  */
484cdf0e10cSrcweir } TW_PALETTE8, FAR * pTW_PALETTE8;
485cdf0e10cSrcweir 
4864faf9d3aSPedro Giffuni /* DAT_PASSTHRU, device dependant data to pass through Data Source */
4874faf9d3aSPedro Giffuni typedef struct {
4884faf9d3aSPedro Giffuni    TW_MEMREF  pCommand;        /* Pointer to Command buffer */
4894faf9d3aSPedro Giffuni    TW_UINT32  CommandBytes;    /* Number of bytes in Command buffer */
4904faf9d3aSPedro Giffuni    TW_INT32   Direction;       /* One of the TWDR_xxxx values.  Defines the direction of data flow */
4914faf9d3aSPedro Giffuni    TW_MEMREF  pData;           /* Pointer to Data buffer */
4924faf9d3aSPedro Giffuni    TW_UINT32  DataBytes;       /* Number of bytes in Data buffer */
4934faf9d3aSPedro Giffuni    TW_UINT32  DataBytesXfered; /* Number of bytes successfully transferred */
4944faf9d3aSPedro Giffuni } TW_PASSTHRU, FAR * pTW_PASSTHRU;
4954faf9d3aSPedro Giffuni 
496cdf0e10cSrcweir /* DAT_PENDINGXFERS. Used with MSG_ENDXFER to indicate additional data. */
497cdf0e10cSrcweir typedef struct {
498cdf0e10cSrcweir    TW_UINT16 Count;
499cdf0e10cSrcweir    union {
500cdf0e10cSrcweir       TW_UINT32 EOJ;
501cdf0e10cSrcweir       TW_UINT32 Reserved;
502cdf0e10cSrcweir    };
503cdf0e10cSrcweir } TW_PENDINGXFERS, FAR *pTW_PENDINGXFERS;
504cdf0e10cSrcweir 
5054faf9d3aSPedro Giffuni /* TWON_RANGE. Container for a range of values. */
5064faf9d3aSPedro Giffuni typedef struct {
5074faf9d3aSPedro Giffuni    TW_UINT16  ItemType;
5084faf9d3aSPedro Giffuni    TW_UINT32  MinValue;     /* Starting value in the range.           */
5094faf9d3aSPedro Giffuni    TW_UINT32  MaxValue;     /* Final value in the range.              */
5104faf9d3aSPedro Giffuni    TW_UINT32  StepSize;     /* Increment from MinValue to MaxValue.   */
5114faf9d3aSPedro Giffuni    TW_UINT32  DefaultValue; /* Power-up value.                        */
5124faf9d3aSPedro Giffuni    TW_UINT32  CurrentValue; /* The value that is currently in effect. */
5134faf9d3aSPedro Giffuni } TW_RANGE, FAR * pTW_RANGE;
5144faf9d3aSPedro Giffuni 
515cdf0e10cSrcweir /* DAT_RGBRESPONSE */
516cdf0e10cSrcweir typedef struct {
517cdf0e10cSrcweir    TW_ELEMENT8         Response[1];
518cdf0e10cSrcweir } TW_RGBRESPONSE, FAR * pTW_RGBRESPONSE;
519cdf0e10cSrcweir 
520cdf0e10cSrcweir /* DAT_SETUPFILEXFER. Sets up DS to application data transfer via a file. */
521cdf0e10cSrcweir typedef struct {
522cdf0e10cSrcweir    TW_STR255 FileName;
523cdf0e10cSrcweir    TW_UINT16 Format;   /* Any TWFF_ constant */
524cdf0e10cSrcweir    TW_INT16  VRefNum;  /* Used for Mac only  */
525cdf0e10cSrcweir } TW_SETUPFILEXFER, FAR * pTW_SETUPFILEXFER;
526cdf0e10cSrcweir 
527cdf0e10cSrcweir /* DAT_SETUPMEMXFER. Sets up DS to application data transfer via a memory buffer. */
528cdf0e10cSrcweir typedef struct {
529cdf0e10cSrcweir    TW_UINT32 MinBufSize;
530cdf0e10cSrcweir    TW_UINT32 MaxBufSize;
531cdf0e10cSrcweir    TW_UINT32 Preferred;
532cdf0e10cSrcweir } TW_SETUPMEMXFER, FAR * pTW_SETUPMEMXFER;
533cdf0e10cSrcweir 
534cdf0e10cSrcweir /* DAT_STATUS. Application gets detailed status info from a data source with this. */
535cdf0e10cSrcweir typedef struct {
5364faf9d3aSPedro Giffuni    TW_UINT16  ConditionCode;  /* Any TWCC_ constant     */
5374faf9d3aSPedro Giffuni    union {
5384faf9d3aSPedro Giffuni      TW_UINT16  Data;         /* output (TWAIN 2.1 and newer) This field contains additional data. */
5394faf9d3aSPedro Giffuni      TW_UINT16  Reserved;     /* output (TWAIN 2.0 and older) */
5404faf9d3aSPedro Giffuni    };
541cdf0e10cSrcweir } TW_STATUS, FAR * pTW_STATUS;
542cdf0e10cSrcweir 
5434faf9d3aSPedro Giffuni /* DAT_STATUSUTF8. Application gets detailed UTF8 status info from a data source with this.  Added 2.1 */
5444faf9d3aSPedro Giffuni typedef struct {
5454faf9d3aSPedro Giffuni    TW_STATUS    Status;         /* input  TW_STATUS data received from a previous call to DG_CONTROL / DAT_STATUS / MSG_GET. */
5464faf9d3aSPedro Giffuni    TW_UINT32    Size;           /* output Total number of bytes in the UTF8string, plus the terminating NUL byte.  This is not the same as the total number of characters in the string. */
5474faf9d3aSPedro Giffuni    TW_HANDLE    UTF8string;     /* output TW_HANDLE to a UTF-8 encoded localized string (based on TW_IDENTITY.Language or CAP_LANGUAGE).  The Source allocates it, the Application frees it. */
5484faf9d3aSPedro Giffuni } TW_STATUSUTF8, FAR * pTW_STATUSUTF8;
5494faf9d3aSPedro Giffuni 
550cdf0e10cSrcweir /* DAT_USERINTERFACE. Coordinates UI between application and data source. */
551cdf0e10cSrcweir typedef struct {
552cdf0e10cSrcweir    TW_BOOL    ShowUI;  /* TRUE if DS should bring up its UI           */
553cdf0e10cSrcweir    TW_BOOL    ModalUI; /* For Mac only - true if the DS's UI is modal */
554cdf0e10cSrcweir    TW_HANDLE  hParent; /* For windows only - Application window handle        */
555cdf0e10cSrcweir } TW_USERINTERFACE, FAR * pTW_USERINTERFACE;
556cdf0e10cSrcweir 
557cdf0e10cSrcweir 
558cdf0e10cSrcweir 
559cdf0e10cSrcweir /****************************************************************************
560cdf0e10cSrcweir  * Generic Constants                                                        *
561cdf0e10cSrcweir  ****************************************************************************/
562cdf0e10cSrcweir 
563cdf0e10cSrcweir #define TWON_ARRAY           3 /* indicates TW_ARRAY container       */
564cdf0e10cSrcweir #define TWON_ENUMERATION     4 /* indicates TW_ENUMERATION container */
565cdf0e10cSrcweir #define TWON_ONEVALUE        5 /* indicates TW_ONEVALUE container    */
566cdf0e10cSrcweir #define TWON_RANGE           6 /* indicates TW_RANGE container       */
567cdf0e10cSrcweir 
568cdf0e10cSrcweir #define TWON_ICONID          962 /* res Id of icon used in USERSELECT lbox */
569cdf0e10cSrcweir #define TWON_DSMID           461 /* res Id of the DSM version num resource */
570cdf0e10cSrcweir #define TWON_DSMCODEID       63  /* res Id of the Mac SM Code resource     */
571cdf0e10cSrcweir 
572cdf0e10cSrcweir #define TWON_DONTCARE8       0xff
573cdf0e10cSrcweir #define TWON_DONTCARE16      0xffff
574cdf0e10cSrcweir #define TWON_DONTCARE32      0xffffffff
575cdf0e10cSrcweir 
576cdf0e10cSrcweir /* Flags used in TW_MEMORY structure. */
577cdf0e10cSrcweir #define TWMF_APPOWNS     0x1
578cdf0e10cSrcweir #define TWMF_DSMOWNS     0x2
579cdf0e10cSrcweir #define TWMF_DSOWNS      0x4
580cdf0e10cSrcweir #define TWMF_POINTER     0x8
581cdf0e10cSrcweir #define TWMF_HANDLE      0x10
582cdf0e10cSrcweir 
583cdf0e10cSrcweir /* There are four containers used for capabilities negotiation:
584cdf0e10cSrcweir  *    TWON_ONEVALUE, TWON_RANGE, TWON_ENUMERATION, TWON_ARRAY
585cdf0e10cSrcweir  * In each container structure ItemType can be TWTY_INT8, TWTY_INT16, etc.
586cdf0e10cSrcweir  * The kind of data stored in the container can be determined by doing
587cdf0e10cSrcweir  * DCItemSize[ItemType] where the following is defined in TWAIN glue code:
588cdf0e10cSrcweir  *          DCItemSize[]= { sizeof(TW_INT8),
589cdf0e10cSrcweir  *                          sizeof(TW_INT16),
590cdf0e10cSrcweir  *                          etc.
591cdf0e10cSrcweir  *                          sizeof(TW_UINT32) };
592cdf0e10cSrcweir  *
593cdf0e10cSrcweir  */
594cdf0e10cSrcweir 
595cdf0e10cSrcweir #define TWTY_INT8        0x0000    /* Means Item is a TW_INT8   */
596cdf0e10cSrcweir #define TWTY_INT16       0x0001    /* Means Item is a TW_INT16  */
597cdf0e10cSrcweir #define TWTY_INT32       0x0002    /* Means Item is a TW_INT32  */
598cdf0e10cSrcweir 
599cdf0e10cSrcweir #define TWTY_UINT8       0x0003    /* Means Item is a TW_UINT8  */
600cdf0e10cSrcweir #define TWTY_UINT16      0x0004    /* Means Item is a TW_UINT16 */
6014faf9d3aSPedro Giffuni #define TWTY_UINT32      0x0005    /* Means Item is a TW_UINT32 */
602cdf0e10cSrcweir 
6034faf9d3aSPedro Giffuni #define TWTY_BOOL        0x0006    /* Means Item is a TW_BOOL   */
604cdf0e10cSrcweir 
6054faf9d3aSPedro Giffuni #define TWTY_FIX32       0x0007    /* Means Item is a TW_FIX32  */
606cdf0e10cSrcweir 
6074faf9d3aSPedro Giffuni #define TWTY_FRAME       0x0008    /* Means Item is a TW_FRAME  */
608cdf0e10cSrcweir 
6094faf9d3aSPedro Giffuni #define TWTY_STR32       0x0009    /* Means Item is a TW_STR32  */
6104faf9d3aSPedro Giffuni #define TWTY_STR64       0x000a    /* Means Item is a TW_STR64  */
6114faf9d3aSPedro Giffuni #define TWTY_STR128      0x000b    /* Means Item is a TW_STR128 */
6124faf9d3aSPedro Giffuni #define TWTY_STR255      0x000c    /* Means Item is a TW_STR255 */
6134faf9d3aSPedro Giffuni #define TWTY_HANDLE      0x000f    /* Means Item is a TW_HANDLE */
614cdf0e10cSrcweir 
615cdf0e10cSrcweir 
6164faf9d3aSPedro Giffuni /****************************************************************************
6174faf9d3aSPedro Giffuni  * Capability Constants                                                     *
6184faf9d3aSPedro Giffuni  ****************************************************************************/
619cdf0e10cSrcweir 
6204faf9d3aSPedro Giffuni /* CAP_ALARMS values (AL_ means alarms) Added 1.8  */
6214faf9d3aSPedro Giffuni #define TWAL_ALARM               0
6224faf9d3aSPedro Giffuni #define TWAL_FEEDERERROR         1
6234faf9d3aSPedro Giffuni #define TWAL_FEEDERWARNING       2
6244faf9d3aSPedro Giffuni #define TWAL_BARCODE             3
6254faf9d3aSPedro Giffuni #define TWAL_DOUBLEFEED          4
6264faf9d3aSPedro Giffuni #define TWAL_JAM                 5
6274faf9d3aSPedro Giffuni #define TWAL_PATCHCODE           6
6284faf9d3aSPedro Giffuni #define TWAL_POWER               7
6294faf9d3aSPedro Giffuni #define TWAL_SKEW                8
6304faf9d3aSPedro Giffuni 
6314faf9d3aSPedro Giffuni /* ICAP_AUTOSIZE values Added 2.0 */
6324faf9d3aSPedro Giffuni #define TWAS_NONE                0
6334faf9d3aSPedro Giffuni #define TWAS_AUTO                1
6344faf9d3aSPedro Giffuni #define TWAS_CURRENT             2
6354faf9d3aSPedro Giffuni 
6364faf9d3aSPedro Giffuni /* TWEI_BARCODEROTATION values (BCOR_ means barcode rotation) Added 1.7 */
6374faf9d3aSPedro Giffuni #define TWBCOR_ROT0              0
6384faf9d3aSPedro Giffuni #define TWBCOR_ROT90             1
6394faf9d3aSPedro Giffuni #define TWBCOR_ROT180            2
6404faf9d3aSPedro Giffuni #define TWBCOR_ROT270            3
6414faf9d3aSPedro Giffuni #define TWBCOR_ROTX              4
642cdf0e10cSrcweir 
6434faf9d3aSPedro Giffuni /* ICAP_BARCODESEARCHMODE values (TWBD_ means search) */
6444faf9d3aSPedro Giffuni #define TWBD_HORZ                0
6454faf9d3aSPedro Giffuni #define TWBD_VERT                1
6464faf9d3aSPedro Giffuni #define TWBD_HORZVERT            2
6474faf9d3aSPedro Giffuni #define TWBD_VERTHORZ            3
648cdf0e10cSrcweir 
6494faf9d3aSPedro Giffuni /* ICAP_BITORDER values (BO_ means Bit Order) */
6504faf9d3aSPedro Giffuni #define TWBO_LSBFIRST            0
6514faf9d3aSPedro Giffuni #define TWBO_MSBFIRST            1
652cdf0e10cSrcweir 
6534faf9d3aSPedro Giffuni /* ICAP_AUTODISCARDBLANKPAGES values Added 2.0 */
6544faf9d3aSPedro Giffuni #define TWBP_DISABLE            -2
6554faf9d3aSPedro Giffuni #define TWBP_AUTO               -1
656cdf0e10cSrcweir 
6574faf9d3aSPedro Giffuni /* ICAP_BITDEPTHREDUCTION values (BR_ means Bitdepth Reduction) Added 1.5 */
6584faf9d3aSPedro Giffuni #define TWBR_THRESHOLD           0
6594faf9d3aSPedro Giffuni #define TWBR_HALFTONE            1
6604faf9d3aSPedro Giffuni #define TWBR_CUSTHALFTONE        2
6614faf9d3aSPedro Giffuni #define TWBR_DIFFUSION           3
662cdf0e10cSrcweir 
6634faf9d3aSPedro Giffuni /* ICAP_SUPPORTEDBARCODETYPES and TWEI_BARCODETYPE values Added 1.7 */
664cdf0e10cSrcweir #define TWBT_3OF9                 0
665cdf0e10cSrcweir #define TWBT_2OF5INTERLEAVED      1
666cdf0e10cSrcweir #define TWBT_2OF5NONINTERLEAVED   2
667cdf0e10cSrcweir #define TWBT_CODE93               3
668cdf0e10cSrcweir #define TWBT_CODE128              4
669cdf0e10cSrcweir #define TWBT_UCC128               5
670cdf0e10cSrcweir #define TWBT_CODABAR              6
671cdf0e10cSrcweir #define TWBT_UPCA                 7
672cdf0e10cSrcweir #define TWBT_UPCE                 8
673cdf0e10cSrcweir #define TWBT_EAN8                 9
674cdf0e10cSrcweir #define TWBT_EAN13                10
675cdf0e10cSrcweir #define TWBT_POSTNET              11
676cdf0e10cSrcweir #define TWBT_PDF417               12
6774faf9d3aSPedro Giffuni #define TWBT_2OF5INDUSTRIAL       13 /* Added 1.8 */
6784faf9d3aSPedro Giffuni #define TWBT_2OF5MATRIX           14 /* Added 1.8 */
6794faf9d3aSPedro Giffuni #define TWBT_2OF5DATALOGIC        15 /* Added 1.8 */
6804faf9d3aSPedro Giffuni #define TWBT_2OF5IATA             16 /* Added 1.8 */
6814faf9d3aSPedro Giffuni #define TWBT_3OF9FULLASCII        17 /* Added 1.8 */
6824faf9d3aSPedro Giffuni #define TWBT_CODABARWITHSTARTSTOP 18 /* Added 1.8 */
6834faf9d3aSPedro Giffuni #define TWBT_MAXICODE             19 /* Added 1.8 */
684cdf0e10cSrcweir 
6854faf9d3aSPedro Giffuni /* ICAP_COMPRESSION values (CP_ means ComPression ) */
6864faf9d3aSPedro Giffuni #define TWCP_NONE                0
6874faf9d3aSPedro Giffuni #define TWCP_PACKBITS            1
6884faf9d3aSPedro Giffuni #define TWCP_GROUP31D            2 /* Follows CCITT spec (no End Of Line)          */
6894faf9d3aSPedro Giffuni #define TWCP_GROUP31DEOL         3 /* Follows CCITT spec (has End Of Line)         */
6904faf9d3aSPedro Giffuni #define TWCP_GROUP32D            4 /* Follows CCITT spec (use cap for K Factor)    */
6914faf9d3aSPedro Giffuni #define TWCP_GROUP4              5 /* Follows CCITT spec                           */
6924faf9d3aSPedro Giffuni #define TWCP_JPEG                6 /* Use capability for more info                 */
6934faf9d3aSPedro Giffuni #define TWCP_LZW                 7 /* Must license from Unisys and IBM to use      */
6944faf9d3aSPedro Giffuni #define TWCP_JBIG                8 /* For Bitonal images  -- Added 1.7 KHL         */
6954faf9d3aSPedro Giffuni #define TWCP_PNG                 9 /* Added 1.8 */
6964faf9d3aSPedro Giffuni #define TWCP_RLE4               10 /* Added 1.8 */
6974faf9d3aSPedro Giffuni #define TWCP_RLE8               11 /* Added 1.8 */
6984faf9d3aSPedro Giffuni #define TWCP_BITFIELDS          12 /* Added 1.8 */
6994faf9d3aSPedro Giffuni 
7004faf9d3aSPedro Giffuni /* CAP_CAMERASIDE and TWEI_PAGESIDE values (CS_ means camera side) Added 1.91 */
7014faf9d3aSPedro Giffuni #define TWCS_BOTH                0
7024faf9d3aSPedro Giffuni #define TWCS_TOP                 1
7034faf9d3aSPedro Giffuni #define TWCS_BOTTOM              2
704cdf0e10cSrcweir 
705cdf0e10cSrcweir /* CAP_CLEARBUFFERS values (CB_ means clear buffers) */
7064faf9d3aSPedro Giffuni #define TWCB_AUTO                0
7074faf9d3aSPedro Giffuni #define TWCB_CLEAR               1
7084faf9d3aSPedro Giffuni #define TWCB_NOCLEAR             2
709cdf0e10cSrcweir 
710cdf0e10cSrcweir /* CAP_DEVICEEVENT values (DE_ means device event) */
711cdf0e10cSrcweir #define TWDE_CUSTOMEVENTS           0x8000
712cdf0e10cSrcweir #define TWDE_CHECKAUTOMATICCAPTURE  0
713cdf0e10cSrcweir #define TWDE_CHECKBATTERY           1
714cdf0e10cSrcweir #define TWDE_CHECKDEVICEONLINE      2
715cdf0e10cSrcweir #define TWDE_CHECKFLASH             3
716cdf0e10cSrcweir #define TWDE_CHECKPOWERSUPPLY       4
717cdf0e10cSrcweir #define TWDE_CHECKRESOLUTION        5
718cdf0e10cSrcweir #define TWDE_DEVICEADDED            6
719cdf0e10cSrcweir #define TWDE_DEVICEOFFLINE          7
720cdf0e10cSrcweir #define TWDE_DEVICEREADY            8
721cdf0e10cSrcweir #define TWDE_DEVICEREMOVED          9
722cdf0e10cSrcweir #define TWDE_IMAGECAPTURED          10
723cdf0e10cSrcweir #define TWDE_IMAGEDELETED           11
724cdf0e10cSrcweir #define TWDE_PAPERDOUBLEFEED        12
725cdf0e10cSrcweir #define TWDE_PAPERJAM               13
726cdf0e10cSrcweir #define TWDE_LAMPFAILURE            14
727cdf0e10cSrcweir #define TWDE_POWERSAVE              15
728cdf0e10cSrcweir #define TWDE_POWERSAVENOTIFY        16
729cdf0e10cSrcweir 
7304faf9d3aSPedro Giffuni /* TW_PASSTHRU.Direction values.  Added 1.8 */
7314faf9d3aSPedro Giffuni #define TWDR_GET                 1
7324faf9d3aSPedro Giffuni #define TWDR_SET                 2
7334faf9d3aSPedro Giffuni 
7344faf9d3aSPedro Giffuni /* TWEI_DESKEWSTATUS values Added 1.7 */
7354faf9d3aSPedro Giffuni #define TWDSK_SUCCESS            0
7364faf9d3aSPedro Giffuni #define TWDSK_REPORTONLY         1
7374faf9d3aSPedro Giffuni #define TWDSK_FAIL               2
7384faf9d3aSPedro Giffuni #define TWDSK_DISABLED           3
7394faf9d3aSPedro Giffuni 
7404faf9d3aSPedro Giffuni /* CAP_DUPLEX values Added 1.7 */
7414faf9d3aSPedro Giffuni #define TWDX_NONE                0
7424faf9d3aSPedro Giffuni #define TWDX_1PASSDUPLEX         1
7434faf9d3aSPedro Giffuni #define TWDX_2PASSDUPLEX         2
7444faf9d3aSPedro Giffuni 
745cdf0e10cSrcweir /* CAP_FEEDERALIGNMENT values (FA_ means feeder alignment) */
7464faf9d3aSPedro Giffuni #define TWFA_NONE                0
7474faf9d3aSPedro Giffuni #define TWFA_LEFT                1
7484faf9d3aSPedro Giffuni #define TWFA_CENTER              2
7494faf9d3aSPedro Giffuni #define TWFA_RIGHT               3
7504faf9d3aSPedro Giffuni 
7514faf9d3aSPedro Giffuni /* ICAP_FEEDERTYPE */
7524faf9d3aSPedro Giffuni #define TWFE_GENERAL             0
7534faf9d3aSPedro Giffuni #define TWFE_PHOTO               1
7544faf9d3aSPedro Giffuni 
7554faf9d3aSPedro Giffuni /* ICAP_IMAGEFILEFORMAT values (FF_means File Format)   */
7564faf9d3aSPedro Giffuni #define TWFF_TIFF                0    /* Tagged Image File Format     */
7574faf9d3aSPedro Giffuni #define TWFF_PICT                1    /* Macintosh PICT               */
7584faf9d3aSPedro Giffuni #define TWFF_BMP                 2    /* Windows Bitmap               */
7594faf9d3aSPedro Giffuni #define TWFF_XBM                 3    /* X-Windows Bitmap             */
7604faf9d3aSPedro Giffuni #define TWFF_JFIF                4    /* JPEG File Interchange Format */
7614faf9d3aSPedro Giffuni #define TWFF_FPX                 5    /* Flash Pix                    */
7624faf9d3aSPedro Giffuni #define TWFF_TIFFMULTI           6    /* Multi-page tiff file         */
7634faf9d3aSPedro Giffuni #define TWFF_PNG                 7
7644faf9d3aSPedro Giffuni #define TWFF_SPIFF               8
7654faf9d3aSPedro Giffuni #define TWFF_EXIF                9
7664faf9d3aSPedro Giffuni #define TWFF_PDF                10    /* 1.91 NB: this is not PDF/A */
7674faf9d3aSPedro Giffuni #define TWFF_JP2                11    /* 1.91 */
7684faf9d3aSPedro Giffuni #define TWFF_JPX                13    /* 1.91 */
7694faf9d3aSPedro Giffuni #define TWFF_DEJAVU             14    /* 1.91 */
7704faf9d3aSPedro Giffuni #define TWFF_PDFA               15    /* 2.0 Adobe PDF/A, Version 1*/
7714faf9d3aSPedro Giffuni #define TWFF_PDFA2              16    /* 2.1 Adobe PDF/A, Version 2*/
7724faf9d3aSPedro Giffuni 
7734faf9d3aSPedro Giffuni /* ICAP_FLASHUSED2 values (FL_ means flash) */
7744faf9d3aSPedro Giffuni #define TWFL_NONE                0
7754faf9d3aSPedro Giffuni #define TWFL_OFF                 1
7764faf9d3aSPedro Giffuni #define TWFL_ON                  2
7774faf9d3aSPedro Giffuni #define TWFL_AUTO                3
7784faf9d3aSPedro Giffuni #define TWFL_REDEYE              4
779cdf0e10cSrcweir 
780cdf0e10cSrcweir /* CAP_FEEDERORDER values (FO_ means feeder order) */
7814faf9d3aSPedro Giffuni #define TWFO_FIRSTPAGEFIRST      0
7824faf9d3aSPedro Giffuni #define TWFO_LASTPAGEFIRST       1
7834faf9d3aSPedro Giffuni 
7844faf9d3aSPedro Giffuni /* CAP_FEEDERPOCKET */
7854faf9d3aSPedro Giffuni #define TWFP_POCKETERROR         0
7864faf9d3aSPedro Giffuni #define TWFP_POCKET1             1
7874faf9d3aSPedro Giffuni #define TWFP_POCKET2             2
7884faf9d3aSPedro Giffuni #define TWFP_POCKET3             3
7894faf9d3aSPedro Giffuni #define TWFP_POCKET4             4
7904faf9d3aSPedro Giffuni #define TWFP_POCKET5             5
7914faf9d3aSPedro Giffuni #define TWFP_POCKET6             6
7924faf9d3aSPedro Giffuni #define TWFP_POCKET7             7
7934faf9d3aSPedro Giffuni #define TWFP_POCKET8             8
7944faf9d3aSPedro Giffuni #define TWFP_POCKET9             9
7954faf9d3aSPedro Giffuni #define TWFP_POCKET10           10
7964faf9d3aSPedro Giffuni #define TWFP_POCKET11           11
7974faf9d3aSPedro Giffuni #define TWFP_POCKET12           12
7984faf9d3aSPedro Giffuni #define TWFP_POCKET13           13
7994faf9d3aSPedro Giffuni #define TWFP_POCKET14           14
8004faf9d3aSPedro Giffuni #define TWFP_POCKET15           15
8014faf9d3aSPedro Giffuni #define TWFP_POCKET16           16
802cdf0e10cSrcweir 
8034faf9d3aSPedro Giffuni /* ICAP_FLIPROTATION values (FR_ means flip rotation) */
8044faf9d3aSPedro Giffuni #define TWFR_BOOK                0
8054faf9d3aSPedro Giffuni #define TWFR_FANFOLD             1
806cdf0e10cSrcweir 
8074faf9d3aSPedro Giffuni /* ICAP_FILTER values (FT_ means Filter Type) */
8084faf9d3aSPedro Giffuni #define TWFT_RED                 0
8094faf9d3aSPedro Giffuni #define TWFT_GREEN               1
8104faf9d3aSPedro Giffuni #define TWFT_BLUE                2
8114faf9d3aSPedro Giffuni #define TWFT_NONE                3
8124faf9d3aSPedro Giffuni #define TWFT_WHITE               4
8134faf9d3aSPedro Giffuni #define TWFT_CYAN                5
8144faf9d3aSPedro Giffuni #define TWFT_MAGENTA             6
8154faf9d3aSPedro Giffuni #define TWFT_YELLOW              7
8164faf9d3aSPedro Giffuni #define TWFT_BLACK               8
8174faf9d3aSPedro Giffuni 
8184faf9d3aSPedro Giffuni /* TW_FILESYSTEM.FileType values (FY_ means file type) */
8194faf9d3aSPedro Giffuni #define TWFY_CAMERA              0
8204faf9d3aSPedro Giffuni #define TWFY_CAMERATOP           1
8214faf9d3aSPedro Giffuni #define TWFY_CAMERABOTTOM        2
8224faf9d3aSPedro Giffuni #define TWFY_CAMERAPREVIEW       3
8234faf9d3aSPedro Giffuni #define TWFY_DOMAIN              4
8244faf9d3aSPedro Giffuni #define TWFY_HOST                5
8254faf9d3aSPedro Giffuni #define TWFY_DIRECTORY           6
8264faf9d3aSPedro Giffuni #define TWFY_IMAGE               7
8274faf9d3aSPedro Giffuni #define TWFY_UNKNOWN             8
8284faf9d3aSPedro Giffuni 
8294faf9d3aSPedro Giffuni /* ICAP_ICCPROFILE */
8304faf9d3aSPedro Giffuni #define TWIC_NONE                0
8314faf9d3aSPedro Giffuni #define TWIC_LINK                1
8324faf9d3aSPedro Giffuni #define TWIC_EMBED               2
8334faf9d3aSPedro Giffuni 
8344faf9d3aSPedro Giffuni /* ICAP_IMAGEFILTER values (IF_ means image filter) */
8354faf9d3aSPedro Giffuni #define TWIF_NONE                0
8364faf9d3aSPedro Giffuni #define TWIF_AUTO                1
8374faf9d3aSPedro Giffuni #define TWIF_LOWPASS             2
8384faf9d3aSPedro Giffuni #define TWIF_BANDPASS            3
8394faf9d3aSPedro Giffuni #define TWIF_HIGHPASS            4
8404faf9d3aSPedro Giffuni #define TWIF_TEXT                TWIF_BANDPASS
8414faf9d3aSPedro Giffuni #define TWIF_FINELINE            TWIF_HIGHPASS
8424faf9d3aSPedro Giffuni 
8434faf9d3aSPedro Giffuni /* ICAP_IMAGEMERGE values (IM_ means image merge) */
8444faf9d3aSPedro Giffuni #define TWIM_NONE                0
8454faf9d3aSPedro Giffuni #define TWIM_FRONTONTOP          1
8464faf9d3aSPedro Giffuni #define TWIM_FRONTONBOTTOM       2
8474faf9d3aSPedro Giffuni #define TWIM_FRONTONLEFT         3
8484faf9d3aSPedro Giffuni #define TWIM_FRONTONRIGHT        4
8494faf9d3aSPedro Giffuni 
8504faf9d3aSPedro Giffuni /* CAP_JOBCONTROL values Added 1.7  */
8514faf9d3aSPedro Giffuni #define TWJC_NONE                0
8524faf9d3aSPedro Giffuni #define TWJC_JSIC                1
8534faf9d3aSPedro Giffuni #define TWJC_JSIS                2
8544faf9d3aSPedro Giffuni #define TWJC_JSXC                3
8554faf9d3aSPedro Giffuni #define TWJC_JSXS                4
8564faf9d3aSPedro Giffuni 
8574faf9d3aSPedro Giffuni /* ICAP_JPEGQUALITY values (JQ_ means jpeg quality) */
8584faf9d3aSPedro Giffuni #define TWJQ_UNKNOWN            -4
8594faf9d3aSPedro Giffuni #define TWJQ_LOW                -3
8604faf9d3aSPedro Giffuni #define TWJQ_MEDIUM             -2
8614faf9d3aSPedro Giffuni #define TWJQ_HIGH               -1
8624faf9d3aSPedro Giffuni 
8634faf9d3aSPedro Giffuni /* ICAP_LIGHTPATH values (LP_ means Light Path) */
8644faf9d3aSPedro Giffuni #define TWLP_REFLECTIVE          0
8654faf9d3aSPedro Giffuni #define TWLP_TRANSMISSIVE        1
8664faf9d3aSPedro Giffuni 
8674faf9d3aSPedro Giffuni /* ICAP_LIGHTSOURCE values (LS_ means Light Source) */
8684faf9d3aSPedro Giffuni #define TWLS_RED                 0
8694faf9d3aSPedro Giffuni #define TWLS_GREEN               1
8704faf9d3aSPedro Giffuni #define TWLS_BLUE                2
8714faf9d3aSPedro Giffuni #define TWLS_NONE                3
8724faf9d3aSPedro Giffuni #define TWLS_WHITE               4
8734faf9d3aSPedro Giffuni #define TWLS_UV                  5
8744faf9d3aSPedro Giffuni #define TWLS_IR                  6
8754faf9d3aSPedro Giffuni 
8764faf9d3aSPedro Giffuni /* TWEI_MAGTYPE values (MD_ means Mag Type) Added 2.0 */
8774faf9d3aSPedro Giffuni #define TWMD_MICR                0  /* Added 2.0 */
8784faf9d3aSPedro Giffuni #define TWMD_RAW                 1  /* added 2.1 */
8794faf9d3aSPedro Giffuni #define TWMD_INVALID             2  /* added 2.1 */
8804faf9d3aSPedro Giffuni 
8814faf9d3aSPedro Giffuni /* ICAP_NOISEFILTER values (NF_ means noise filter) */
8824faf9d3aSPedro Giffuni #define TWNF_NONE                0
8834faf9d3aSPedro Giffuni #define TWNF_AUTO                1
8844faf9d3aSPedro Giffuni #define TWNF_LONEPIXEL           2
8854faf9d3aSPedro Giffuni #define TWNF_MAJORITYRULE        3
8864faf9d3aSPedro Giffuni 
8874faf9d3aSPedro Giffuni /* ICAP_ORIENTATION values (OR_ means ORientation) */
8884faf9d3aSPedro Giffuni #define TWOR_ROT0                0
8894faf9d3aSPedro Giffuni #define TWOR_ROT90               1
8904faf9d3aSPedro Giffuni #define TWOR_ROT180              2
8914faf9d3aSPedro Giffuni #define TWOR_ROT270              3
8924faf9d3aSPedro Giffuni #define TWOR_PORTRAIT            TWOR_ROT0
8934faf9d3aSPedro Giffuni #define TWOR_LANDSCAPE           TWOR_ROT270
8944faf9d3aSPedro Giffuni #define TWOR_AUTO                4           /* 2.0 */
8954faf9d3aSPedro Giffuni #define TWOR_AUTOTEXT            5           /* 2.0 */
8964faf9d3aSPedro Giffuni #define TWOR_AUTOPICTURE         6           /* 2.0 */
8974faf9d3aSPedro Giffuni 
8984faf9d3aSPedro Giffuni /* ICAP_OVERSCAN values (OV_ means overscan) */
8994faf9d3aSPedro Giffuni #define TWOV_NONE                0
9004faf9d3aSPedro Giffuni #define TWOV_AUTO                1
9014faf9d3aSPedro Giffuni #define TWOV_TOPBOTTOM           2
9024faf9d3aSPedro Giffuni #define TWOV_LEFTRIGHT           3
9034faf9d3aSPedro Giffuni #define TWOV_ALL                 4
9044faf9d3aSPedro Giffuni 
9054faf9d3aSPedro Giffuni /* Palette types for TW_PALETTE8 */
9064faf9d3aSPedro Giffuni #define TWPA_RGB         0
9074faf9d3aSPedro Giffuni #define TWPA_GRAY        1
9084faf9d3aSPedro Giffuni #define TWPA_CMY         2
9094faf9d3aSPedro Giffuni 
9104faf9d3aSPedro Giffuni /* ICAP_PLANARCHUNKY values (PC_ means Planar/Chunky ) */
9114faf9d3aSPedro Giffuni #define TWPC_CHUNKY              0
9124faf9d3aSPedro Giffuni #define TWPC_PLANAR              1
9134faf9d3aSPedro Giffuni 
9144faf9d3aSPedro Giffuni /* TWEI_PATCHCODE values Added 1.7 */
9154faf9d3aSPedro Giffuni #define TWPCH_PATCH1             0
9164faf9d3aSPedro Giffuni #define TWPCH_PATCH2             1
9174faf9d3aSPedro Giffuni #define TWPCH_PATCH3             2
9184faf9d3aSPedro Giffuni #define TWPCH_PATCH4             3
9194faf9d3aSPedro Giffuni #define TWPCH_PATCH6             4
9204faf9d3aSPedro Giffuni #define TWPCH_PATCHT             5
9214faf9d3aSPedro Giffuni 
9224faf9d3aSPedro Giffuni /* ICAP_PIXELFLAVOR values (PF_ means Pixel Flavor) */
9234faf9d3aSPedro Giffuni #define TWPF_CHOCOLATE           0  /* zero pixel represents darkest shade  */
9244faf9d3aSPedro Giffuni #define TWPF_VANILLA             1  /* zero pixel represents lightest shade */
9254faf9d3aSPedro Giffuni 
9264faf9d3aSPedro Giffuni /* CAP_PRINTERMODE values (PM_ means printer mode) */
9274faf9d3aSPedro Giffuni #define TWPM_SINGLESTRING        0
9284faf9d3aSPedro Giffuni #define TWPM_MULTISTRING         1
9294faf9d3aSPedro Giffuni #define TWPM_COMPOUNDSTRING      2
930cdf0e10cSrcweir 
931cdf0e10cSrcweir /* CAP_PRINTER values (PR_ means printer) */
932cdf0e10cSrcweir #define TWPR_IMPRINTERTOPBEFORE     0
933cdf0e10cSrcweir #define TWPR_IMPRINTERTOPAFTER      1
934cdf0e10cSrcweir #define TWPR_IMPRINTERBOTTOMBEFORE  2
935cdf0e10cSrcweir #define TWPR_IMPRINTERBOTTOMAFTER   3
936cdf0e10cSrcweir #define TWPR_ENDORSERTOPBEFORE      4
937cdf0e10cSrcweir #define TWPR_ENDORSERTOPAFTER       5
938cdf0e10cSrcweir #define TWPR_ENDORSERBOTTOMBEFORE   6
939cdf0e10cSrcweir #define TWPR_ENDORSERBOTTOMAFTER    7
940cdf0e10cSrcweir 
9414faf9d3aSPedro Giffuni /* CAP_POWERSUPPLY values (PS_ means power supply) */
9424faf9d3aSPedro Giffuni #define TWPS_EXTERNAL            0
9434faf9d3aSPedro Giffuni #define TWPS_BATTERY             1
944cdf0e10cSrcweir 
9454faf9d3aSPedro Giffuni /* ICAP_PIXELTYPE values (PT_ means Pixel Type) */
9464faf9d3aSPedro Giffuni #define TWPT_BW                  0 /* Black and White */
9474faf9d3aSPedro Giffuni #define TWPT_GRAY                1
9484faf9d3aSPedro Giffuni #define TWPT_RGB                 2
9494faf9d3aSPedro Giffuni #define TWPT_PALETTE             3
9504faf9d3aSPedro Giffuni #define TWPT_CMY                 4
9514faf9d3aSPedro Giffuni #define TWPT_CMYK                5
9524faf9d3aSPedro Giffuni #define TWPT_YUV                 6
9534faf9d3aSPedro Giffuni #define TWPT_YUVK                7
9544faf9d3aSPedro Giffuni #define TWPT_CIEXYZ              8
9554faf9d3aSPedro Giffuni #define TWPT_LAB                 9
9564faf9d3aSPedro Giffuni #define TWPT_SRGB               10 /* 1.91 */
9574faf9d3aSPedro Giffuni #define TWPT_SCRGB              11 /* 1.91 */
9584faf9d3aSPedro Giffuni #define TWPT_INFRARED           16 /* 2.0 */
9594faf9d3aSPedro Giffuni 
9604faf9d3aSPedro Giffuni /* CAP_SEGMENTED values (SG_ means segmented) Added 1.91 */
9614faf9d3aSPedro Giffuni #define TWSG_NONE                0
9624faf9d3aSPedro Giffuni #define TWSG_AUTO                1
963cdf0e10cSrcweir 
9644faf9d3aSPedro Giffuni /* ICAP_SUPPORTEDSIZES values (SS_ means Supported Sizes) */
9654faf9d3aSPedro Giffuni #define TWSS_NONE                0
9664faf9d3aSPedro Giffuni #define TWSS_A4                  1
9674faf9d3aSPedro Giffuni #define TWSS_JISB5               2
9684faf9d3aSPedro Giffuni #define TWSS_USLETTER            3
9694faf9d3aSPedro Giffuni #define TWSS_USLEGAL             4
9704faf9d3aSPedro Giffuni /* Added 1.5 */
9714faf9d3aSPedro Giffuni #define TWSS_A5                  5
9724faf9d3aSPedro Giffuni #define TWSS_ISOB4               6
9734faf9d3aSPedro Giffuni #define TWSS_ISOB6               7
9744faf9d3aSPedro Giffuni /* Added 1.7 */
9754faf9d3aSPedro Giffuni #define TWSS_USLEDGER            9
9764faf9d3aSPedro Giffuni #define TWSS_USEXECUTIVE        10
9774faf9d3aSPedro Giffuni #define TWSS_A3                 11
9784faf9d3aSPedro Giffuni #define TWSS_ISOB3              12
9794faf9d3aSPedro Giffuni #define TWSS_A6                 13
9804faf9d3aSPedro Giffuni #define TWSS_C4                 14
9814faf9d3aSPedro Giffuni #define TWSS_C5                 15
9824faf9d3aSPedro Giffuni #define TWSS_C6                 16
9834faf9d3aSPedro Giffuni /* Added 1.8 */
9844faf9d3aSPedro Giffuni #define TWSS_4A0                17
9854faf9d3aSPedro Giffuni #define TWSS_2A0                18
9864faf9d3aSPedro Giffuni #define TWSS_A0                 19
9874faf9d3aSPedro Giffuni #define TWSS_A1                 20
9884faf9d3aSPedro Giffuni #define TWSS_A2                 21
9894faf9d3aSPedro Giffuni #define TWSS_A7                 22
9904faf9d3aSPedro Giffuni #define TWSS_A8                 23
9914faf9d3aSPedro Giffuni #define TWSS_A9                 24
9924faf9d3aSPedro Giffuni #define TWSS_A10                25
9934faf9d3aSPedro Giffuni #define TWSS_ISOB0              26
9944faf9d3aSPedro Giffuni #define TWSS_ISOB1              27
9954faf9d3aSPedro Giffuni #define TWSS_ISOB2              28
9964faf9d3aSPedro Giffuni #define TWSS_ISOB5              29
9974faf9d3aSPedro Giffuni #define TWSS_ISOB7              30
9984faf9d3aSPedro Giffuni #define TWSS_ISOB8              31
9994faf9d3aSPedro Giffuni #define TWSS_ISOB9              32
10004faf9d3aSPedro Giffuni #define TWSS_ISOB10             33
10014faf9d3aSPedro Giffuni #define TWSS_JISB0              34
10024faf9d3aSPedro Giffuni #define TWSS_JISB1              35
10034faf9d3aSPedro Giffuni #define TWSS_JISB2              36
10044faf9d3aSPedro Giffuni #define TWSS_JISB3              37
10054faf9d3aSPedro Giffuni #define TWSS_JISB4              38
10064faf9d3aSPedro Giffuni #define TWSS_JISB6              39
10074faf9d3aSPedro Giffuni #define TWSS_JISB7              40
10084faf9d3aSPedro Giffuni #define TWSS_JISB8              41
10094faf9d3aSPedro Giffuni #define TWSS_JISB9              42
10104faf9d3aSPedro Giffuni #define TWSS_JISB10             43
10114faf9d3aSPedro Giffuni #define TWSS_C0                 44
10124faf9d3aSPedro Giffuni #define TWSS_C1                 45
10134faf9d3aSPedro Giffuni #define TWSS_C2                 46
10144faf9d3aSPedro Giffuni #define TWSS_C3                 47
10154faf9d3aSPedro Giffuni #define TWSS_C7                 48
10164faf9d3aSPedro Giffuni #define TWSS_C8                 49
10174faf9d3aSPedro Giffuni #define TWSS_C9                 50
10184faf9d3aSPedro Giffuni #define TWSS_C10                51
10194faf9d3aSPedro Giffuni #define TWSS_USSTATEMENT        52
10204faf9d3aSPedro Giffuni #define TWSS_BUSINESSCARD       53
10214faf9d3aSPedro Giffuni #define TWSS_MAXSIZE            54  /* Added 2.1 */
1022cdf0e10cSrcweir 
10234faf9d3aSPedro Giffuni /* ICAP_XFERMECH values (SX_ means Setup XFer) */
10244faf9d3aSPedro Giffuni #define TWSX_NATIVE              0
10254faf9d3aSPedro Giffuni #define TWSX_FILE                1
10264faf9d3aSPedro Giffuni #define TWSX_MEMORY              2
10274faf9d3aSPedro Giffuni #define TWSX_MEMFILE             4    /* added 1.91 */
1028cdf0e10cSrcweir 
10294faf9d3aSPedro Giffuni /* ICAP_UNITS values (UN_ means UNits) */
10304faf9d3aSPedro Giffuni #define TWUN_INCHES              0
10314faf9d3aSPedro Giffuni #define TWUN_CENTIMETERS         1
10324faf9d3aSPedro Giffuni #define TWUN_PICAS               2
10334faf9d3aSPedro Giffuni #define TWUN_POINTS              3
10344faf9d3aSPedro Giffuni #define TWUN_TWIPS               4
10354faf9d3aSPedro Giffuni #define TWUN_PIXELS              5
10364faf9d3aSPedro Giffuni #define TWUN_MILLIMETERS         6    /* added 1.91 */
1037cdf0e10cSrcweir 
1038cdf0e10cSrcweir 
1039cdf0e10cSrcweir /****************************************************************************
1040cdf0e10cSrcweir  * Country Constants                                                        *
1041cdf0e10cSrcweir  ****************************************************************************/
1042cdf0e10cSrcweir 
1043cdf0e10cSrcweir #define TWCY_AFGHANISTAN   1001
1044cdf0e10cSrcweir #define TWCY_ALGERIA        213
1045cdf0e10cSrcweir #define TWCY_AMERICANSAMOA  684
1046cdf0e10cSrcweir #define TWCY_ANDORRA        033
1047cdf0e10cSrcweir #define TWCY_ANGOLA        1002
1048cdf0e10cSrcweir #define TWCY_ANGUILLA      8090
1049cdf0e10cSrcweir #define TWCY_ANTIGUA       8091
1050cdf0e10cSrcweir #define TWCY_ARGENTINA       54
1051cdf0e10cSrcweir #define TWCY_ARUBA          297
1052cdf0e10cSrcweir #define TWCY_ASCENSIONI     247
1053cdf0e10cSrcweir #define TWCY_AUSTRALIA       61
1054cdf0e10cSrcweir #define TWCY_AUSTRIA         43
1055cdf0e10cSrcweir #define TWCY_BAHAMAS       8092
1056cdf0e10cSrcweir #define TWCY_BAHRAIN        973
1057cdf0e10cSrcweir #define TWCY_BANGLADESH     880
1058cdf0e10cSrcweir #define TWCY_BARBADOS      8093
1059cdf0e10cSrcweir #define TWCY_BELGIUM         32
1060cdf0e10cSrcweir #define TWCY_BELIZE         501
1061cdf0e10cSrcweir #define TWCY_BENIN          229
1062cdf0e10cSrcweir #define TWCY_BERMUDA       8094
1063cdf0e10cSrcweir #define TWCY_BHUTAN        1003
1064cdf0e10cSrcweir #define TWCY_BOLIVIA        591
1065cdf0e10cSrcweir #define TWCY_BOTSWANA       267
1066cdf0e10cSrcweir #define TWCY_BRITAIN          6
1067cdf0e10cSrcweir #define TWCY_BRITVIRGINIS  8095
1068cdf0e10cSrcweir #define TWCY_BRAZIL          55
1069cdf0e10cSrcweir #define TWCY_BRUNEI         673
1070cdf0e10cSrcweir #define TWCY_BULGARIA       359
1071cdf0e10cSrcweir #define TWCY_BURKINAFASO   1004
1072cdf0e10cSrcweir #define TWCY_BURMA         1005
1073cdf0e10cSrcweir #define TWCY_BURUNDI       1006
1074cdf0e10cSrcweir #define TWCY_CAMAROON       237
1075cdf0e10cSrcweir #define TWCY_CANADA           2
1076cdf0e10cSrcweir #define TWCY_CAPEVERDEIS    238
1077cdf0e10cSrcweir #define TWCY_CAYMANIS      8096
1078cdf0e10cSrcweir #define TWCY_CENTRALAFREP  1007
1079cdf0e10cSrcweir #define TWCY_CHAD          1008
1080cdf0e10cSrcweir #define TWCY_CHILE           56
1081cdf0e10cSrcweir #define TWCY_CHINA           86
1082cdf0e10cSrcweir #define TWCY_CHRISTMASIS   1009
1083cdf0e10cSrcweir #define TWCY_COCOSIS       1009
1084cdf0e10cSrcweir #define TWCY_COLOMBIA        57
1085cdf0e10cSrcweir #define TWCY_COMOROS       1010
1086cdf0e10cSrcweir #define TWCY_CONGO         1011
1087cdf0e10cSrcweir #define TWCY_COOKIS        1012
1088cdf0e10cSrcweir #define TWCY_COSTARICA     506
1089cdf0e10cSrcweir #define TWCY_CUBA           005
1090cdf0e10cSrcweir #define TWCY_CYPRUS         357
1091cdf0e10cSrcweir #define TWCY_CZECHOSLOVAKIA  42
1092cdf0e10cSrcweir #define TWCY_DENMARK         45
1093cdf0e10cSrcweir #define TWCY_DJIBOUTI      1013
1094cdf0e10cSrcweir #define TWCY_DOMINICA      8097
1095cdf0e10cSrcweir #define TWCY_DOMINCANREP   8098
1096cdf0e10cSrcweir #define TWCY_EASTERIS      1014
1097cdf0e10cSrcweir #define TWCY_ECUADOR        593
1098cdf0e10cSrcweir #define TWCY_EGYPT           20
1099cdf0e10cSrcweir #define TWCY_ELSALVADOR     503
1100cdf0e10cSrcweir #define TWCY_EQGUINEA      1015
1101cdf0e10cSrcweir #define TWCY_ETHIOPIA       251
1102cdf0e10cSrcweir #define TWCY_FALKLANDIS    1016
1103cdf0e10cSrcweir #define TWCY_FAEROEIS       298
1104cdf0e10cSrcweir #define TWCY_FIJIISLANDS    679
1105cdf0e10cSrcweir #define TWCY_FINLAND        358
1106cdf0e10cSrcweir #define TWCY_FRANCE          33
1107cdf0e10cSrcweir #define TWCY_FRANTILLES     596
1108cdf0e10cSrcweir #define TWCY_FRGUIANA       594
1109cdf0e10cSrcweir #define TWCY_FRPOLYNEISA    689
1110cdf0e10cSrcweir #define TWCY_FUTANAIS      1043
1111cdf0e10cSrcweir #define TWCY_GABON          241
1112cdf0e10cSrcweir #define TWCY_GAMBIA         220
1113cdf0e10cSrcweir #define TWCY_GERMANY         49
1114cdf0e10cSrcweir #define TWCY_GHANA          233
1115cdf0e10cSrcweir #define TWCY_GIBRALTER      350
1116cdf0e10cSrcweir #define TWCY_GREECE          30
1117cdf0e10cSrcweir #define TWCY_GREENLAND      299
1118cdf0e10cSrcweir #define TWCY_GRENADA       8099
1119cdf0e10cSrcweir #define TWCY_GRENEDINES    8015
1120cdf0e10cSrcweir #define TWCY_GUADELOUPE     590
1121cdf0e10cSrcweir #define TWCY_GUAM           671
1122cdf0e10cSrcweir #define TWCY_GUANTANAMOBAY 5399
1123cdf0e10cSrcweir #define TWCY_GUATEMALA      502
1124cdf0e10cSrcweir #define TWCY_GUINEA         224
1125cdf0e10cSrcweir #define TWCY_GUINEABISSAU  1017
1126cdf0e10cSrcweir #define TWCY_GUYANA         592
1127cdf0e10cSrcweir #define TWCY_HAITI          509
1128cdf0e10cSrcweir #define TWCY_HONDURAS       504
1129cdf0e10cSrcweir #define TWCY_HONGKONG      852
1130cdf0e10cSrcweir #define TWCY_HUNGARY         36
1131cdf0e10cSrcweir #define TWCY_ICELAND        354
1132cdf0e10cSrcweir #define TWCY_INDIA           91
1133cdf0e10cSrcweir #define TWCY_INDONESIA       62
1134cdf0e10cSrcweir #define TWCY_IRAN            98
1135cdf0e10cSrcweir #define TWCY_IRAQ           964
1136cdf0e10cSrcweir #define TWCY_IRELAND        353
1137cdf0e10cSrcweir #define TWCY_ISRAEL         972
1138cdf0e10cSrcweir #define TWCY_ITALY           39
1139cdf0e10cSrcweir #define TWCY_IVORYCOAST    225
1140cdf0e10cSrcweir #define TWCY_JAMAICA       8010
1141cdf0e10cSrcweir #define TWCY_JAPAN           81
1142cdf0e10cSrcweir #define TWCY_JORDAN         962
1143cdf0e10cSrcweir #define TWCY_KENYA          254
1144cdf0e10cSrcweir #define TWCY_KIRIBATI      1018
1145cdf0e10cSrcweir #define TWCY_KOREA           82
1146cdf0e10cSrcweir #define TWCY_KUWAIT         965
1147cdf0e10cSrcweir #define TWCY_LAOS          1019
1148cdf0e10cSrcweir #define TWCY_LEBANON       1020
1149cdf0e10cSrcweir #define TWCY_LIBERIA        231
1150cdf0e10cSrcweir #define TWCY_LIBYA          218
1151cdf0e10cSrcweir #define TWCY_LIECHTENSTEIN   41
1152cdf0e10cSrcweir #define TWCY_LUXENBOURG     352
1153cdf0e10cSrcweir #define TWCY_MACAO          853
1154cdf0e10cSrcweir #define TWCY_MADAGASCAR    1021
1155cdf0e10cSrcweir #define TWCY_MALAWI         265
1156cdf0e10cSrcweir #define TWCY_MALAYSIA        60
1157cdf0e10cSrcweir #define TWCY_MALDIVES       960
1158cdf0e10cSrcweir #define TWCY_MALI          1022
1159cdf0e10cSrcweir #define TWCY_MALTA          356
1160cdf0e10cSrcweir #define TWCY_MARSHALLIS     692
1161cdf0e10cSrcweir #define TWCY_MAURITANIA    1023
1162cdf0e10cSrcweir #define TWCY_MAURITIUS      230
1163cdf0e10cSrcweir #define TWCY_MEXICO           3
1164cdf0e10cSrcweir #define TWCY_MICRONESIA     691
1165cdf0e10cSrcweir #define TWCY_MIQUELON       508
1166cdf0e10cSrcweir #define TWCY_MONACO          33
1167cdf0e10cSrcweir #define TWCY_MONGOLIA      1024
1168cdf0e10cSrcweir #define TWCY_MONTSERRAT    8011
1169cdf0e10cSrcweir #define TWCY_MOROCCO        212
1170cdf0e10cSrcweir #define TWCY_MOZAMBIQUE    1025
1171cdf0e10cSrcweir #define TWCY_NAMIBIA        264
1172cdf0e10cSrcweir #define TWCY_NAURU         1026
1173cdf0e10cSrcweir #define TWCY_NEPAL          977
1174cdf0e10cSrcweir #define TWCY_NETHERLANDS     31
1175cdf0e10cSrcweir #define TWCY_NETHANTILLES   599
1176cdf0e10cSrcweir #define TWCY_NEVIS         8012
1177cdf0e10cSrcweir #define TWCY_NEWCALEDONIA   687
1178cdf0e10cSrcweir #define TWCY_NEWZEALAND      64
1179cdf0e10cSrcweir #define TWCY_NICARAGUA      505
1180cdf0e10cSrcweir #define TWCY_NIGER          227
1181cdf0e10cSrcweir #define TWCY_NIGERIA        234
1182cdf0e10cSrcweir #define TWCY_NIUE          1027
1183cdf0e10cSrcweir #define TWCY_NORFOLKI      1028
1184cdf0e10cSrcweir #define TWCY_NORWAY          47
1185cdf0e10cSrcweir #define TWCY_OMAN           968
1186cdf0e10cSrcweir #define TWCY_PAKISTAN        92
1187cdf0e10cSrcweir #define TWCY_PALAU         1029
1188cdf0e10cSrcweir #define TWCY_PANAMA         507
1189cdf0e10cSrcweir #define TWCY_PARAGUAY       595
1190cdf0e10cSrcweir #define TWCY_PERU            51
1191cdf0e10cSrcweir #define TWCY_PHILLIPPINES    63
1192cdf0e10cSrcweir #define TWCY_PITCAIRNIS    1030
1193cdf0e10cSrcweir #define TWCY_PNEWGUINEA     675
1194cdf0e10cSrcweir #define TWCY_POLAND          48
1195cdf0e10cSrcweir #define TWCY_PORTUGAL       351
1196cdf0e10cSrcweir #define TWCY_QATAR          974
1197cdf0e10cSrcweir #define TWCY_REUNIONI      1031
1198cdf0e10cSrcweir #define TWCY_ROMANIA         40
1199cdf0e10cSrcweir #define TWCY_RWANDA         250
1200cdf0e10cSrcweir #define TWCY_SAIPAN         670
1201cdf0e10cSrcweir #define TWCY_SANMARINO       39
1202cdf0e10cSrcweir #define TWCY_SAOTOME       1033
1203cdf0e10cSrcweir #define TWCY_SAUDIARABIA    966
1204cdf0e10cSrcweir #define TWCY_SENEGAL        221
1205cdf0e10cSrcweir #define TWCY_SEYCHELLESIS  1034
1206cdf0e10cSrcweir #define TWCY_SIERRALEONE   1035
1207cdf0e10cSrcweir #define TWCY_SINGAPORE       65
1208cdf0e10cSrcweir #define TWCY_SOLOMONIS     1036
1209cdf0e10cSrcweir #define TWCY_SOMALI        1037
1210cdf0e10cSrcweir #define TWCY_SOUTHAFRICA    27
1211cdf0e10cSrcweir #define TWCY_SPAIN           34
1212cdf0e10cSrcweir #define TWCY_SRILANKA        94
1213cdf0e10cSrcweir #define TWCY_STHELENA      1032
1214cdf0e10cSrcweir #define TWCY_STKITTS       8013
1215cdf0e10cSrcweir #define TWCY_STLUCIA       8014
1216cdf0e10cSrcweir #define TWCY_STPIERRE       508
1217cdf0e10cSrcweir #define TWCY_STVINCENT     8015
1218cdf0e10cSrcweir #define TWCY_SUDAN         1038
1219cdf0e10cSrcweir #define TWCY_SURINAME       597
1220cdf0e10cSrcweir #define TWCY_SWAZILAND      268
1221cdf0e10cSrcweir #define TWCY_SWEDEN          46
1222cdf0e10cSrcweir #define TWCY_SWITZERLAND     41
1223cdf0e10cSrcweir #define TWCY_SYRIA         1039
1224cdf0e10cSrcweir #define TWCY_TAIWAN         886
1225cdf0e10cSrcweir #define TWCY_TANZANIA       255
1226cdf0e10cSrcweir #define TWCY_THAILAND        66
1227cdf0e10cSrcweir #define TWCY_TOBAGO        8016
1228cdf0e10cSrcweir #define TWCY_TOGO           228
1229cdf0e10cSrcweir #define TWCY_TONGAIS        676
1230cdf0e10cSrcweir #define TWCY_TRINIDAD      8016
1231cdf0e10cSrcweir #define TWCY_TUNISIA        216
1232cdf0e10cSrcweir #define TWCY_TURKEY          90
1233cdf0e10cSrcweir #define TWCY_TURKSCAICOS   8017
1234cdf0e10cSrcweir #define TWCY_TUVALU        1040
1235cdf0e10cSrcweir #define TWCY_UGANDA         256
1236cdf0e10cSrcweir #define TWCY_USSR             7
1237cdf0e10cSrcweir #define TWCY_UAEMIRATES     971
1238cdf0e10cSrcweir #define TWCY_UNITEDKINGDOM   44
1239cdf0e10cSrcweir #define TWCY_USA              1
1240cdf0e10cSrcweir #define TWCY_URUGUAY        598
1241cdf0e10cSrcweir #define TWCY_VANUATU       1041
1242cdf0e10cSrcweir #define TWCY_VATICANCITY     39
1243cdf0e10cSrcweir #define TWCY_VENEZUELA       58
1244cdf0e10cSrcweir #define TWCY_WAKE          1042
1245cdf0e10cSrcweir #define TWCY_WALLISIS      1043
1246cdf0e10cSrcweir #define TWCY_WESTERNSAHARA 1044
1247cdf0e10cSrcweir #define TWCY_WESTERNSAMOA  1045
1248cdf0e10cSrcweir #define TWCY_YEMEN         1046
1249cdf0e10cSrcweir #define TWCY_YUGOSLAVIA      38
1250cdf0e10cSrcweir #define TWCY_ZAIRE          243
1251cdf0e10cSrcweir #define TWCY_ZAMBIA         260
1252cdf0e10cSrcweir #define TWCY_ZIMBABWE       263
1253cdf0e10cSrcweir /* Added for 1.8 */
1254cdf0e10cSrcweir #define TWCY_ALBANIA        355
1255cdf0e10cSrcweir #define TWCY_ARMENIA        374
1256cdf0e10cSrcweir #define TWCY_AZERBAIJAN     994
1257cdf0e10cSrcweir #define TWCY_BELARUS        375
1258cdf0e10cSrcweir #define TWCY_BOSNIAHERZGO   387
1259cdf0e10cSrcweir #define TWCY_CAMBODIA       855
1260cdf0e10cSrcweir #define TWCY_CROATIA        385
1261cdf0e10cSrcweir #define TWCY_CZECHREPUBLIC  420
1262cdf0e10cSrcweir #define TWCY_DIEGOGARCIA    246
1263cdf0e10cSrcweir #define TWCY_ERITREA        291
1264cdf0e10cSrcweir #define TWCY_ESTONIA        372
1265cdf0e10cSrcweir #define TWCY_GEORGIA        995
1266cdf0e10cSrcweir #define TWCY_LATVIA         371
1267cdf0e10cSrcweir #define TWCY_LESOTHO        266
1268cdf0e10cSrcweir #define TWCY_LITHUANIA      370
1269cdf0e10cSrcweir #define TWCY_MACEDONIA      389
1270cdf0e10cSrcweir #define TWCY_MAYOTTEIS      269
1271cdf0e10cSrcweir #define TWCY_MOLDOVA        373
1272cdf0e10cSrcweir #define TWCY_MYANMAR        95
1273cdf0e10cSrcweir #define TWCY_NORTHKOREA     850
1274cdf0e10cSrcweir #define TWCY_PUERTORICO     787
1275cdf0e10cSrcweir #define TWCY_RUSSIA         7
1276cdf0e10cSrcweir #define TWCY_SERBIA         381
1277cdf0e10cSrcweir #define TWCY_SLOVAKIA       421
1278cdf0e10cSrcweir #define TWCY_SLOVENIA       386
1279cdf0e10cSrcweir #define TWCY_SOUTHKOREA     82
1280cdf0e10cSrcweir #define TWCY_UKRAINE        380
1281cdf0e10cSrcweir #define TWCY_USVIRGINIS     340
1282cdf0e10cSrcweir #define TWCY_VIETNAM        84
1283cdf0e10cSrcweir 
1284cdf0e10cSrcweir /****************************************************************************
1285cdf0e10cSrcweir  * Language Constants                                                       *
1286cdf0e10cSrcweir  ****************************************************************************/
1287cdf0e10cSrcweir /* Added for 1.8 */
1288cdf0e10cSrcweir #define TWLG_USERLOCALE           -1
12894faf9d3aSPedro Giffuni #define TWLG_DANISH               0    /* Danish                 */
12904faf9d3aSPedro Giffuni #define TWLG_DUTCH                1    /* Dutch                  */
12914faf9d3aSPedro Giffuni #define TWLG_ENGLISH              2    /* International English  */
12924faf9d3aSPedro Giffuni #define TWLG_FRENCH_CANADIAN      3    /* French Canadian        */
12934faf9d3aSPedro Giffuni #define TWLG_FINNISH              4    /* Finnish                */
12944faf9d3aSPedro Giffuni #define TWLG_FRENCH               5    /* French                 */
12954faf9d3aSPedro Giffuni #define TWLG_GERMAN               6    /* German                 */
12964faf9d3aSPedro Giffuni #define TWLG_ICELANDIC            7    /* Icelandic              */
12974faf9d3aSPedro Giffuni #define TWLG_ITALIAN              8    /* Italian                */
12984faf9d3aSPedro Giffuni #define TWLG_NORWEGIAN            9    /* Norwegian              */
12994faf9d3aSPedro Giffuni #define TWLG_PORTUGUESE           10   /* Portuguese             */
13004faf9d3aSPedro Giffuni #define TWLG_SPANISH              11   /* Spanish                */
13014faf9d3aSPedro Giffuni #define TWLG_SWEDISH              12   /* Swedish                */
13024faf9d3aSPedro Giffuni #define TWLG_ENGLISH_USA          13   /* U.S. English           */
1303cdf0e10cSrcweir #define TWLG_AFRIKAANS            14
1304cdf0e10cSrcweir #define TWLG_ALBANIA              15
1305cdf0e10cSrcweir #define TWLG_ARABIC               16
1306cdf0e10cSrcweir #define TWLG_ARABIC_ALGERIA       17
1307cdf0e10cSrcweir #define TWLG_ARABIC_BAHRAIN       18
1308cdf0e10cSrcweir #define TWLG_ARABIC_EGYPT         19
1309cdf0e10cSrcweir #define TWLG_ARABIC_IRAQ          20
1310cdf0e10cSrcweir #define TWLG_ARABIC_JORDAN        21
1311cdf0e10cSrcweir #define TWLG_ARABIC_KUWAIT        22
1312cdf0e10cSrcweir #define TWLG_ARABIC_LEBANON       23
1313cdf0e10cSrcweir #define TWLG_ARABIC_LIBYA         24
1314cdf0e10cSrcweir #define TWLG_ARABIC_MOROCCO       25
1315cdf0e10cSrcweir #define TWLG_ARABIC_OMAN          26
1316cdf0e10cSrcweir #define TWLG_ARABIC_QATAR         27
1317cdf0e10cSrcweir #define TWLG_ARABIC_SAUDIARABIA   28
1318cdf0e10cSrcweir #define TWLG_ARABIC_SYRIA         29
1319cdf0e10cSrcweir #define TWLG_ARABIC_TUNISIA       30
1320cdf0e10cSrcweir #define TWLG_ARABIC_UAE           31 /* United Arabic Emirates */
1321cdf0e10cSrcweir #define TWLG_ARABIC_YEMEN         32
1322cdf0e10cSrcweir #define TWLG_BASQUE               33
1323cdf0e10cSrcweir #define TWLG_BYELORUSSIAN         34
1324cdf0e10cSrcweir #define TWLG_BULGARIAN            35
1325cdf0e10cSrcweir #define TWLG_CATALAN              36
1326cdf0e10cSrcweir #define TWLG_CHINESE              37
1327cdf0e10cSrcweir #define TWLG_CHINESE_HONGKONG     38
1328cdf0e10cSrcweir #define TWLG_CHINESE_PRC          39 /* People's Republic of China */
1329cdf0e10cSrcweir #define TWLG_CHINESE_SINGAPORE    40
1330cdf0e10cSrcweir #define TWLG_CHINESE_SIMPLIFIED   41
1331cdf0e10cSrcweir #define TWLG_CHINESE_TAIWAN       42
1332cdf0e10cSrcweir #define TWLG_CHINESE_TRADITIONAL  43
1333cdf0e10cSrcweir #define TWLG_CROATIA              44
1334cdf0e10cSrcweir #define TWLG_CZECH                45
1335cdf0e10cSrcweir #define TWLG_DUTCH_BELGIAN        46
1336cdf0e10cSrcweir #define TWLG_ENGLISH_AUSTRALIAN   47
1337cdf0e10cSrcweir #define TWLG_ENGLISH_CANADIAN     48
1338cdf0e10cSrcweir #define TWLG_ENGLISH_IRELAND      49
1339cdf0e10cSrcweir #define TWLG_ENGLISH_NEWZEALAND   50
1340cdf0e10cSrcweir #define TWLG_ENGLISH_SOUTHAFRICA  51
1341cdf0e10cSrcweir #define TWLG_ENGLISH_UK           52
1342cdf0e10cSrcweir #define TWLG_ESTONIAN             53
1343cdf0e10cSrcweir #define TWLG_FAEROESE             54
1344cdf0e10cSrcweir #define TWLG_FARSI                55
1345cdf0e10cSrcweir #define TWLG_FRENCH_BELGIAN       56
1346cdf0e10cSrcweir #define TWLG_FRENCH_LUXEMBOURG    57
1347cdf0e10cSrcweir #define TWLG_FRENCH_SWISS         58
1348cdf0e10cSrcweir #define TWLG_GERMAN_AUSTRIAN      59
1349cdf0e10cSrcweir #define TWLG_GERMAN_LUXEMBOURG    60
1350cdf0e10cSrcweir #define TWLG_GERMAN_LIECHTENSTEIN 61
1351cdf0e10cSrcweir #define TWLG_GERMAN_SWISS         62
1352cdf0e10cSrcweir #define TWLG_GREEK                63
1353cdf0e10cSrcweir #define TWLG_HEBREW               64
1354cdf0e10cSrcweir #define TWLG_HUNGARIAN            65
1355cdf0e10cSrcweir #define TWLG_INDONESIAN           66
1356cdf0e10cSrcweir #define TWLG_ITALIAN_SWISS        67
1357cdf0e10cSrcweir #define TWLG_JAPANESE             68
1358cdf0e10cSrcweir #define TWLG_KOREAN               69
1359cdf0e10cSrcweir #define TWLG_KOREAN_JOHAB         70
1360cdf0e10cSrcweir #define TWLG_LATVIAN              71
1361cdf0e10cSrcweir #define TWLG_LITHUANIAN           72
1362cdf0e10cSrcweir #define TWLG_NORWEGIAN_BOKMAL     73
1363cdf0e10cSrcweir #define TWLG_NORWEGIAN_NYNORSK    74
1364cdf0e10cSrcweir #define TWLG_POLISH               75
1365cdf0e10cSrcweir #define TWLG_PORTUGUESE_BRAZIL    76
1366cdf0e10cSrcweir #define TWLG_ROMANIAN             77
1367cdf0e10cSrcweir #define TWLG_RUSSIAN              78
1368cdf0e10cSrcweir #define TWLG_SERBIAN_LATIN        79
1369cdf0e10cSrcweir #define TWLG_SLOVAK               80
1370cdf0e10cSrcweir #define TWLG_SLOVENIAN            81
1371cdf0e10cSrcweir #define TWLG_SPANISH_MEXICAN      82
1372cdf0e10cSrcweir #define TWLG_SPANISH_MODERN       83
1373cdf0e10cSrcweir #define TWLG_THAI                 84
1374cdf0e10cSrcweir #define TWLG_TURKISH              85
1375cdf0e10cSrcweir #define TWLG_UKRANIAN             86
1376cdf0e10cSrcweir /* More stuff added for 1.8 */
1377cdf0e10cSrcweir #define TWLG_ASSAMESE             87
1378cdf0e10cSrcweir #define TWLG_BENGALI              88
1379cdf0e10cSrcweir #define TWLG_BIHARI               89
1380cdf0e10cSrcweir #define TWLG_BODO                 90
1381cdf0e10cSrcweir #define TWLG_DOGRI                91
1382cdf0e10cSrcweir #define TWLG_GUJARATI             92
1383cdf0e10cSrcweir #define TWLG_HARYANVI             93
1384cdf0e10cSrcweir #define TWLG_HINDI                94
1385cdf0e10cSrcweir #define TWLG_KANNADA              95
1386cdf0e10cSrcweir #define TWLG_KASHMIRI             96
1387cdf0e10cSrcweir #define TWLG_MALAYALAM            97
1388cdf0e10cSrcweir #define TWLG_MARATHI              98
1389cdf0e10cSrcweir #define TWLG_MARWARI              99
1390cdf0e10cSrcweir #define TWLG_MEGHALAYAN          100
1391cdf0e10cSrcweir #define TWLG_MIZO                101
1392cdf0e10cSrcweir #define TWLG_NAGA                102
1393cdf0e10cSrcweir #define TWLG_ORISSI              103
1394cdf0e10cSrcweir #define TWLG_PUNJABI             104
1395cdf0e10cSrcweir #define TWLG_PUSHTU              105
1396cdf0e10cSrcweir #define TWLG_SERBIAN_CYRILLIC    106
1397cdf0e10cSrcweir #define TWLG_SIKKIMI             107
1398cdf0e10cSrcweir #define TWLG_SWEDISH_FINLAND     108
1399cdf0e10cSrcweir #define TWLG_TAMIL               109
1400cdf0e10cSrcweir #define TWLG_TELUGU              110
1401cdf0e10cSrcweir #define TWLG_TRIPURI             111
1402cdf0e10cSrcweir #define TWLG_URDU                112
1403cdf0e10cSrcweir #define TWLG_VIETNAMESE          113
1404cdf0e10cSrcweir 
1405cdf0e10cSrcweir /****************************************************************************
1406cdf0e10cSrcweir  * Data Groups                                                              *
1407cdf0e10cSrcweir  ****************************************************************************/
1408cdf0e10cSrcweir 
1409cdf0e10cSrcweir /* More Data Groups may be added in the future.
1410cdf0e10cSrcweir  * Possible candidates include text, vector graphics, sound, etc.
1411cdf0e10cSrcweir  * NOTE: Data Group constants must be powers of 2 as they are used
1412cdf0e10cSrcweir  *       as bitflags when Application asks DSM to present a list of DSs.
1413cdf0e10cSrcweir  */
1414cdf0e10cSrcweir 
1415cdf0e10cSrcweir #define DG_CONTROL          0x0001L /* data pertaining to control       */
1416cdf0e10cSrcweir #define DG_IMAGE            0x0002L /* data pertaining to raster images */
1417cdf0e10cSrcweir /* Added 1.8 */
1418cdf0e10cSrcweir #define DG_AUDIO            0x0004L /* data pertaining to audio */
1419cdf0e10cSrcweir 
14204faf9d3aSPedro Giffuni /* More Data Functionality may be added in the future.
14214faf9d3aSPedro Giffuni  * These are for items that need to be determined before DS is opened.
14224faf9d3aSPedro Giffuni  * NOTE: Supported Functionality constants must be powers of 2 as they are
14234faf9d3aSPedro Giffuni  *       used as bitflags when Application asks DSM to present a list of DSs.
14244faf9d3aSPedro Giffuni  *       to support backward capability the App and DS will not use the fields
14254faf9d3aSPedro Giffuni  */
14264faf9d3aSPedro Giffuni #define DF_DSM2             0x10000000L   /* added to the identity by the DSM  */
14274faf9d3aSPedro Giffuni #define DF_APP2             0x20000000L   /* Set by the App to indicate it would
14284faf9d3aSPedro Giffuni                                              prefer to use DSM2 */
14294faf9d3aSPedro Giffuni #define DF_DS2              0x40000000L   /* Set by the DS to indicate it would
14304faf9d3aSPedro Giffuni                                              prefer to use DSM2 */
14314faf9d3aSPedro Giffuni #define DG_MASK             0xFFFFL       /* all Data Groups limited to 16 bit.  Added for 2.1  */
14324faf9d3aSPedro Giffuni 
1433cdf0e10cSrcweir /****************************************************************************
14344faf9d3aSPedro Giffuni  *                                                        *
1435cdf0e10cSrcweir  ****************************************************************************/
1436cdf0e10cSrcweir #define DAT_NULL            0x0000 /* No data or structure. */
1437cdf0e10cSrcweir #define DAT_CUSTOMBASE      0x8000 /* Base of custom DATs.  */
1438cdf0e10cSrcweir 
1439cdf0e10cSrcweir /* Data Argument Types for the DG_CONTROL Data Group. */
1440cdf0e10cSrcweir #define DAT_CAPABILITY      0x0001 /* TW_CAPABILITY                        */
1441cdf0e10cSrcweir #define DAT_EVENT           0x0002 /* TW_EVENT                             */
1442cdf0e10cSrcweir #define DAT_IDENTITY        0x0003 /* TW_IDENTITY                          */
1443cdf0e10cSrcweir #define DAT_PARENT          0x0004 /* TW_HANDLE, application win handle in Windows */
1444cdf0e10cSrcweir #define DAT_PENDINGXFERS    0x0005 /* TW_PENDINGXFERS                      */
1445cdf0e10cSrcweir #define DAT_SETUPMEMXFER    0x0006 /* TW_SETUPMEMXFER                      */
1446cdf0e10cSrcweir #define DAT_SETUPFILEXFER   0x0007 /* TW_SETUPFILEXFER                     */
1447cdf0e10cSrcweir #define DAT_STATUS          0x0008 /* TW_STATUS                            */
1448cdf0e10cSrcweir #define DAT_USERINTERFACE   0x0009 /* TW_USERINTERFACE                     */
1449cdf0e10cSrcweir #define DAT_XFERGROUP       0x000a /* TW_UINT32                            */
1450cdf0e10cSrcweir #define DAT_CUSTOMDSDATA    0x000c /* TW_CUSTOMDSDATA.                     */
14514faf9d3aSPedro Giffuni #define DAT_DEVICEEVENT     0x000d /* TW_DEVICEEVENT     Added 1.8         */
14524faf9d3aSPedro Giffuni #define DAT_FILESYSTEM      0x000e /* TW_FILESYSTEM      Added 1.8         */
14534faf9d3aSPedro Giffuni #define DAT_PASSTHRU        0x000f /* TW_PASSTHRU        Added 1.8         */
14544faf9d3aSPedro Giffuni #define DAT_CALLBACK        0x0010 /* TW_CALLBACK        Added 2.0         */
14554faf9d3aSPedro Giffuni #define DAT_STATUSUTF8      0x0011 /* TW_STATUSUTF8      Added 2.1         */
1456cdf0e10cSrcweir 
1457cdf0e10cSrcweir /* Data Argument Types for the DG_IMAGE Data Group. */
1458cdf0e10cSrcweir #define DAT_IMAGEINFO       0x0101 /* TW_IMAGEINFO                         */
1459cdf0e10cSrcweir #define DAT_IMAGELAYOUT     0x0102 /* TW_IMAGELAYOUT                       */
1460cdf0e10cSrcweir #define DAT_IMAGEMEMXFER    0x0103 /* TW_IMAGEMEMXFER                      */
1461cdf0e10cSrcweir #define DAT_IMAGENATIVEXFER 0x0104 /* TW_UINT32 loword is hDIB, PICHandle  */
1462cdf0e10cSrcweir #define DAT_IMAGEFILEXFER   0x0105 /* Null data                            */
1463cdf0e10cSrcweir #define DAT_CIECOLOR        0x0106 /* TW_CIECOLOR                          */
1464cdf0e10cSrcweir #define DAT_GRAYRESPONSE    0x0107 /* TW_GRAYRESPONSE                      */
1465cdf0e10cSrcweir #define DAT_RGBRESPONSE     0x0108 /* TW_RGBRESPONSE                       */
1466cdf0e10cSrcweir #define DAT_JPEGCOMPRESSION 0x0109 /* TW_JPEGCOMPRESSION                   */
1467cdf0e10cSrcweir #define DAT_PALETTE8        0x010a /* TW_PALETTE8                          */
1468cdf0e10cSrcweir #define DAT_EXTIMAGEINFO    0x010b /* TW_EXTIMAGEINFO -- for 1.7 Spec.     */
1469cdf0e10cSrcweir 
1470cdf0e10cSrcweir /* Data Argument Types for the DG_AUDIO Data Group. */
14714faf9d3aSPedro Giffuni #define DAT_AUDIOFILEXFER   0x0201 /* Null data          Added 1.8         */
14724faf9d3aSPedro Giffuni #define DAT_AUDIOINFO       0x0202 /* TW_AUDIOINFO       Added 1.8         */
14734faf9d3aSPedro Giffuni #define DAT_AUDIONATIVEXFER 0x0203 /* TW_UINT32 handle to WAV, (AIFF Mac) Added 1.8 */
14744faf9d3aSPedro Giffuni 
14754faf9d3aSPedro Giffuni /* misplaced */
14764faf9d3aSPedro Giffuni #define DAT_ICCPROFILE        0x0401 /* TW_MEMORY        Added 1.91  This Data Argument is misplaced but belongs to the DG_IMAGE Data Group */
14774faf9d3aSPedro Giffuni #define DAT_IMAGEMEMFILEXFER  0x0402 /* TW_IMAGEMEMXFER  Added 1.91  This Data Argument is misplaced but belongs to the DG_IMAGE Data Group */
14784faf9d3aSPedro Giffuni #define DAT_ENTRYPOINT        0x0403 /* TW_ENTRYPOINT    Added 2.0   This Data Argument is misplaced but belongs to the DG_CONTROL Data Group */
1479cdf0e10cSrcweir 
1480cdf0e10cSrcweir 
1481cdf0e10cSrcweir /****************************************************************************
1482cdf0e10cSrcweir  * Messages                                                                 *
1483cdf0e10cSrcweir  ****************************************************************************/
1484cdf0e10cSrcweir 
1485cdf0e10cSrcweir /* All message constants are unique.
1486cdf0e10cSrcweir  * Messages are grouped according to which DATs they are used with.*/
1487cdf0e10cSrcweir 
1488cdf0e10cSrcweir #define MSG_NULL         0x0000 /* Used in TW_EVENT structure               */
1489cdf0e10cSrcweir #define MSG_CUSTOMBASE   0x8000 /* Base of custom messages                  */
1490cdf0e10cSrcweir 
1491cdf0e10cSrcweir /* Generic messages may be used with any of several DATs.                   */
14924faf9d3aSPedro Giffuni #define MSG_GET             0x0001 /* Get one or more values                   */
14934faf9d3aSPedro Giffuni #define MSG_GETCURRENT      0x0002 /* Get current value                        */
14944faf9d3aSPedro Giffuni #define MSG_GETDEFAULT      0x0003 /* Get default (e.g. power up) value        */
14954faf9d3aSPedro Giffuni #define MSG_GETFIRST        0x0004 /* Get first of a series of items, e.g. DSs */
14964faf9d3aSPedro Giffuni #define MSG_GETNEXT         0x0005 /* Iterate through a series of items.       */
14974faf9d3aSPedro Giffuni #define MSG_SET             0x0006 /* Set one or more values                   */
14984faf9d3aSPedro Giffuni #define MSG_RESET           0x0007 /* Set current value to default value       */
14994faf9d3aSPedro Giffuni #define MSG_QUERYSUPPORT    0x0008 /* Get supported operations on the cap.     */
15004faf9d3aSPedro Giffuni #define MSG_GETHELP         0x0009 /* Returns help text suitable for use in a GUI        Added 2.1 */
15014faf9d3aSPedro Giffuni #define MSG_GETLABEL        0x000a /* Returns a label suitable for use in a GUI          Added 2.1 */
15024faf9d3aSPedro Giffuni #define MSG_GETLABELENUM    0x000b /* Return all of the labels for a capability of type  Added 2.1 */
15034faf9d3aSPedro Giffuni 
1504cdf0e10cSrcweir 
1505cdf0e10cSrcweir /* Messages used with DAT_NULL                                              */
1506cdf0e10cSrcweir #define MSG_XFERREADY    0x0101 /* The data source has data ready           */
15074faf9d3aSPedro Giffuni #define MSG_CLOSEDSREQ   0x0102 /* Request for Application. to close DS               */
15084faf9d3aSPedro Giffuni #define MSG_CLOSEDSOK    0x0103 /* Tell the Application. to save the state.           */
15094faf9d3aSPedro Giffuni #define MSG_DEVICEEVENT  0X0104 /* Some event has taken place               Added 1.8 */
1510cdf0e10cSrcweir 
1511cdf0e10cSrcweir /* Messages used with a pointer to DAT_PARENT data                          */
1512cdf0e10cSrcweir #define MSG_OPENDSM      0x0301 /* Open the DSM                             */
1513cdf0e10cSrcweir #define MSG_CLOSEDSM     0x0302 /* Close the DSM                            */
1514cdf0e10cSrcweir 
1515cdf0e10cSrcweir /* Messages used with a pointer to a DAT_IDENTITY structure                 */
1516cdf0e10cSrcweir #define MSG_OPENDS       0x0401 /* Open a data source                       */
1517cdf0e10cSrcweir #define MSG_CLOSEDS      0x0402 /* Close a data source                      */
1518cdf0e10cSrcweir #define MSG_USERSELECT   0x0403 /* Put up a dialog of all DS                */
1519cdf0e10cSrcweir 
1520cdf0e10cSrcweir /* Messages used with a pointer to a DAT_USERINTERFACE structure            */
1521cdf0e10cSrcweir #define MSG_DISABLEDS    0x0501 /* Disable data transfer in the DS          */
1522cdf0e10cSrcweir #define MSG_ENABLEDS     0x0502 /* Enable data transfer in the DS           */
1523cdf0e10cSrcweir #define MSG_ENABLEDSUIONLY  0x0503  /* Enable for saving DS state only.     */
1524cdf0e10cSrcweir 
1525cdf0e10cSrcweir /* Messages used with a pointer to a DAT_EVENT structure                    */
1526cdf0e10cSrcweir #define MSG_PROCESSEVENT 0x0601
1527cdf0e10cSrcweir 
1528cdf0e10cSrcweir /* Messages used with a pointer to a DAT_PENDINGXFERS structure             */
1529cdf0e10cSrcweir #define MSG_ENDXFER      0x0701
1530cdf0e10cSrcweir #define MSG_STOPFEEDER   0x0702
1531cdf0e10cSrcweir 
1532cdf0e10cSrcweir /* Messages used with a pointer to a DAT_FILESYSTEM structure               */
15334faf9d3aSPedro Giffuni #define MSG_CHANGEDIRECTORY   0x0801 /* Added 1.8 */
15344faf9d3aSPedro Giffuni #define MSG_CREATEDIRECTORY   0x0802 /* Added 1.8 */
15354faf9d3aSPedro Giffuni #define MSG_DELETE            0x0803 /* Added 1.8 */
15364faf9d3aSPedro Giffuni #define MSG_FORMATMEDIA       0x0804 /* Added 1.8 */
15374faf9d3aSPedro Giffuni #define MSG_GETCLOSE          0x0805 /* Added 1.8 */
15384faf9d3aSPedro Giffuni #define MSG_GETFIRSTFILE      0x0806 /* Added 1.8 */
15394faf9d3aSPedro Giffuni #define MSG_GETINFO           0x0807 /* Added 1.8 */
15404faf9d3aSPedro Giffuni #define MSG_GETNEXTFILE       0x0808 /* Added 1.8 */
15414faf9d3aSPedro Giffuni #define MSG_RENAME            0x0809 /* Added 1.8 */
15424faf9d3aSPedro Giffuni #define MSG_COPY              0x080A /* Added 1.8 */
15434faf9d3aSPedro Giffuni #define MSG_AUTOMATICCAPTUREDIRECTORY 0x080B /* Added 1.8 */
1544cdf0e10cSrcweir 
1545cdf0e10cSrcweir /* Messages used with a pointer to a DAT_PASSTHRU structure                 */
1546cdf0e10cSrcweir #define MSG_PASSTHRU          0x0901
1547cdf0e10cSrcweir 
15484faf9d3aSPedro Giffuni /* used with DAT_CALLBACK */
15494faf9d3aSPedro Giffuni #define MSG_REGISTER_CALLBACK 0x0902
15504faf9d3aSPedro Giffuni 
15514faf9d3aSPedro Giffuni /* used with DAT_CAPABILITY */
15524faf9d3aSPedro Giffuni #define MSG_RESETALL          0x0A01 /*  Added 1.91 */
15534faf9d3aSPedro Giffuni 
1554cdf0e10cSrcweir /****************************************************************************
1555cdf0e10cSrcweir  * Capabilities                                                             *
1556cdf0e10cSrcweir  ****************************************************************************/
1557cdf0e10cSrcweir 
1558cdf0e10cSrcweir #define CAP_CUSTOMBASE          0x8000 /* Base of custom capabilities */
1559cdf0e10cSrcweir 
1560cdf0e10cSrcweir /* all data sources are REQUIRED to support these caps */
1561cdf0e10cSrcweir #define CAP_XFERCOUNT           0x0001
1562cdf0e10cSrcweir 
1563cdf0e10cSrcweir /* image data sources are REQUIRED to support these caps */
1564cdf0e10cSrcweir #define ICAP_COMPRESSION        0x0100
1565cdf0e10cSrcweir #define ICAP_PIXELTYPE          0x0101
1566cdf0e10cSrcweir #define ICAP_UNITS              0x0102 /* default is TWUN_INCHES */
1567cdf0e10cSrcweir #define ICAP_XFERMECH           0x0103
1568cdf0e10cSrcweir 
1569cdf0e10cSrcweir /* all data sources MAY support these caps */
1570cdf0e10cSrcweir #define CAP_AUTHOR                  0x1000
1571cdf0e10cSrcweir #define CAP_CAPTION                 0x1001
1572cdf0e10cSrcweir #define CAP_FEEDERENABLED           0x1002
1573cdf0e10cSrcweir #define CAP_FEEDERLOADED            0x1003
1574cdf0e10cSrcweir #define CAP_TIMEDATE                0x1004
1575cdf0e10cSrcweir #define CAP_SUPPORTEDCAPS           0x1005
1576cdf0e10cSrcweir #define CAP_EXTENDEDCAPS            0x1006
1577cdf0e10cSrcweir #define CAP_AUTOFEED                0x1007
1578cdf0e10cSrcweir #define CAP_CLEARPAGE               0x1008
1579cdf0e10cSrcweir #define CAP_FEEDPAGE                0x1009
1580cdf0e10cSrcweir #define CAP_REWINDPAGE              0x100a
1581cdf0e10cSrcweir #define CAP_INDICATORS              0x100b   /* Added 1.1 */
1582cdf0e10cSrcweir #define CAP_SUPPORTEDCAPSEXT        0x100c   /* Added 1.6 */
1583cdf0e10cSrcweir #define CAP_PAPERDETECTABLE         0x100d   /* Added 1.6 */
1584cdf0e10cSrcweir #define CAP_UICONTROLLABLE          0x100e   /* Added 1.6 */
1585cdf0e10cSrcweir #define CAP_DEVICEONLINE            0x100f   /* Added 1.6 */
1586cdf0e10cSrcweir #define CAP_AUTOSCAN                0x1010   /* Added 1.6 */
1587cdf0e10cSrcweir #define CAP_THUMBNAILSENABLED       0x1011   /* Added 1.7 */
1588cdf0e10cSrcweir #define CAP_DUPLEX                  0x1012   /* Added 1.7 */
1589cdf0e10cSrcweir #define CAP_DUPLEXENABLED           0x1013   /* Added 1.7 */
1590cdf0e10cSrcweir #define CAP_ENABLEDSUIONLY          0x1014   /* Added 1.7 */
1591cdf0e10cSrcweir #define CAP_CUSTOMDSDATA            0x1015   /* Added 1.7 */
1592cdf0e10cSrcweir #define CAP_ENDORSER                0x1016   /* Added 1.7 */
1593cdf0e10cSrcweir #define CAP_JOBCONTROL              0x1017   /* Added 1.7 */
1594cdf0e10cSrcweir #define CAP_ALARMS                  0x1018   /* Added 1.8 */
1595cdf0e10cSrcweir #define CAP_ALARMVOLUME             0x1019   /* Added 1.8 */
1596cdf0e10cSrcweir #define CAP_AUTOMATICCAPTURE        0x101a   /* Added 1.8 */
1597cdf0e10cSrcweir #define CAP_TIMEBEFOREFIRSTCAPTURE  0x101b   /* Added 1.8 */
1598cdf0e10cSrcweir #define CAP_TIMEBETWEENCAPTURES     0x101c   /* Added 1.8 */
1599cdf0e10cSrcweir #define CAP_CLEARBUFFERS            0x101d   /* Added 1.8 */
1600cdf0e10cSrcweir #define CAP_MAXBATCHBUFFERS         0x101e   /* Added 1.8 */
1601cdf0e10cSrcweir #define CAP_DEVICETIMEDATE          0x101f   /* Added 1.8 */
1602cdf0e10cSrcweir #define CAP_POWERSUPPLY             0x1020   /* Added 1.8 */
1603cdf0e10cSrcweir #define CAP_CAMERAPREVIEWUI         0x1021   /* Added 1.8 */
1604cdf0e10cSrcweir #define CAP_DEVICEEVENT             0x1022   /* Added 1.8 */
1605cdf0e10cSrcweir #define CAP_SERIALNUMBER            0x1024   /* Added 1.8 */
1606cdf0e10cSrcweir #define CAP_PRINTER                 0x1026   /* Added 1.8 */
1607cdf0e10cSrcweir #define CAP_PRINTERENABLED          0x1027   /* Added 1.8 */
1608cdf0e10cSrcweir #define CAP_PRINTERINDEX            0x1028   /* Added 1.8 */
1609cdf0e10cSrcweir #define CAP_PRINTERMODE             0x1029   /* Added 1.8 */
1610cdf0e10cSrcweir #define CAP_PRINTERSTRING           0x102a   /* Added 1.8 */
1611cdf0e10cSrcweir #define CAP_PRINTERSUFFIX           0x102b   /* Added 1.8 */
1612cdf0e10cSrcweir #define CAP_LANGUAGE                0x102c   /* Added 1.8 */
1613cdf0e10cSrcweir #define CAP_FEEDERALIGNMENT         0x102d   /* Added 1.8 */
1614cdf0e10cSrcweir #define CAP_FEEDERORDER             0x102e   /* Added 1.8 */
1615cdf0e10cSrcweir #define CAP_REACQUIREALLOWED        0x1030   /* Added 1.8 */
1616cdf0e10cSrcweir #define CAP_BATTERYMINUTES          0x1032   /* Added 1.8 */
1617cdf0e10cSrcweir #define CAP_BATTERYPERCENTAGE       0x1033   /* Added 1.8 */
16184faf9d3aSPedro Giffuni #define CAP_CAMERASIDE              0x1034   /* Added 1.91 */
16194faf9d3aSPedro Giffuni #define CAP_SEGMENTED               0x1035   /* Added 1.91 */
16204faf9d3aSPedro Giffuni #define CAP_CAMERAENABLED           0x1036   /* Added 2.0 */
16214faf9d3aSPedro Giffuni #define CAP_CAMERAORDER             0x1037   /* Added 2.0 */
16224faf9d3aSPedro Giffuni #define CAP_MICRENABLED             0x1038   /* Added 2.0 */
16234faf9d3aSPedro Giffuni #define CAP_FEEDERPREP              0x1039   /* Added 2.0 */
16244faf9d3aSPedro Giffuni #define CAP_FEEDERPOCKET            0x103a   /* Added 2.0 */
16254faf9d3aSPedro Giffuni #define CAP_AUTOMATICSENSEMEDIUM    0x103b   /* Added 2.1 */
16264faf9d3aSPedro Giffuni #define CAP_CUSTOMINTERFACEGUID     0x103c   /* Added 2.1 */
16274faf9d3aSPedro Giffuni 
1628cdf0e10cSrcweir 
1629cdf0e10cSrcweir /* image data sources MAY support these caps */
1630cdf0e10cSrcweir #define ICAP_AUTOBRIGHT                   0x1100
1631cdf0e10cSrcweir #define ICAP_BRIGHTNESS                   0x1101
1632cdf0e10cSrcweir #define ICAP_CONTRAST                     0x1103
1633cdf0e10cSrcweir #define ICAP_CUSTHALFTONE                 0x1104
1634cdf0e10cSrcweir #define ICAP_EXPOSURETIME                 0x1105
1635cdf0e10cSrcweir #define ICAP_FILTER                       0x1106
1636cdf0e10cSrcweir #define ICAP_FLASHUSED                    0x1107
1637cdf0e10cSrcweir #define ICAP_GAMMA                        0x1108
1638cdf0e10cSrcweir #define ICAP_HALFTONES                    0x1109
1639cdf0e10cSrcweir #define ICAP_HIGHLIGHT                    0x110a
1640cdf0e10cSrcweir #define ICAP_IMAGEFILEFORMAT              0x110c
1641cdf0e10cSrcweir #define ICAP_LAMPSTATE                    0x110d
1642cdf0e10cSrcweir #define ICAP_LIGHTSOURCE                  0x110e
1643cdf0e10cSrcweir #define ICAP_ORIENTATION                  0x1110
1644cdf0e10cSrcweir #define ICAP_PHYSICALWIDTH                0x1111
1645cdf0e10cSrcweir #define ICAP_PHYSICALHEIGHT               0x1112
1646cdf0e10cSrcweir #define ICAP_SHADOW                       0x1113
1647cdf0e10cSrcweir #define ICAP_FRAMES                       0x1114
1648cdf0e10cSrcweir #define ICAP_XNATIVERESOLUTION            0x1116
1649cdf0e10cSrcweir #define ICAP_YNATIVERESOLUTION            0x1117
1650cdf0e10cSrcweir #define ICAP_XRESOLUTION                  0x1118
1651cdf0e10cSrcweir #define ICAP_YRESOLUTION                  0x1119
1652cdf0e10cSrcweir #define ICAP_MAXFRAMES                    0x111a
1653cdf0e10cSrcweir #define ICAP_TILES                        0x111b
1654cdf0e10cSrcweir #define ICAP_BITORDER                     0x111c
1655cdf0e10cSrcweir #define ICAP_CCITTKFACTOR                 0x111d
1656cdf0e10cSrcweir #define ICAP_LIGHTPATH                    0x111e
1657cdf0e10cSrcweir #define ICAP_PIXELFLAVOR                  0x111f
1658cdf0e10cSrcweir #define ICAP_PLANARCHUNKY                 0x1120
1659cdf0e10cSrcweir #define ICAP_ROTATION                     0x1121
1660cdf0e10cSrcweir #define ICAP_SUPPORTEDSIZES               0x1122
1661cdf0e10cSrcweir #define ICAP_THRESHOLD                    0x1123
1662cdf0e10cSrcweir #define ICAP_XSCALING                     0x1124
1663cdf0e10cSrcweir #define ICAP_YSCALING                     0x1125
1664cdf0e10cSrcweir #define ICAP_BITORDERCODES                0x1126
1665cdf0e10cSrcweir #define ICAP_PIXELFLAVORCODES             0x1127
1666cdf0e10cSrcweir #define ICAP_JPEGPIXELTYPE                0x1128
1667cdf0e10cSrcweir #define ICAP_TIMEFILL                     0x112a
1668cdf0e10cSrcweir #define ICAP_BITDEPTH                     0x112b
1669cdf0e10cSrcweir #define ICAP_BITDEPTHREDUCTION            0x112c  /* Added 1.5 */
1670cdf0e10cSrcweir #define ICAP_UNDEFINEDIMAGESIZE           0x112d  /* Added 1.6 */
1671cdf0e10cSrcweir #define ICAP_IMAGEDATASET                 0x112e  /* Added 1.7 */
1672cdf0e10cSrcweir #define ICAP_EXTIMAGEINFO                 0x112f  /* Added 1.7 */
1673cdf0e10cSrcweir #define ICAP_MINIMUMHEIGHT                0x1130  /* Added 1.7 */
1674cdf0e10cSrcweir #define ICAP_MINIMUMWIDTH                 0x1131  /* Added 1.7 */
16754faf9d3aSPedro Giffuni #define ICAP_AUTODISCARDBLANKPAGES        0x1134  /* Added 2.0 */
1676cdf0e10cSrcweir #define ICAP_FLIPROTATION                 0x1136  /* Added 1.8 */
1677cdf0e10cSrcweir #define ICAP_BARCODEDETECTIONENABLED      0x1137  /* Added 1.8 */
1678cdf0e10cSrcweir #define ICAP_SUPPORTEDBARCODETYPES        0x1138  /* Added 1.8 */
1679cdf0e10cSrcweir #define ICAP_BARCODEMAXSEARCHPRIORITIES   0x1139  /* Added 1.8 */
1680cdf0e10cSrcweir #define ICAP_BARCODESEARCHPRIORITIES      0x113a  /* Added 1.8 */
1681cdf0e10cSrcweir #define ICAP_BARCODESEARCHMODE            0x113b  /* Added 1.8 */
1682cdf0e10cSrcweir #define ICAP_BARCODEMAXRETRIES            0x113c  /* Added 1.8 */
1683cdf0e10cSrcweir #define ICAP_BARCODETIMEOUT               0x113d  /* Added 1.8 */
1684cdf0e10cSrcweir #define ICAP_ZOOMFACTOR                   0x113e  /* Added 1.8 */
1685cdf0e10cSrcweir #define ICAP_PATCHCODEDETECTIONENABLED    0x113f  /* Added 1.8 */
1686cdf0e10cSrcweir #define ICAP_SUPPORTEDPATCHCODETYPES      0x1140  /* Added 1.8 */
1687cdf0e10cSrcweir #define ICAP_PATCHCODEMAXSEARCHPRIORITIES 0x1141  /* Added 1.8 */
1688cdf0e10cSrcweir #define ICAP_PATCHCODESEARCHPRIORITIES    0x1142  /* Added 1.8 */
1689cdf0e10cSrcweir #define ICAP_PATCHCODESEARCHMODE          0x1143  /* Added 1.8 */
1690cdf0e10cSrcweir #define ICAP_PATCHCODEMAXRETRIES          0x1144  /* Added 1.8 */
1691cdf0e10cSrcweir #define ICAP_PATCHCODETIMEOUT             0x1145  /* Added 1.8 */
1692cdf0e10cSrcweir #define ICAP_FLASHUSED2                   0x1146  /* Added 1.8 */
1693cdf0e10cSrcweir #define ICAP_IMAGEFILTER                  0x1147  /* Added 1.8 */
1694cdf0e10cSrcweir #define ICAP_NOISEFILTER                  0x1148  /* Added 1.8 */
1695cdf0e10cSrcweir #define ICAP_OVERSCAN                     0x1149  /* Added 1.8 */
1696cdf0e10cSrcweir #define ICAP_AUTOMATICBORDERDETECTION     0x1150  /* Added 1.8 */
1697cdf0e10cSrcweir #define ICAP_AUTOMATICDESKEW              0x1151  /* Added 1.8 */
1698cdf0e10cSrcweir #define ICAP_AUTOMATICROTATE              0x1152  /* Added 1.8 */
1699cdf0e10cSrcweir #define ICAP_JPEGQUALITY                  0x1153  /* Added 1.9 */
17004faf9d3aSPedro Giffuni #define ICAP_FEEDERTYPE                   0x1154  /* Added 1.91 */
17014faf9d3aSPedro Giffuni #define ICAP_ICCPROFILE                   0x1155  /* Added 1.91 */
17024faf9d3aSPedro Giffuni #define ICAP_AUTOSIZE                     0x1156  /* Added 2.0 */
17034faf9d3aSPedro Giffuni #define ICAP_AUTOMATICCROPUSESFRAME       0x1157  /* Added 2.1 */
17044faf9d3aSPedro Giffuni #define ICAP_AUTOMATICLENGTHDETECTION     0x1158  /* Added 2.1 */
17054faf9d3aSPedro Giffuni #define ICAP_AUTOMATICCOLORENABLED        0x1159  /* Added 2.1 */
17064faf9d3aSPedro Giffuni #define ICAP_AUTOMATICCOLORNONCOLORPIXELTYPE 0x115a  /* Added 2.1 */
17074faf9d3aSPedro Giffuni #define ICAP_COLORMANAGEMENTENABLED       0x115b  /* Added 2.1 */
17084faf9d3aSPedro Giffuni #define ICAP_IMAGEMERGE                   0x115c  /* Added 2.1 */
17094faf9d3aSPedro Giffuni #define ICAP_IMAGEMERGEHEIGHTTHRESHOLD    0x115d  /* Added 2.1 */
17104faf9d3aSPedro Giffuni #define ICAP_SUPPORTEDEXTIMAGEINFO        0x115e  /* Added 2.1 */
1711cdf0e10cSrcweir 
1712cdf0e10cSrcweir /* image data sources MAY support these audio caps */
17134faf9d3aSPedro Giffuni #define ACAP_XFERMECH                     0x1202  /* Added 1.8 */
1714cdf0e10cSrcweir 
1715cdf0e10cSrcweir 
17164faf9d3aSPedro Giffuni /***************************************************************************
17174faf9d3aSPedro Giffuni  *            Extended Image Info Attributes section  Added 1.7            *
17184faf9d3aSPedro Giffuni  ***************************************************************************/
1719cdf0e10cSrcweir 
1720cdf0e10cSrcweir #define TWEI_BARCODEX               0x1200
1721cdf0e10cSrcweir #define TWEI_BARCODEY               0x1201
1722cdf0e10cSrcweir #define TWEI_BARCODETEXT            0x1202
1723cdf0e10cSrcweir #define TWEI_BARCODETYPE            0x1203
1724cdf0e10cSrcweir #define TWEI_DESHADETOP             0x1204
1725cdf0e10cSrcweir #define TWEI_DESHADELEFT            0x1205
1726cdf0e10cSrcweir #define TWEI_DESHADEHEIGHT          0x1206
1727cdf0e10cSrcweir #define TWEI_DESHADEWIDTH           0x1207
1728cdf0e10cSrcweir #define TWEI_DESHADESIZE            0x1208
1729cdf0e10cSrcweir #define TWEI_SPECKLESREMOVED        0x1209
1730cdf0e10cSrcweir #define TWEI_HORZLINEXCOORD         0x120A
1731cdf0e10cSrcweir #define TWEI_HORZLINEYCOORD         0x120B
1732cdf0e10cSrcweir #define TWEI_HORZLINELENGTH         0x120C
1733cdf0e10cSrcweir #define TWEI_HORZLINETHICKNESS      0x120D
1734cdf0e10cSrcweir #define TWEI_VERTLINEXCOORD         0x120E
1735cdf0e10cSrcweir #define TWEI_VERTLINEYCOORD         0x120F
1736cdf0e10cSrcweir #define TWEI_VERTLINELENGTH         0x1210
1737cdf0e10cSrcweir #define TWEI_VERTLINETHICKNESS      0x1211
1738cdf0e10cSrcweir #define TWEI_PATCHCODE              0x1212
1739cdf0e10cSrcweir #define TWEI_ENDORSEDTEXT           0x1213
1740cdf0e10cSrcweir #define TWEI_FORMCONFIDENCE         0x1214
1741cdf0e10cSrcweir #define TWEI_FORMTEMPLATEMATCH      0x1215
1742cdf0e10cSrcweir #define TWEI_FORMTEMPLATEPAGEMATCH  0x1216
1743cdf0e10cSrcweir #define TWEI_FORMHORZDOCOFFSET      0x1217
1744cdf0e10cSrcweir #define TWEI_FORMVERTDOCOFFSET      0x1218
1745cdf0e10cSrcweir #define TWEI_BARCODECOUNT           0x1219
1746cdf0e10cSrcweir #define TWEI_BARCODECONFIDENCE      0x121A
1747cdf0e10cSrcweir #define TWEI_BARCODEROTATION        0x121B
1748cdf0e10cSrcweir #define TWEI_BARCODETEXTLENGTH      0x121C
1749cdf0e10cSrcweir #define TWEI_DESHADECOUNT           0x121D
1750cdf0e10cSrcweir #define TWEI_DESHADEBLACKCOUNTOLD   0x121E
1751cdf0e10cSrcweir #define TWEI_DESHADEBLACKCOUNTNEW   0x121F
1752cdf0e10cSrcweir #define TWEI_DESHADEBLACKRLMIN      0x1220
1753cdf0e10cSrcweir #define TWEI_DESHADEBLACKRLMAX      0x1221
1754cdf0e10cSrcweir #define TWEI_DESHADEWHITECOUNTOLD   0x1222
1755cdf0e10cSrcweir #define TWEI_DESHADEWHITECOUNTNEW   0x1223
1756cdf0e10cSrcweir #define TWEI_DESHADEWHITERLMIN      0x1224
1757cdf0e10cSrcweir #define TWEI_DESHADEWHITERLAVE      0x1225
1758cdf0e10cSrcweir #define TWEI_DESHADEWHITERLMAX      0x1226
1759cdf0e10cSrcweir #define TWEI_BLACKSPECKLESREMOVED   0x1227
1760cdf0e10cSrcweir #define TWEI_WHITESPECKLESREMOVED   0x1228
1761cdf0e10cSrcweir #define TWEI_HORZLINECOUNT          0x1229
1762cdf0e10cSrcweir #define TWEI_VERTLINECOUNT          0x122A
1763cdf0e10cSrcweir #define TWEI_DESKEWSTATUS           0x122B
1764cdf0e10cSrcweir #define TWEI_SKEWORIGINALANGLE      0x122C
1765cdf0e10cSrcweir #define TWEI_SKEWFINALANGLE         0x122D
1766cdf0e10cSrcweir #define TWEI_SKEWCONFIDENCE         0x122E
1767cdf0e10cSrcweir #define TWEI_SKEWWINDOWX1           0x122F
1768cdf0e10cSrcweir #define TWEI_SKEWWINDOWY1           0x1230
1769cdf0e10cSrcweir #define TWEI_SKEWWINDOWX2           0x1231
1770cdf0e10cSrcweir #define TWEI_SKEWWINDOWY2           0x1232
1771cdf0e10cSrcweir #define TWEI_SKEWWINDOWX3           0x1233
1772cdf0e10cSrcweir #define TWEI_SKEWWINDOWY3           0x1234
1773cdf0e10cSrcweir #define TWEI_SKEWWINDOWX4           0x1235
1774cdf0e10cSrcweir #define TWEI_SKEWWINDOWY4           0x1236
1775cdf0e10cSrcweir #define TWEI_BOOKNAME               0x1238  /* added 1.9 */
1776cdf0e10cSrcweir #define TWEI_CHAPTERNUMBER          0x1239  /* added 1.9 */
1777cdf0e10cSrcweir #define TWEI_DOCUMENTNUMBER         0x123A  /* added 1.9 */
1778cdf0e10cSrcweir #define TWEI_PAGENUMBER             0x123B  /* added 1.9 */
17794faf9d3aSPedro Giffuni #define TWEI_CAMERA                 0x123C  /* added 1.9 */
1780cdf0e10cSrcweir #define TWEI_FRAMENUMBER            0x123D  /* added 1.9 */
17814faf9d3aSPedro Giffuni #define TWEI_FRAME                  0x123E  /* added 1.9 */
1782cdf0e10cSrcweir #define TWEI_PIXELFLAVOR            0x123F  /* added 1.9 */
17834faf9d3aSPedro Giffuni #define TWEI_ICCPROFILE             0x1240  /* added 1.91 */
17844faf9d3aSPedro Giffuni #define TWEI_LASTSEGMENT            0x1241  /* added 1.91 */
17854faf9d3aSPedro Giffuni #define TWEI_SEGMENTNUMBER          0x1242  /* added 1.91 */
17864faf9d3aSPedro Giffuni #define TWEI_MAGDATA                0x1243  /* added 2.0 */
17874faf9d3aSPedro Giffuni #define TWEI_MAGTYPE                0x1244  /* added 2.0 */
17884faf9d3aSPedro Giffuni #define TWEI_PAGESIDE               0x1245  /* added 2.0 */
17894faf9d3aSPedro Giffuni #define TWEI_FILESYSTEMSOURCE       0x1246  /* added 2.0 */
17904faf9d3aSPedro Giffuni #define TWEI_IMAGEMERGED            0x1247  /* added 2.1 */
17914faf9d3aSPedro Giffuni #define TWEI_MAGDATALENGTH          0x1248  /* added 2.1 */
1792cdf0e10cSrcweir 
1793cdf0e10cSrcweir #define TWEJ_NONE                   0x0000
1794cdf0e10cSrcweir #define TWEJ_MIDSEPARATOR           0x0001
1795cdf0e10cSrcweir #define TWEJ_PATCH1                 0x0002
1796cdf0e10cSrcweir #define TWEJ_PATCH2                 0x0003
1797cdf0e10cSrcweir #define TWEJ_PATCH3                 0x0004
1798cdf0e10cSrcweir #define TWEJ_PATCH4                 0x0005
1799cdf0e10cSrcweir #define TWEJ_PATCH6                 0x0006
1800cdf0e10cSrcweir #define TWEJ_PATCHT                 0x0007
1801cdf0e10cSrcweir 
1802cdf0e10cSrcweir 
1803cdf0e10cSrcweir /***************************************************************************
1804cdf0e10cSrcweir  *            Return Codes and Condition Codes section                     *
1805cdf0e10cSrcweir  ***************************************************************************/
1806cdf0e10cSrcweir 
1807cdf0e10cSrcweir /* Return Codes: DSM_Entry and DS_Entry may return any one of these values. */
1808cdf0e10cSrcweir #define TWRC_CUSTOMBASE     0x8000
1809cdf0e10cSrcweir 
1810cdf0e10cSrcweir #define TWRC_SUCCESS          0
1811cdf0e10cSrcweir #define TWRC_FAILURE          1 /* Application may get TW_STATUS for info on failure */
1812cdf0e10cSrcweir #define TWRC_CHECKSTATUS      2 /* "tried hard"; get status                  */
1813cdf0e10cSrcweir #define TWRC_CANCEL           3
1814cdf0e10cSrcweir #define TWRC_DSEVENT          4
1815cdf0e10cSrcweir #define TWRC_NOTDSEVENT       5
1816cdf0e10cSrcweir #define TWRC_XFERDONE         6
1817cdf0e10cSrcweir #define TWRC_ENDOFLIST        7 /* After MSG_GETNEXT if nothing left         */
1818cdf0e10cSrcweir #define TWRC_INFONOTSUPPORTED 8
1819cdf0e10cSrcweir #define TWRC_DATANOTAVAILABLE 9
1820cdf0e10cSrcweir 
1821cdf0e10cSrcweir /* Condition Codes: Application gets these by doing DG_CONTROL DAT_STATUS MSG_GET.  */
1822cdf0e10cSrcweir #define TWCC_CUSTOMBASE         0x8000
1823cdf0e10cSrcweir 
1824cdf0e10cSrcweir #define TWCC_SUCCESS            0 /* It worked!                                */
1825cdf0e10cSrcweir #define TWCC_BUMMER             1 /* Failure due to unknown causes             */
1826cdf0e10cSrcweir #define TWCC_LOWMEMORY          2 /* Not enough memory to perform operation    */
1827cdf0e10cSrcweir #define TWCC_NODS               3 /* No Data Source                            */
1828cdf0e10cSrcweir #define TWCC_MAXCONNECTIONS     4 /* DS is connected to max possible applications      */
1829cdf0e10cSrcweir #define TWCC_OPERATIONERROR     5 /* DS or DSM reported error, application shouldn't   */
1830cdf0e10cSrcweir #define TWCC_BADCAP             6 /* Unknown capability                        */
1831cdf0e10cSrcweir #define TWCC_BADPROTOCOL        9 /* Unrecognized MSG DG DAT combination       */
1832cdf0e10cSrcweir #define TWCC_BADVALUE           10 /* Data parameter out of range              */
1833cdf0e10cSrcweir #define TWCC_SEQERROR           11 /* DG DAT MSG out of expected sequence      */
1834cdf0e10cSrcweir #define TWCC_BADDEST            12 /* Unknown destination Application/Source in DSM_Entry */
1835cdf0e10cSrcweir #define TWCC_CAPUNSUPPORTED     13 /* Capability not supported by source            */
1836cdf0e10cSrcweir #define TWCC_CAPBADOPERATION    14 /* Operation not supported by capability         */
1837cdf0e10cSrcweir #define TWCC_CAPSEQERROR        15 /* Capability has dependancy on other capability */
18384faf9d3aSPedro Giffuni #define TWCC_DENIED             16 /* File System operation is denied (file is protected) Added 1.8 */
18394faf9d3aSPedro Giffuni #define TWCC_FILEEXISTS         17 /* Operation failed because file already exists.       Added 1.8 */
18404faf9d3aSPedro Giffuni #define TWCC_FILENOTFOUND       18 /* File not found                                      Added 1.8 */
18414faf9d3aSPedro Giffuni #define TWCC_NOTEMPTY           19 /* Operation failed because directory is not empty     Added 1.8 */
18424faf9d3aSPedro Giffuni #define TWCC_PAPERJAM           20 /* The feeder is jammed                                Added 1.8 */
18434faf9d3aSPedro Giffuni #define TWCC_PAPERDOUBLEFEED    21 /* The feeder detected multiple pages                  Added 1.8 */
18444faf9d3aSPedro Giffuni #define TWCC_FILEWRITEERROR     22 /* Error writing the file (meant for things like disk full conditions)Added 1.8 */
18454faf9d3aSPedro Giffuni #define TWCC_CHECKDEVICEONLINE  23 /* The device went offline prior to or during this operation Added 1.8 */
18464faf9d3aSPedro Giffuni #define TWCC_INTERLOCK          24 /* Added 2.0 */
18474faf9d3aSPedro Giffuni #define TWCC_DAMAGEDCORNER      25 /* Added 2.0 */
18484faf9d3aSPedro Giffuni #define TWCC_FOCUSERROR         26 /* Added 2.0 */
18494faf9d3aSPedro Giffuni #define TWCC_DOCTOOLIGHT        27 /* Added 2.0 */
18504faf9d3aSPedro Giffuni #define TWCC_DOCTOODARK         28 /* Added 2.0 */
18514faf9d3aSPedro Giffuni #define TWCC_NOMEDIA            29 /* Added 2.1 */
1852cdf0e10cSrcweir 
1853cdf0e10cSrcweir /* bit patterns: for query the operation that are supported by the data source on a capability */
1854cdf0e10cSrcweir /* Application gets these through DG_CONTROL/DAT_CAPABILITY/MSG_QUERYSUPPORT */
1855cdf0e10cSrcweir /* Added 1.6 */
18564faf9d3aSPedro Giffuni #define TWQC_GET              0x0001
18574faf9d3aSPedro Giffuni #define TWQC_SET              0x0002
18584faf9d3aSPedro Giffuni #define TWQC_GETDEFAULT       0x0004
18594faf9d3aSPedro Giffuni #define TWQC_GETCURRENT       0x0008
18604faf9d3aSPedro Giffuni #define TWQC_RESET            0x0010
18614faf9d3aSPedro Giffuni 
18624faf9d3aSPedro Giffuni 
18634faf9d3aSPedro Giffuni /****************************************************************************
18644faf9d3aSPedro Giffuni  * Depreciated Items                                                        *
18654faf9d3aSPedro Giffuni  ****************************************************************************/
18664faf9d3aSPedro Giffuni #if defined(WIN32) || defined(WIN64)
18674faf9d3aSPedro Giffuni         #define TW_HUGE
18684faf9d3aSPedro Giffuni #elif !defined(TWH_CMP_GNU)
18694faf9d3aSPedro Giffuni         #define TW_HUGE    huge
18704faf9d3aSPedro Giffuni #else
18714faf9d3aSPedro Giffuni         #define TW_HUGE
18724faf9d3aSPedro Giffuni #endif
18734faf9d3aSPedro Giffuni 
18744faf9d3aSPedro Giffuni 
18754faf9d3aSPedro Giffuni 
18764faf9d3aSPedro Giffuni typedef BYTE TW_HUGE * HPBYTE;
18774faf9d3aSPedro Giffuni typedef void TW_HUGE * HPVOID;
18784faf9d3aSPedro Giffuni 
18794faf9d3aSPedro Giffuni typedef unsigned char     TW_STR1024[1026],   FAR *pTW_STR1026;
18804faf9d3aSPedro Giffuni typedef wchar_t           TW_UNI512[512],     FAR *pTW_UNI512;
18814faf9d3aSPedro Giffuni 
18824faf9d3aSPedro Giffuni #define TWTY_STR1024          0x000d    /* Means Item is a TW_STR1024...added 1.9 */
18834faf9d3aSPedro Giffuni #define TWTY_UNI512           0x000e    /* Means Item is a TW_UNI512...added 1.9 */
18844faf9d3aSPedro Giffuni 
18854faf9d3aSPedro Giffuni #define TWFF_JPN              12        /* 1.91 */
18864faf9d3aSPedro Giffuni 
18874faf9d3aSPedro Giffuni #define DAT_TWUNKIDENTITY     0x000b    /* Additional message required for thunker to request the special identity information. */
18884faf9d3aSPedro Giffuni #define DAT_SETUPFILEXFER2    0x0301    /* Data transfer via a file. deprecated - use DAT_SETUPFILEXFER instead*/
18894faf9d3aSPedro Giffuni 
18904faf9d3aSPedro Giffuni #define CAP_SUPPORTEDCAPSEXT      0x100c
18914faf9d3aSPedro Giffuni #define CAP_FILESYSTEM            //0x????
18924faf9d3aSPedro Giffuni #define CAP_PAGEMULTIPLEACQUIRE   0x1023    /* Added 1.8 */
18934faf9d3aSPedro Giffuni #define CAP_PAPERBINDING          0x102f    /* Added 1.8 */
18944faf9d3aSPedro Giffuni #define CAP_PASSTHRU              0x1031    /* Added 1.8 */
18954faf9d3aSPedro Giffuni #define CAP_POWERDOWNTIME         0x1034    /* Added 1.8 */  //0x1034 is reused by CAP_CAMERASIDE
18964faf9d3aSPedro Giffuni #define ACAP_AUDIOFILEFORMAT      0x1201    /* Added 1.8 */
18974faf9d3aSPedro Giffuni 
18984faf9d3aSPedro Giffuni #define MSG_CHECKSTATUS       0x0201    /* Get status information - use MSG_GET instead */
18994faf9d3aSPedro Giffuni 
19004faf9d3aSPedro Giffuni #define MSG_INVOKE_CALLBACK   0x0903    /* Mac Only, deprecated - use DAT_NULL and MSG_xxx instead */
19014faf9d3aSPedro Giffuni 
19024faf9d3aSPedro Giffuni #define TWSX_FILE2            3
19034faf9d3aSPedro Giffuni 
19044faf9d3aSPedro Giffuni /* CAP_FILESYSTEM values (FS_ means file system) */
19054faf9d3aSPedro Giffuni #define TWFS_FILESYSTEM       0
19064faf9d3aSPedro Giffuni #define TWFS_RECURSIVEDELETE  1
19074faf9d3aSPedro Giffuni 
19084faf9d3aSPedro Giffuni /* ICAP_PIXELTYPE values (PT_ means Pixel Type) */
19094faf9d3aSPedro Giffuni #define TWPT_SRGB64     11 /* 1.91 */
19104faf9d3aSPedro Giffuni #define TWPT_BGR        12 /* 1.91 */
19114faf9d3aSPedro Giffuni #define TWPT_CIELAB     13 /* 1.91 */
19124faf9d3aSPedro Giffuni #define TWPT_CIELUV     14 /* 1.91 */
19134faf9d3aSPedro Giffuni #define TWPT_YCBCR      15 /* 1.91 */
19144faf9d3aSPedro Giffuni 
19154faf9d3aSPedro Giffuni /* ICAP_SUPPORTEDSIZES values (SS_ means Supported Sizes) */
19164faf9d3aSPedro Giffuni #define TWSS_B                8
19174faf9d3aSPedro Giffuni #define TWSS_A4LETTER    TWSS_A4      /* use TWSS_A4 instead */
19184faf9d3aSPedro Giffuni #define TWSS_B3          TWSS_ISOB3   /* use TWSS_ISOB3 instead */
19194faf9d3aSPedro Giffuni #define TWSS_B4          TWSS_ISOB4   /* use TWSS_ISOB4 instead */
19204faf9d3aSPedro Giffuni #define TWSS_B6          TWSS_ISOB6   /* use TWSS_ISOB6 instead */
19214faf9d3aSPedro Giffuni #define TWSS_B5LETTER    TWSS_JISB5   /* use TWSS_JISB5 instead */
19224faf9d3aSPedro Giffuni 
19234faf9d3aSPedro Giffuni /* CAP_LANGUAGE Language Constants */
19244faf9d3aSPedro Giffuni #define TWLG_DAN    TWLG_DANISH           /* use TWLG_DANISH instead */
19254faf9d3aSPedro Giffuni #define TWLG_DUT    TWLG_DUTCH            /* use TWLG_DUTCH instead */
19264faf9d3aSPedro Giffuni #define TWLG_ENG    TWLG_ENGLISH          /* use TWLG_ENGLISH instead */
19274faf9d3aSPedro Giffuni #define TWLG_USA    TWLG_ENGLISH_USA      /* use TWLG_ENGLISH_USA instead */
19284faf9d3aSPedro Giffuni #define TWLG_FIN    TWLG_FINNISH          /* use TWLG_FINNISH instead */
19294faf9d3aSPedro Giffuni #define TWLG_FRN    TWLG_FRENCH           /* use TWLG_FRENCH instead */
19304faf9d3aSPedro Giffuni #define TWLG_FCF    TWLG_FRENCH_CANADIAN  /* use TWLG_FRENCH_CANADIAN instead */
19314faf9d3aSPedro Giffuni #define TWLG_GER    TWLG_GERMAN           /* use TWLG_GERMAN instead */
19324faf9d3aSPedro Giffuni #define TWLG_ICE    TWLG_ICELANDIC        /* use TWLG_ICELANDIC instead */
19334faf9d3aSPedro Giffuni #define TWLG_ITN    TWLG_ITALIAN          /* use TWLG_ITALIAN instead */
19344faf9d3aSPedro Giffuni #define TWLG_NOR    TWLG_NORWEGIAN        /* use TWLG_NORWEGIAN instead */
19354faf9d3aSPedro Giffuni #define TWLG_POR    TWLG_PORTUGUESE       /* use TWLG_PORTUGUESE instead */
19364faf9d3aSPedro Giffuni #define TWLG_SPA    TWLG_SPANISH          /* use TWLG_SPANISH instead */
19374faf9d3aSPedro Giffuni #define TWLG_SWE    TWLG_SWEDISH          /* use TWLG_SWEDISH instead */
19384faf9d3aSPedro Giffuni 
19394faf9d3aSPedro Giffuni 
19404faf9d3aSPedro Giffuni /* ACAP_AUDIOFILEFORMAT values (AF_ means audio format).  Added 1.8 */
19414faf9d3aSPedro Giffuni #define TWAF_WAV      0
19424faf9d3aSPedro Giffuni #define TWAF_AIFF     1
19434faf9d3aSPedro Giffuni #define TWAF_AU       3
19444faf9d3aSPedro Giffuni #define TWAF_SND      4
19454faf9d3aSPedro Giffuni 
19464faf9d3aSPedro Giffuni 
19474faf9d3aSPedro Giffuni /* DAT_SETUPFILEXFER2. Sets up DS to application data transfer via a file. Added 1.9 */
19484faf9d3aSPedro Giffuni typedef struct {
19494faf9d3aSPedro Giffuni    TW_MEMREF FileName;     /* Pointer to file name text */
19504faf9d3aSPedro Giffuni    TW_UINT16 FileNameType; /* TWTY_STR1024 or TWTY_UNI512 */
19514faf9d3aSPedro Giffuni    TW_UINT16 Format;       /* Any TWFF_ constant */
19524faf9d3aSPedro Giffuni    TW_INT16  VRefNum;      /* Used for Mac only  */
19534faf9d3aSPedro Giffuni    TW_UINT32 parID;        /* Used for Mac only */
19544faf9d3aSPedro Giffuni } TW_SETUPFILEXFER2, FAR * pTW_SETUPFILEXFER2;
19554faf9d3aSPedro Giffuni 
19564faf9d3aSPedro Giffuni /* SDH - 03/21/95 - TWUNK */
19574faf9d3aSPedro Giffuni /* DAT_TWUNKIDENTITY. Provides DS identity and 'other' information necessary */
19584faf9d3aSPedro Giffuni /*                    across thunk link. */
19594faf9d3aSPedro Giffuni typedef struct {
19604faf9d3aSPedro Giffuni    TW_IDENTITY identity;        /* Identity of data source.                 */
19614faf9d3aSPedro Giffuni    TW_STR255   dsPath;          /* Full path and file name of data source.  */
19624faf9d3aSPedro Giffuni } TW_TWUNKIDENTITY, FAR * pTW_TWUNKIDENTITY;
19634faf9d3aSPedro Giffuni 
19644faf9d3aSPedro Giffuni /* SDH - 03/21/95 - TWUNK */
19654faf9d3aSPedro Giffuni /* Provides DS_Entry parameters over thunk link. */
19664faf9d3aSPedro Giffuni /*  SDH - 03/23/95 - WATCH                                                  */
19674faf9d3aSPedro Giffuni /*  The thunker requires knowledge about size of data being passed in the   */
19684faf9d3aSPedro Giffuni /*  lpData parameter to DS_Entry (which is not readily available due to     */
19694faf9d3aSPedro Giffuni /*  type LPVOID.  Thus, we key off the DAT_ argument to determine the size. */
19704faf9d3aSPedro Giffuni /*  This has a couple implications:                                         */
19714faf9d3aSPedro Giffuni /*  1) Any additional DAT_ features require modifications to the thunk code */
19724faf9d3aSPedro Giffuni /*     for thunker support.                                                 */
19734faf9d3aSPedro Giffuni /*  2) Any applications which use the custom capabailites are not supported */
19744faf9d3aSPedro Giffuni /*     under thunking since we have no way of knowing what size data (if    */
19754faf9d3aSPedro Giffuni /*     any) is being passed.                                                */
19764faf9d3aSPedro Giffuni typedef struct
19774faf9d3aSPedro Giffuni {
19784faf9d3aSPedro Giffuni     TW_INT8     destFlag;       /* TRUE if dest is not NULL                 */
19794faf9d3aSPedro Giffuni     TW_IDENTITY dest;           /* Identity of data source (if used)        */
19804faf9d3aSPedro Giffuni     TW_INT32    dataGroup;      /* DSM_Entry dataGroup parameter            */
19814faf9d3aSPedro Giffuni     TW_INT16    dataArgType;    /* DSM_Entry dataArgType parameter          */
19824faf9d3aSPedro Giffuni     TW_INT16    message;        /* DSM_Entry message parameter              */
19834faf9d3aSPedro Giffuni     TW_INT32    pDataSize;      /* Size of pData (0 if NULL)                */
19844faf9d3aSPedro Giffuni     //  TW_MEMREF   pData;      /* Based on implementation specifics, a     */
19854faf9d3aSPedro Giffuni                                 /* pData parameter makes no sense in this   */
19864faf9d3aSPedro Giffuni                                 /* structure, but data (if provided) will be*/
19874faf9d3aSPedro Giffuni                                 /* appended in the data block.              */
19884faf9d3aSPedro Giffuni } TW_TWUNKDSENTRYPARAMS, FAR * pTW_TWUNKDSENTRYPARAMS;
19894faf9d3aSPedro Giffuni 
19904faf9d3aSPedro Giffuni /* SDH - 03/21/95 - TWUNK */
19914faf9d3aSPedro Giffuni /* Provides DS_Entry results over thunk link. */
19924faf9d3aSPedro Giffuni typedef struct
19934faf9d3aSPedro Giffuni {
19944faf9d3aSPedro Giffuni     TW_UINT16   returnCode;     /* Thunker DsEntry return code.             */
19954faf9d3aSPedro Giffuni     TW_UINT16   conditionCode;  /* Thunker DsEntry condition code.          */
19964faf9d3aSPedro Giffuni     TW_INT32    pDataSize;      /* Size of pData (0 if NULL)                */
19974faf9d3aSPedro Giffuni     //  TW_MEMREF   pData;      /* Based on implementation specifics, a     */
19984faf9d3aSPedro Giffuni                                 /* pData parameter makes no sense in this   */
19994faf9d3aSPedro Giffuni                                 /* structure, but data (if provided) will be*/
20004faf9d3aSPedro Giffuni                                 /* appended in the data block.              */
20014faf9d3aSPedro Giffuni } TW_TWUNKDSENTRYRETURN, FAR * pTW_TWUNKDSENTRYRETURN;
20024faf9d3aSPedro Giffuni 
20034faf9d3aSPedro Giffuni /* WJD - 950818 */
20044faf9d3aSPedro Giffuni /* Added for 1.6 Specification */
20054faf9d3aSPedro Giffuni /* TWAIN 1.6 CAP_SUPPORTEDCAPSEXT structure */
20064faf9d3aSPedro Giffuni typedef struct
20074faf9d3aSPedro Giffuni {
20084faf9d3aSPedro Giffuni     TW_UINT16 Cap;   /* Which CAP/ICAP info is relevant to */
20094faf9d3aSPedro Giffuni     TW_UINT16 Properties;  /* Messages this CAP/ICAP supports */
20104faf9d3aSPedro Giffuni } TW_CAPEXT, FAR * pTW_CAPEXT;
20114faf9d3aSPedro Giffuni 
20124faf9d3aSPedro Giffuni /* DAT_SETUPAUDIOFILEXFER, information required to setup an audio file transfer */
20134faf9d3aSPedro Giffuni typedef struct {
20144faf9d3aSPedro Giffuni    TW_STR255  FileName; /* full path target file */
20154faf9d3aSPedro Giffuni    TW_UINT16  Format;   /* one of TWAF_xxxx */
20164faf9d3aSPedro Giffuni    TW_INT16 VRefNum;
20174faf9d3aSPedro Giffuni } TW_SETUPAUDIOFILEXFER, FAR * pTW_SETUPAUDIOFILEXFER;
2018cdf0e10cSrcweir 
2019cdf0e10cSrcweir 
2020cdf0e10cSrcweir /****************************************************************************
2021cdf0e10cSrcweir  * Entry Points                                                             *
2022cdf0e10cSrcweir  ****************************************************************************/
2023cdf0e10cSrcweir 
2024cdf0e10cSrcweir /**********************************************************************
2025cdf0e10cSrcweir  * Function: DSM_Entry, the only entry point into the Data Source Manager.
2026cdf0e10cSrcweir  *
2027cdf0e10cSrcweir  * Parameters:
2028cdf0e10cSrcweir  *  pOrigin Identifies the source module of the message. This could
2029cdf0e10cSrcweir  *          identify an Application, a Source, or the Source Manager.
2030cdf0e10cSrcweir  *
2031cdf0e10cSrcweir  *  pDest   Identifies the destination module for the message.
2032cdf0e10cSrcweir  *          This could identify an application or a data source.
2033cdf0e10cSrcweir  *          If this is NULL, the message goes to the Source Manager.
2034cdf0e10cSrcweir  *
2035cdf0e10cSrcweir  *  DG      The Data Group.
2036cdf0e10cSrcweir  *          Example: DG_IMAGE.
2037cdf0e10cSrcweir  *
2038cdf0e10cSrcweir  *  DAT     The Data Attribute Type.
2039cdf0e10cSrcweir  *          Example: DAT_IMAGEMEMXFER.
2040cdf0e10cSrcweir  *
2041cdf0e10cSrcweir  *  MSG     The message.  Messages are interpreted by the destination module
2042cdf0e10cSrcweir  *          with respect to the Data Group and the Data Attribute Type.
2043cdf0e10cSrcweir  *          Example: MSG_GET.
2044cdf0e10cSrcweir  *
2045cdf0e10cSrcweir  *  pData   A pointer to the data structure or variable identified
2046cdf0e10cSrcweir  *          by the Data Attribute Type.
2047cdf0e10cSrcweir  *          Example: (TW_MEMREF)&ImageMemXfer
2048cdf0e10cSrcweir  *                   where ImageMemXfer is a TW_IMAGEMEMXFER structure.
2049cdf0e10cSrcweir  *
2050cdf0e10cSrcweir  * Returns:
2051cdf0e10cSrcweir  *  ReturnCode
2052cdf0e10cSrcweir  *         Example: TWRC_SUCCESS.
2053cdf0e10cSrcweir  *
2054cdf0e10cSrcweir  ********************************************************************/
2055cdf0e10cSrcweir 
2056cdf0e10cSrcweir /* Don't mangle the name "DSM_Entry" if we're compiling in C++! */
2057cdf0e10cSrcweir #ifdef  __cplusplus
2058cdf0e10cSrcweir extern "C" {
2059cdf0e10cSrcweir #endif  /* __cplusplus */
2060cdf0e10cSrcweir 
20614faf9d3aSPedro Giffuni #ifdef TWH_CMP_MSC
20624faf9d3aSPedro Giffuni 
20634faf9d3aSPedro Giffuni   TW_UINT16 FAR PASCAL DSM_Entry( pTW_IDENTITY pOrigin,
20644faf9d3aSPedro Giffuni                                   pTW_IDENTITY pDest,
20654faf9d3aSPedro Giffuni                                   TW_UINT32    DG,
20664faf9d3aSPedro Giffuni                                   TW_UINT16    DAT,
20674faf9d3aSPedro Giffuni                                   TW_UINT16    MSG,
20684faf9d3aSPedro Giffuni                                   TW_MEMREF    pData);
20694faf9d3aSPedro Giffuni 
20704faf9d3aSPedro Giffuni   typedef TW_UINT16 (FAR PASCAL *DSMENTRYPROC)(pTW_IDENTITY pOrigin,
20714faf9d3aSPedro Giffuni                                                pTW_IDENTITY pDest,
20724faf9d3aSPedro Giffuni                                                TW_UINT32 DG,
20734faf9d3aSPedro Giffuni                                                TW_UINT16 DAT,
20744faf9d3aSPedro Giffuni                                                TW_UINT16 MSG,
20754faf9d3aSPedro Giffuni                                                TW_MEMREF pData);
20764faf9d3aSPedro Giffuni 
20774faf9d3aSPedro Giffuni #else
20784faf9d3aSPedro Giffuni 
20794faf9d3aSPedro Giffuni   FAR PASCAL TW_UINT16 DSM_Entry( pTW_IDENTITY pOrigin,
20804faf9d3aSPedro Giffuni                                   pTW_IDENTITY pDest,
20814faf9d3aSPedro Giffuni                                   TW_UINT32    DG,
20824faf9d3aSPedro Giffuni                                   TW_UINT16    DAT,
20834faf9d3aSPedro Giffuni                                   TW_UINT16    MSG,
20844faf9d3aSPedro Giffuni                                   TW_MEMREF    pData);
20854faf9d3aSPedro Giffuni 
20864faf9d3aSPedro Giffuni   typedef TW_UINT16 (*DSMENTRYPROC)(pTW_IDENTITY pOrigin,
20874faf9d3aSPedro Giffuni                                     pTW_IDENTITY pDest,
20884faf9d3aSPedro Giffuni                                     TW_UINT32 DG,
20894faf9d3aSPedro Giffuni                                     TW_UINT16 DAT,
20904faf9d3aSPedro Giffuni                                     TW_UINT16 MSG,
20914faf9d3aSPedro Giffuni                                     TW_MEMREF pData);
20924faf9d3aSPedro Giffuni 
20934faf9d3aSPedro Giffuni #endif  /* TWH_CMP_MSC */
2094cdf0e10cSrcweir 
2095cdf0e10cSrcweir #ifdef  __cplusplus
2096cdf0e10cSrcweir }
2097cdf0e10cSrcweir #endif  /* cplusplus */
2098cdf0e10cSrcweir 
2099cdf0e10cSrcweir 
2100cdf0e10cSrcweir /**********************************************************************
2101cdf0e10cSrcweir  * Function: DS_Entry, the entry point provided by a Data Source.
2102cdf0e10cSrcweir  *
2103cdf0e10cSrcweir  * Parameters:
2104cdf0e10cSrcweir  *  pOrigin Identifies the source module of the message. This could
2105cdf0e10cSrcweir  *          identify an application or the Data Source Manager.
2106cdf0e10cSrcweir  *
2107cdf0e10cSrcweir  *  DG      The Data Group.
2108cdf0e10cSrcweir  *          Example: DG_IMAGE.
2109cdf0e10cSrcweir  *
2110cdf0e10cSrcweir  *  DAT     The Data Attribute Type.
2111cdf0e10cSrcweir  *          Example: DAT_IMAGEMEMXFER.
2112cdf0e10cSrcweir  *
2113cdf0e10cSrcweir  *  MSG     The message.  Messages are interpreted by the data source
2114cdf0e10cSrcweir  *          with respect to the Data Group and the Data Attribute Type.
2115cdf0e10cSrcweir  *          Example: MSG_GET.
2116cdf0e10cSrcweir  *
2117cdf0e10cSrcweir  *  pData   A pointer to the data structure or variable identified
2118cdf0e10cSrcweir  *          by the Data Attribute Type.
2119cdf0e10cSrcweir  *          Example: (TW_MEMREF)&ImageMemXfer
2120cdf0e10cSrcweir  *                   where ImageMemXfer is a TW_IMAGEMEMXFER structure.
2121cdf0e10cSrcweir  *
2122cdf0e10cSrcweir  * Returns:
2123cdf0e10cSrcweir  *  ReturnCode
2124cdf0e10cSrcweir  *          Example: TWRC_SUCCESS.
2125cdf0e10cSrcweir  *
2126cdf0e10cSrcweir  * Note:
2127cdf0e10cSrcweir  *  The DSPROC type is only used by an application when it calls
2128cdf0e10cSrcweir  *  a Data Source directly, bypassing the Data Source Manager.
2129cdf0e10cSrcweir  *
2130cdf0e10cSrcweir  ********************************************************************/
2131cdf0e10cSrcweir /* Don't mangle the name "DS_Entry" if we're compiling in C++! */
2132cdf0e10cSrcweir #ifdef  __cplusplus
2133cdf0e10cSrcweir extern "C" {
2134cdf0e10cSrcweir #endif  /* __cplusplus */
2135cdf0e10cSrcweir 
21364faf9d3aSPedro Giffuni #ifdef TWH_CMP_MSC
21374faf9d3aSPedro Giffuni 
21384faf9d3aSPedro Giffuni   TW_UINT16 FAR PASCAL DS_Entry(pTW_IDENTITY pOrigin,
21394faf9d3aSPedro Giffuni                                 TW_UINT32 DG,
21404faf9d3aSPedro Giffuni                                 TW_UINT16 DAT,
21414faf9d3aSPedro Giffuni                                 TW_UINT16 MSG,
21424faf9d3aSPedro Giffuni                                 TW_MEMREF pData);
21434faf9d3aSPedro Giffuni 
21444faf9d3aSPedro Giffuni   typedef TW_UINT16 (FAR PASCAL *DSENTRYPROC)(pTW_IDENTITY pOrigin,
21454faf9d3aSPedro Giffuni                                               TW_UINT32 DG,
21464faf9d3aSPedro Giffuni                                               TW_UINT16 DAT,
21474faf9d3aSPedro Giffuni                                               TW_UINT16 MSG,
21484faf9d3aSPedro Giffuni                                               TW_MEMREF pData);
21494faf9d3aSPedro Giffuni 
21504faf9d3aSPedro Giffuni #else
21514faf9d3aSPedro Giffuni 
21524faf9d3aSPedro Giffuni   FAR PASCAL TW_UINT16 DS_Entry(pTW_IDENTITY pOrigin,
21534faf9d3aSPedro Giffuni                                 TW_UINT32 DG,
21544faf9d3aSPedro Giffuni                                 TW_UINT16 DAT,
21554faf9d3aSPedro Giffuni                                 TW_UINT16 MSG,
21564faf9d3aSPedro Giffuni                                 TW_MEMREF pData);
21574faf9d3aSPedro Giffuni 
21584faf9d3aSPedro Giffuni   typedef TW_UINT16 (*DSENTRYPROC)(pTW_IDENTITY pOrigin,
21594faf9d3aSPedro Giffuni                                    TW_UINT32 DG,
21604faf9d3aSPedro Giffuni                                    TW_UINT16 DAT,
21614faf9d3aSPedro Giffuni                                    TW_UINT16 MSG,
21624faf9d3aSPedro Giffuni                                    TW_MEMREF pData);
21634faf9d3aSPedro Giffuni 
21644faf9d3aSPedro Giffuni #endif /* TWH_CMP_MSC */
21654faf9d3aSPedro Giffuni 
21664faf9d3aSPedro Giffuni 
21674faf9d3aSPedro Giffuni   typedef TW_HANDLE (PASCAL *DSM_MEMALLOCATE)(TW_UINT32 _size);
21684faf9d3aSPedro Giffuni   typedef void (PASCAL *DSM_MEMFREE)(TW_HANDLE _handle);
21694faf9d3aSPedro Giffuni   typedef TW_MEMREF (PASCAL *DSM_MEMLOCK)(TW_HANDLE _handle);
21704faf9d3aSPedro Giffuni   typedef void (PASCAL *DSM_MEMUNLOCK)(TW_HANDLE _handle);
2171cdf0e10cSrcweir 
2172cdf0e10cSrcweir #ifdef  __cplusplus
2173cdf0e10cSrcweir }
21744faf9d3aSPedro Giffuni #endif  /* __cplusplus */
2175cdf0e10cSrcweir 
21764faf9d3aSPedro Giffuni /* DAT_ENTRYPOINT. returns essential entry points. */
21774faf9d3aSPedro Giffuni typedef struct {
21784faf9d3aSPedro Giffuni    TW_UINT32         Size;
21794faf9d3aSPedro Giffuni    DSMENTRYPROC      DSM_Entry;
21804faf9d3aSPedro Giffuni    DSM_MEMALLOCATE   DSM_MemAllocate;
21814faf9d3aSPedro Giffuni    DSM_MEMFREE       DSM_MemFree;
21824faf9d3aSPedro Giffuni    DSM_MEMLOCK       DSM_MemLock;
21834faf9d3aSPedro Giffuni    DSM_MEMUNLOCK     DSM_MemUnlock;
21844faf9d3aSPedro Giffuni } TW_ENTRYPOINT, FAR * pTW_ENTRYPOINT;
21854faf9d3aSPedro Giffuni 
21864faf9d3aSPedro Giffuni /* Restore the previous packing alignment: this occurs after all structures are defined */
21876538ed46SPedro Giffuni #if defined(TWH_CMP_MING32)
21884faf9d3aSPedro Giffuni     #pragma pack (pop)
21896538ed46SPedro Giffuni #elif defined(TWH_CMP_MSC)
21904faf9d3aSPedro Giffuni     #pragma pack (pop, before_twain)
21914faf9d3aSPedro Giffuni #elif defined(TWH_CMP_GNU)
21924faf9d3aSPedro Giffuni     #pragma pack (pop, before_twain)
21934faf9d3aSPedro Giffuni #elif defined(TWH_CMP_BORLAND)
21944faf9d3aSPedro Giffuni     #pragma optiona.
21954faf9d3aSPedro Giffuni #elif defined(TWH_CMP_XCODE)
21964faf9d3aSPedro Giffuni     #if PRAGMA_STRUCT_ALIGN
21974faf9d3aSPedro Giffuni         #pragma options align=reset
21984faf9d3aSPedro Giffuni     #elif PRAGMA_STRUCT_PACKPUSH
2199cdf0e10cSrcweir         #pragma pack (pop)
22004faf9d3aSPedro Giffuni     #elif PRAGMA_STRUCT_PACK
22014faf9d3aSPedro Giffuni         #pragma pack()
22024faf9d3aSPedro Giffuni     #endif
22034faf9d3aSPedro Giffuni #endif
2204cdf0e10cSrcweir 
2205cdf0e10cSrcweir #endif  /* TWAIN */
2206