DATATRANSFER

typedef struct _DATATRANSFER
{
   L_UINT uStructSize;
   L_INT nFillOrder; 
   L_INT nBufMemCompression; 
   L_INT nTransferMode; 
   L_INT nScanFileFormat;  
   L_INT nMemBufSize; 
   L_BOOL bSaveToOneFile; 
   L_BOOL bAppendToFile; 
   L_BOOL bDumpMemBufsToFile;
   L_TCHAR szFileName [250]; 
} DATATRANSFER,  * pDATATRANSFER;

The DATATRANSFER structure provides information about data transferring.

Member

Description

uStructSize

Size of the DATATRANSFER structure, in bytes, for versioning. Use the sizeof() macro to calculate the value.

nFillOrder

Indicates how bytes in the image are to be filled by the source. Possible values are (according to the TWAIN 1.9 specification):

 

Value

Meaning

 

TWBO_LSBFIRST

Bytes are to be transferred with the least significant byte first.

 

TWBO_MSBFIRST

Bytes are to be transferred with the most significant byte first.

nBufMemCompression

Specifies the compression to be used when having the transfer mode set to be memory. Possible values are (according to the TWAIN 1.9 specification):

 

Value

Meaning

 

TWCP_NONE

No compression is to be used.

 

TWCP_PACKBITS

Pack Bits compression.

 

TWCP_GROUP31D

CCITT Group 3 compression with no End of Line.

 

TWCP_GROUP31DEOL

CCITT Group 3 compression with End of Line.

 

TWCP_GROUP32D

CCITT Group 3 compression (use cap for K Factor).

 

TWCP_GROUP4

CCITT Group 4 compression.

 

TWCP_JPEG

JPEG compression.

 

TWCP_LZW

LZW compression (like gifs).

 

TWCP_JBIG

JBIG compression, used mostly for bitonal images.

 

TWCP_PNG

PNG compressed.

 

TWCP_RLE4

RLE4 compression.

 

TWCP_RLE8

RLE8 compression.

 

TWCP_BITFIELDS

Bit Fields compression.

nTransferMode

Transfer mode to be used by the TWAIN source. Possible values are (according to the TWAIN 1.9 specification):

 

Value

Meaning

 

TWSX_NATIVE

Native transfer mode.

 

TWSX_MEMORY

Memory buffered transfer mode. The source will be transferring strips of data to the application according to the buffer size given.

 

TWSX_FILE

File transfer mode. This will use a specified file to have the image data saved to. This will have a certain format specified by the properties.

nScanFileFormat

Determines the file format to use when saving the files from the TWAIN source. Possible values are (according to the TWAIN 1.9 specification) :

 

Value

Meaning

 

TWFF_TIFF

Tagged image file.

 

TWFF_PICT

Macintosh PICT.

 

TWFF_BMP

Windows regular bitmap.

 

TWFF_XBM

X-Windows bitmap.

 

TWFF_JFIF

JPEG file interchange format.

 

TWFF_FPX

Flash pix file.

 

TWFF_TIFFMULTI

Multi-page tiff file format.

 

TWFF_PNG

PNG file.

 

TWFF_SPIFF

SPIFF file.

 

TWFF_EXIF

EXIF file.

nMemBufSize

Specifies the memory buffer size to be used in data transfer.

bSaveToOneFile

Flag that indicates whether to save a multiple pages to a single file. Possible values are:

 

Value

Meaning

 

TRUE

Save to a single file.

 

FALSE

Do not save to a single file.

bAppendToFile

Flag that indicates whether to append pages to the end of the file when saving a multi-page file. Possible values are:

 

Value

Meaning

 

TRUE

Append pages to the end of the file.

 

FALSE

Do not append pages to the end of the file.

bDumpMemBufsToFile

Flag that indicates whether to use the file name specified in szFileName field to dump the memory buffers received from the scanner. In this case the Bitmap Handle will not get the Bitmap Data, all the data will be saved to the file. Possible values:

 

Value

Meaning

 

TRUE

Use file name.

 

FALSE

Do not use file name.

szFileName

Character string that contains the file name used in the file transfer mode. Use this member only if:

The nTransferMode member is set to TWSX_FILE.

Or

The nTransferMode member is set to TWSX_MEMORY and the bDumpMemBufsToFile member is set to TRUE.

Comments

pDATATRANSFER is a pointer to a DATATRANSFER structure. Where the function parameter type is pDATATRANSFER, you can declare a DATATRANSFER variable, update the structure's fields and pass the variable's address in the parameter. Declaring a pDATATRANSFER variable is necessary only if your program requires a pointer.

DATATRANSFER is used with the LTWAINPROPERTIES structure.

If the nTransferMode member value is set to TWSX_MEMORY and the bDumpMemBufsToFile member value is set to TRUE, then the LTwain::Acquire and LTwain::AcquireList functions will dump the memory buffers received from the scanner (whether compressed or not) directly to the output file specified by szFileName member.

If the nTransferMode member value is set to TWSX_MEMORY, the nBufMemCompression member is set to values other than TWCP_NONE, and the bDumpMemBufsToFile member value is set to FALSE, then the LTwain::Acquire and LTwain::AcquireList functions will decompress the memory buffers received from the scanner, and generate a BITMAPHANDLE as a result.

This generated BITMAPHANDLE will be:

returned in the pBitmap parameter of LTwain::BitmapCallBack function when it is fired by calling the LTwain::Acquire function;

Or

added to the bitmap list specified by hBitmap and BitmapList parameters of LTwain::AcquireList function when this function is being used.