#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.
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.
| 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. |
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
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 datawsprintf(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 barcodenDupIndex = 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;}}}elseMessageBox(hWnd, TEXT("This Barcode is not duplicated ..."), TEXT("Error!"), MB_OK);return SUCCESS;}