| 
   Available in LEADTOOLS Barcode Modules. 
  | 
BARCODEREADOPT
typedef struct tagBarCodeReadOpt
{
   L_UINT32 ulSearchType; 
   L_INT nUnits; 
   L_UINT32 ulFlags; 
   L_INT nMultipleMax; 
   RECT rcSearch; 
   L_BOOL bUseRgn; 
   BARCODECOLOR BarColor;
} BARCODEREADOPT,  * pBARCODEREADOPT;
This structure contains barcode read options that control the reading process.
| 
 Member  | 
 Description  | 
|
| 
 ulSearchType  | 
 Type of barcode for which to search. You can combine values when appropriate, by using a bitwise OR ( | ). Possible values are:  | 
|
| 
 Value  | 
 Meaning  | |
| 
 Linear Barcode:  | 
 
  | |
| 
 BARCODE_1D_EAN_13  | 
 [0x80000001] To read EAN 13 type.  | |
| 
 BARCODE_1D_EAN_8  | 
 [0x80000002] To read EAN 8 type.  | |
| 
 BARCODE_1D_UPC_A  | 
 [0x80000004] To read UPC version A type.  | |
| 
 BARCODE_1D_UPC_E  | 
 [0x80000008] To read UPC version E type.  | |
| 
 BARCODE_1D_CODE_3_OF_9  | 
 [0x80000010] To read Code 3 of 9 (Code 39) type.  | |
| 
 BARCODE_1D_CODE_128  | 
 [0x80000020] To read Code 128 type.  | |
| 
 BARCODE_1D_CODE_I2_OF_5  | 
 [0x80000040] To read Interleaved 2 of 5 type.  | |
| 
 BARCODE_1D_CODA_BAR  | 
 [0x80000080] To read CODABAR type.  | |
| 
 BARCODE_1D_UCCEAN_128  | 
 [0x80000100] To read UCCEAND 128 type  | |
| 
 BARCODE_1D_CODE_93  | 
 [0x80000200] To read Code 93 type  | |
| 
 BARCODE_1D_EANEXT_5  | 
 [0x80000400] To read 5-digit supplemental type.  | |
| 
 BARCODE_1D_EANEXT_2  | 
 [0x80000800] To read 2-digit supplemental type.  | |
| 
 BARCODE_1D_MSI  | 
 [0x80001000] To read MSI (Modified Plessey) type.  | |
| 
 BARCODE_1D_CODE11  | 
 [0x80002000] To read Code 11(USD-8) type.  | |
| 
 BARCODE_1D_CODE_S25  | 
 [0x80004000] To read Standard 2 of 5 (Industrial 2 of 5) type.  | |
| 
 BARCODE_1D_READ_RSS14  | 
 [0x80008000] GS1 Databar (formerly RSS14) standard and truncated.  | |
| 
 BARCODE_1D_RSS14_LIMITED  | 
 [0x80010000] GS1 Databar (formerly RSS14) Limited type.  | |
| 
 BARCODE_1D_RSS14_EXPANDED  | 
 [0x80020000] GS1 Databar (formerly RSS14) Expanded type.  | |
| 
 BARCODE_1D_READ_ANYTYPE  | 
 [0x8003FFFF] To enable searching of all linear barcode types.  | |
| 
 BARCODE_1D_READ_ANYTYPE_NO_RSS14  | 
 [0x80007FFF] Enables searching of all linear barcode types except GS1 Databar (formerly RSS14) types. Speeds up the read process compared to the BARCODE_1D_READ_ANYTYPE option.  | |
| 
 Patch Code Barcodes:  | 
 
  | |
| 
 BARCODE_1D_PATCH_CODE  | 
 [0x04000001] To read Patch Code.  | |
| 
 Postal barcodes:  | 
 
  | |
| 
 BARCODE_1D_POST_NET  | 
 [0x04000002] To read Postnet.  | |
| 
 BARCODE_1D_PLANET  | 
 [0x04000004] Planet type.  | |
| 
 4 State barcode symbols:  | 
 
  | |
| 
 BARCODE_1D_AUST_POST  | 
 [0x04000008] Australian Post 4 State type.  | |
| 
 BARCODE_1D_RM4SCC  | 
 [0x04000010] Royal Mail (RM4SCC) 4 State type.  | |
| 
 BARCODE_1D_USPS4BC  | 
 [0x04000080] USPS OneCode 4-State (4BC) type  | |
| 
 GS1 Databar (formerly RSS14) Stacked barcode symbols:  | 
 
  | |
| 
 BARCODE_1D_RSS14_STACKED  | 
 [0x04000020] GS1 Databar (formerly RSS14) Stacked / Stacked Omnidirectional types.  | |
| 
 BARCODE_1D_RSS14_EXP_STACKED  | 
 [0x04000040] GS1 Databar (formerly RSS14) Expanded Stacked barcode type.  | |
| 
 PDF Barcodes:  | 
 
  | |
