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
Example
For complete sample code refer to BarCode demo.
L_VOID TestFunction(HWND hWnd, LBarCode &LeadBarCode)
{
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);
LeadBarCode.Free(pBarCodeData);
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);
}