Allocates the hContainer member of the TW_CAPABILITY structure to be type TW_ENUMERATION and fills it with the appropriate data.
#include "lttwn.h"
L_LTTWN_API L_INT L_TwainCreateNumericContainerEnum (pCapability, Type, uNumOfItems, uCurrentIndex, uDefaultIndex, pData)
Pointer to a structure that contains the capability container to allocate as type TW_ENUMERATION.
Type of data contained in the TW_ENUMERATION container. For a list of possible values, refer to LTWAINNUMERICTYPE.
Number of items in the enumeration.
Index of the current value in the enumeration data.
Index of the default value in the enumeration data.
Pointer to an allocated array of type TW_ENUMERATION that has been initialized with the appropriate data and size information.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
! = SUCCESS | An error occurred. Refer to Return Codes. |
When enumerating and getting capabilities, the toolkit takes care of creating the necessary TW_CAPABILITY containers. However, if the user wants to set a capability using the L_TwainSetCapability function, he or she must declare a TW_CAPABILITY container of the appropriate type (TW_ARRAY, TW_ENUMERATION, TW_RANGE, or TW_ONEVALUE).
L_INT TwainCreateNumericContainerEnumExample(HTWAINSESSION hSession)
{
L_INT nRet;
TW_CAPABILITY twCap;
L_UINT16 uItem[3];
memset (&twCap, 0, sizeof(TW_CAPABILITY));
twCap.Cap = ICAP_XFERMECH;
twCap.ConType = TWON_ENUMERATION;
uItem[0] = TWSX_FILE;
uItem[1] = TWSX_MEMORY;
uItem[2] = TWSX_NATIVE;
nRet = L_TwainStartCapsNeg(hSession);
if(nRet != SUCCESS)
return nRet;
nRet = L_TwainCreateNumericContainerEnum(&twCap, TWAINNUMERICTYPE_TW_UINT32, 3, TWSX_MEMORY, TWSX_NATIVE, (L_INT *)uItem);
if(nRet != SUCCESS)
return nRet;
nRet = L_TwainSetCapability(hSession, &twCap, LTWAIN_CAPABILITY_SET);
if(nRet != SUCCESS)
return nRet;
nRet = L_TwainFreeContainer(&twCap);
if(nRet != SUCCESS)
return nRet;
nRet = L_TwainEndCapsNeg(hSession);
if(nRet != SUCCESS)
return nRet;
return SUCCESS;
}