| 
 BARCODE_PDF417  | 
 [0x20002000] To read PDF417 type.  | |
| 
 MicroPDF417 Barcodes:  | 
 
  | |
| 
 BARCODE_MICRO_PDF417  | 
 [0x20000001] To read MicroPDF417 type.  | |
| 
 Data Matrix Barcode:  | 
 
  | |
| 
 BARCODE_DM_READ_SQUARE  | 
 [0x08000001] To read square Data Matrix symbols.  | |
| 
 BARCODE_DM_READ_RECTANGLE  | 
 [0x10000002] To read rectangular Data Matrix symbols.  | |
| 
 BARCODE_DM_READ_SMALL  | 
 [0x10000004] To read small Data Matrix symbols.  | |
| 
 
  | 
 QR Barcodes:  | 
 
  | 
| 
 
  | 
 BARCODE_QR_CODE  | 
 [0x00100000] To read QR barcodes.  | 
| 
 nUnits  | 
 Unit of measure. Possible values are:  | 
 
  | 
| 
 Value  | 
 Meaning  | |
| 
 BARCODE_SCANLINES_PER_PIXELS  | 
 [0] the rectangle search area is measured in pixels.  | |
| 
 BARCODE_INCHES  | 
 [1] the rectangle search area is measured in inches. You must multiply the search area by 100. (i.e. to specify 1 inch set this to 100)  | |
| 
 BARCODE_MILLIMETERS  | 
 [2] the rectangle search area is measured in mm.  | |
| 
 ulFlags  | 
 Processing options. You can combine values when appropriate, by using a bitwise OR ( | ). The following values are used only when you want to search for linear barcodes. Pass 0 to get the default. Possible values are:  | 
|
| 
 Value  | 
 Meaning  | |
| 
 BARCODE_MARKERS  | 
 [0x0001] Enables the reading of barcodes that have start and end markers.  | |
| 
 BARCODE_BLOCK_SEARCH  | 
 [0x0002] Search for barcodes by moving up or down through the rectangle until the first character is read or there is no barcode found.  | |
| 
 BARCODE_USECOLORS  | 
 [0x0200] Enable searching for color barcodes. The colors are used as the exact bar and space colors for searching for the barcode.  | |
| 
 BARCODE_RETURNCHECK  | 
 [0x1000] When setting this bit, then the check character will return in all cases, whether BARCODE1D.bErrorCheck is enabled or not.  | |
| 
 BARCODE_RETURNCORRUPT  | 
 [0x0080] Enables the engine to return the area that an un-readable PDF417 symbol was located.  | |
| 
 BARCODE_DM_FORCE_INVERT  | 
 [0x00000800] Forces the Data Matrix read to search for reversed color symbols even if non-inverted color symbols were found.  | |
| 
 BARCODE_DM_FASTFIND_DISABLE  | 
 [0x00001000] Disables fast find feature when reading Data Matrix symbols. Fast find is automatically disabled when reading small symbols.  | |
| 
 BARCODE_RETURN_FOUR_POINTS  | 
 [0x00002000] Enables return of four corners and not bounding rectangle.  | |
| 
 BARCODE_PDF_READ_MODE_0  | 
 [0x0000] Basic Channel Mode :No transmission of symbology ID, No escape doubling, Macro PDF is illegal. ECI is illegal, Reserved code words are illegal. Used with PDF417 and MicroPDF417.  | |
| 
 BARCODE_PDF_READ_MODE_1  | 
 [0x1000] Extended Channel Mode.Transmit] L1 symbology ID. Escape doubling. Macro PDF is transmitted. ECI is transmitted. Reserved code words are transmitted. Used with PDF417 and MicroPDF417.  | |
| 
 BARCODE_PDF_READ_MODE_2  | 
 [0x4000] Basic Channel Mode. Transmit ] L2 symbology ID. No escape doubling. Macro PDF is illegal. ECI is illegal. Reserved code words are illegal. Used with PDF417 and MicroPDF417  | |
| 
 BARCODE_PDF_READ_MODE_3_BASIC  | 
 [0x5000] Basic Channel Mode. Transmit ] L0 symbology ID. No escape doubling. Macro PDF is illegal. ECI is illegal. Reserved code words are illegal. Used with PDF417 and MicroPDF417.  | |
| 
 BARCODE_PDF_READ_MODE_3_EXTENDED  | 
 [0x8000] Extended Channel Mode. Transmit ] L0 symbology ID. Escape doubling. Macro PDF is transmitted. ECI is transmitted in GLI format. Reserved code words transmitted. Used with PDF417 and MicroPDF417.  | |
| 
 BARCODE_MICRO_PDF_READ_BASIC  | 
 [0x9000] Code 128 Emulation Basic Channel Mode. Transmit ] L0, ] L3, ] L4, or ] L5 symbology ID. No escape doubling. Macro PDF is illegal. ECI is illegal. Reserved code words are illegal. Only used with MicroPDF417.  | |
