#include "lttwn.h"
L_LTTWN_API L_INT L_TwainQueryProperty (hSession, uCapability, ppltProperty, uStructSize)
Gets the available property values.
Handle to an existing TWAIN session. This handle is obtained by calling the L_TwainInitSession or L_TwainInitSession2 function.
This is a capability constant defined by the TWAIN specification. For example if the user wants the value(s) for the transfer count, the uCapability will be ICAP_XFERCOUNT.
Pointer to a pointer to a LTWAINPROPERTYQUERY structure to be updated with the property values.
The structure will be internally allocated if the function is successful. The structure should be freed by calling L_TwainFreePropQueryStructure function.
Size, in bytes, of the structure pointed to by ppltProperty, for versioning. Use sizeof(TWAINPROPERTYQUERY).
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
! = SUCCESS | An error occurred. Refer to Return Codes. |
Getting these values can help in determining which values a certain TWAIN source supports for a certain capability or property.
Required DLLs and Libraries
L_INT TwainQueryPropertyExample(L_INT16 uValue,HTWAINSESSION g_hSession)
{
L_INT nRet, nIndex;
pLTWAINPROPERTYQUERY pltQuery = NULL;
// Query capability possible values
nRet = L_TwainQueryProperty (g_hSession, ICAP_XRESOLUTION, &pltQuery, sizeof(LTWAINPROPERTYQUERY));
if (nRet != SUCCESS)
return nRet;
// Check for the available values of the file transfer property
switch (pltQuery->uType)
{
case TWON_ONEVALUE:
if (pltQuery->pltwOneValue->ItemType == TWTY_FIX32)
{
pTW_FIX32 ptwFixVal = (pTW_FIX32)(INT_PTR)pltQuery->pltwOneValue->Item;
if (ptwFixVal->Whole == uValue)
{
L_TwainFreePropQueryStructure(&pltQuery);
return SUCCESS;
}
}
break;
case TWON_ENUMERATION:
if (pltQuery->pltwEnumeration->ItemType == TWTY_FIX32)
{
pTW_FIX32 ptwFixVal;
for (nIndex = 0;nIndex < (L_INT)pltQuery->pltwEnumeration->NumItems;nIndex ++)
{
ptwFixVal = (pTW_FIX32)(pltQuery->pltwEnumeration->ItemList)[nIndex];
if (ptwFixVal->Whole == uValue)
{
L_TwainFreePropQueryStructure (&pltQuery);
return SUCCESS;
}
}
}
break;
}
L_TwainFreePropQueryStructure (&pltQuery);
return FAILURE;
}