LBarCode::GetFirstDuplicated
#include "ltwrappr.h"
L_INT LBarCode::GetFirstDuplicated (nIndex)
L_INT nIndex; |
/* index value */ |
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.
Parameter |
Description |
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
>=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
LTBAR For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application |
See Also
Functions: |
LBarCode::LBarCode, LBarCode::Read, LBarCode::GetBarCodeDataItem, LBarCode::GetDuplicatedCount, LBarCode::IsDuplicated, LBarCode::GetNextDuplicated, LBarCode::Write, Class Members |
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; }