| 
 BARCODE_MICRO_PDF_READ_EXTENDED  | 
 [0xC000] Code 128 Emulation Extended Channel Mode. Transmit ] L0, ] L3, ] L4, or ] L5 symbology ID. Escape doubling. Macro PDF is transmitted. ECI is transmitted in GLI format. Reserved code words transmitted. Only used with MicroPDF417.  | |
| 
 BARCODE_PDF_READ_MACRO_OPTION_0  | 
 [0x00010000] Enable the return of the optional macro ‘File Name’ field.  | |
| 
 BARCODE_PDF_READ_MACRO_OPTION_1  | 
 [0x00020000] Enable the return of the optional macro ‘Segment Count’ field.  | |
| 
 BARCODE_PDF_READ_MACRO_OPTION_2  | 
 [0x00040000] Enable the return of the optional macro ‘Time Stamp’ field.  | |
| 
 BARCODE_PDF_READ_MACRO_OPTION_3  | 
 [0x00080000] Enable the return of the optional macro ‘Sender’ field.  | |
| 
 BARCODE_PDF_READ_MACRO_OPTION_4  | 
 [0x00100000] Enable the return of the optional macro ‘Addressee’ field.  | |
| 
 BARCODE_PDF_READ_MACRO_OPTION_5  | 
 [0x00200000] Enable the return of the optional macro ‘File Size’ field.  | |
| 
 BARCODE_PDF_READ_MACRO_OPTION_6  | 
 [0x00400000] Enable the return of the optional macro ‘Checksum’ field.  | |
| 
 BARCODE_PDF_READ_MACRO_OPTION_79AZ  | 
 [0x00800000] Enable the return of all optional macro fields 7 to 9 and A to Z.  | |
| 
 BARCODE_PDF_READ_RETURN_PARTIAL  | 
 [0x01000000] Returns PDF417 data even if ECC does not succeed.  | |
| 
 BARCODE_PDF_FASTREAD  | 
 [0x02000000] Enables fast find feature when reading PDF417 symbols.  | |
| 
 nMultipleMax  | 
 Specifies the maximum number of barcodes to search. Pass 0 to read all barcodes in a specified search area.  | 
|
| 
 rcSearch  | 
 Rectangle that contains the search area for the barcodes.  | 
|
| 
 bUseRgn  | 
 Flag that indicates whether to use the region when searching. Possible values are:  | 
|
| 
 Value  | 
 Meaning  | |
| 
 TRUE  | 
 If the bitmap has a region, the LBarCode::Read function will only search the region for barcodes. If the bitmap does not have a region, the LBarCode::Read function will search the entire bitmap for barcodes.  | |
| 
 FALSE  | 
 The LBarCode::Read will use the location and size parameters in rcSearch to determine what area of the bitmap to search for barcodes.  | |
| 
 BarColor  | 
 BarCodeColor structure, which contains the bars and space colors to search for barcodes.  | 
|
Comments
NOTE: Type RSS14 is now GS1 Databar. All references to RSS14 now refer to GS1 Databar.
pBARCODEREADOPT is a pointer to an BARCODEREADOPT structure. Where a function parameter type is pBARCODEREADOPT, you can declare a BARCODEREADOPT variable and pass the variable's address in the parameter. Declaring a pBARCODEREADOPT variable is necessary only if your program requires a pointer.
When the BARCODE_USECOLORS flag is set, then this function will use the BarColor member, otherwise the LBarCode::Read function will ignore it and use the default colors of black for bars and white for spaces are used.
Using colors does not apply for 1 bit per pixel images.
The BARCODE_USECOLORS is used with all barcode kinds.
The BARCODE_RETURNCHECK flag used only with reading linear barcodes.
The smallest Data Matrix symbol size is 40 pixels by 40 pixels. It can be read using BARCODE_DM_READ_SMALL since this enables the reading of Data Matrix symbols that are between 20 to 40 pixels in size.
When the ulFlags member value is set to BARCODE_RETURN_FOUR_POINTS flag, the BARCODEDATA.rcBarLocation member will be updated with the four-point corner encoded values.
Before using the four-point corner encoded values, they must be decoded.
The following example shows how to decode the four-point corner values:
   POINT 
 p1, p2, p3, p4;
int nStartX = BarCodeData.rcBarLocation.left;
int nStartY = BarCodeData.rcBarLocation.top; 
int nWidth  = 
 BarCodeData.rcBarLocation.right - nStartX;
int nHeight = BarCodeData.rcBarLocation.bottom - nStartY;
p1.x = (nStartX & 0xffff);
p1.y = (nStartX >> 16);
p2.x = (nStartY & 0xffff);
p2.y = (nStartY >> 16);
p3.x = (nWidth & 0xffff);
p3.y = (nWidth >> 16);
p4.x = (nHeight & 0xffff);
p4.y = (nHeight >> 16);