LBarCode::GetFirstDuplicated

#include "ltwrappr.h"

L_INT LBarCode::GetFirstDuplicated (nIndex)

Returns the index of the first barcode, in the class object's barcode data array, that is a duplicate of the barcode at the specified index.

Parameters

L_INT nIndex

Index of a barcode in the class object's barcode data array. This is a zero-based index. nIndex must be >= 0 and less than the total number of barcodes read using LBarCode::Read.

Returns

Value Meaning
>=0 Index of the barcode, in the class object's barcode data array, that is the first duplicate of the barcode at the specified index.
<0 An error occurred. Refer to Return Codes.

Comments

As an example, a call to LBarCode::Read reads ten barcodes into the class object's barcode data array. LBarCode::IsDuplicated is called for the item at index 3 in the array, and TRUE is returned. Therefore one or more barcodes in the array are duplicates of the specified item.

Calling LBarCode::GetFirstDuplicated returns the index of the first barcode in the array that is a duplicate of the barcode at index 3 in the array. Suppose this value is 0. The barcode present at index zero in the array is the first duplicate of the barcode at index 3.

Calling LBarCode::GetNextDuplicated with nIndex set to 3 will return the index of the next barcode in the array that is a duplicate of the barcodes at index 0 and 3. Suppose this value is 9. Therefore the barcodes at index 0, index 3, and index 9 of the array are all duplicates.

LBarCode::Read returns the total number of barcodes read.

Required DLLs and Libraries

See Also

Functions

Topics

Example

For complete sample code refer to BarCode demo.

L_INT LBarCode_GetFirstDuplicatedExample(HWND hWnd, LBarCode &LeadBarCode) 
 
{ 
   L_INT nRet; 
 
   pBARCODEDATA   pBarCodeData=NULL; 
 
   L_INT          nDupIndex, nDupCount; 
 
   if (LeadBarCode.IsDuplicated(3)) 
 
   { 
 
      L_TCHAR szBuffer[1024]; 
 
      memset(szBuffer, 0, sizeof(szBuffer)); 
 
      nDupCount = LeadBarCode.GetDuplicatedCount(3); 
 
      nDupIndex = LeadBarCode.GetFirstDuplicated(3); 
 
      wsprintf(szBuffer, TEXT("This Bar Code is duplicated in %d different locations."), nDupCount); 
 
      MessageBox(hWnd, szBuffer, TEXT("Notice!"), MB_OK); 
 
      if (nDupIndex >= 0) 
 
      { 
 
         pBarCodeData = LeadBarCode.GetBarCodeDataItem(nDupIndex); 
 
         if (!pBarCodeData) 
 
            LBase::DisplayErrorFromList(hWnd); 
 
         memset(szBuffer, 0, sizeof(szBuffer)); 
 
         // Print the first duplicated barcode data 
 
         wsprintf(szBuffer, TEXT("Data is %hs\nType %d\nUnits %d\nPosX %d\nPosY %d\nWidth %d\nHeight %d\n\n"), 
 
                  pBarCodeData->pszBarCodeData, 
 
                  pBarCodeData->ulType, 
 
                  pBarCodeData->nUnits,  
 
                  pBarCodeData->rcBarLocation.left, 
 
                  pBarCodeData->rcBarLocation.top, 
 
                  abs(pBarCodeData->rcBarLocation.right - pBarCodeData->rcBarLocation.left), 
 
                  abs(pBarCodeData->rcBarLocation.bottom - pBarCodeData->rcBarLocation.top)); 
 
 
         MessageBox(hWnd, szBuffer, TEXT("BarCode Info."), MB_OK); 
 
         nRet = LeadBarCode.Free(pBarCodeData); 
         if(nRet != SUCCESS) 
            return nRet; 
 
         pBarCodeData = NULL; 
 
         // find the next (second) duplicated barcode 
 
         nDupIndex = LeadBarCode.GetNextDuplicated(nDupIndex); 
 
         if (nDupIndex >= 0) 
 
         { 
 
            pBarCodeData = LeadBarCode.GetBarCodeDataItem(nDupIndex); 
 
            if (!pBarCodeData) 
 
               LBase::DisplayErrorFromList(hWnd); 
 
            memset(szBuffer, 0, sizeof(szBuffer)); 
 
            wsprintf(szBuffer, TEXT("Data is %hs\nType %d\nUnits %d\nPosX %d\nPosY %d\nWidth %d\nHeight %d\n\n"), 
 
                     pBarCodeData->pszBarCodeData, 
 
                     pBarCodeData->ulType, 
 
                     pBarCodeData->nUnits, 
 
                     pBarCodeData->rcBarLocation.left, 
 
                     pBarCodeData->rcBarLocation.top, 
 
                     abs(pBarCodeData->rcBarLocation.right - pBarCodeData->rcBarLocation.left), 
 
                     abs(pBarCodeData->rcBarLocation.bottom - pBarCodeData->rcBarLocation.top)); 
 
            MessageBox(hWnd, szBuffer, TEXT("BarCode Info."), MB_OK); 
 
            LeadBarCode.Free(pBarCodeData); 
 
            pBarCodeData = NULL; 
 
         } 
 
      } 
 
   } 
 
   else 
 
      MessageBox(hWnd, TEXT("This Barcode is not duplicated ..."), TEXT("Error!"), MB_OK); 
 
   return SUCCESS; 
 
} 

Help Version 21.0.2021.7.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Barcode C++ Class Library Help
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.