L_TwainGetNumericContainerValue

#include "lttwn.h"

L_LTTWN_API L_INT L_TwainGetNumericContainerValue (pCapability, nIndex, ppValue)

TW_CAPABILITY * pCapability;

/* pointer to a structure */

L_INT nIndex;

/* value's index */

L_VOID ** ppValue;

/* variable to be allocated by the function */

Gets the specified value from a container.

Parameter

Description

pCapability

Pointer to a structure that contains the capability container value to get.

nIndex

Index of the value to get. Possible values are:

 

Value

Meaning

 

LTWAIN_VALUE_COUNT

[-1] Update ppValue with the number of items in the item list of the specified container. This option is only valid if the container is of type TW_ARRAY or TW_ENUMERATION. If the container is of any other type, this function will return an error code.

 

LTWAIN_VALUE_CURRENT

[-2] Update ppValue with the current value of the container. If the container is of type TW_RANGE, ppValue is updated with the CurrentValue member of the TW_RANGE structure. If the container is of type TW_ENUMERATION, ppValue is updated with the CurrentIndex member of the TW_ENUMERATION structure. If the container is of any other type, the function will return an error code.

 

LTWAIN_VALUE_DEFAULT

[-3] Update ppValue with the default value of the container. If the container is of type TW_RANGE, ppValue is updated with the DefaultValue member of the TW_RANGE structure. If the container is of type TW_ENUMERATION, ppvalue is updated with the DefaultIndex member of the TW_ENUMERATION structure. If the container is of any other type, the function will return an error code.

 

LTWAIN_VALUE_MINIMUM

[-4] Update ppValue with the minimum value of the container. If the container is of type TW_RANGE, ppValue is updated with the MinValue member of the TW_RANGE structure. If the container is of any other type, the function will return an error code.

 

LTWAIN_VALUE_MAXIMUM

[-5] Update ppValue with the maximum value of the container. If the container is of type TW_RANGE, ppValue is updated with the MaxValue member of the TW_RANGE structure. If the container is of any other type, the function will return an error code.

 

LTWAIN_VALUE_STEPSIZE

[-6] Update ppValue with the step size of the container. If the container is of type TW_RANGE, ppValue is updated with the StepSize membr of the TW_RANGE structure. If the container is of any other type, the function will return an error code.

 

>= 0

Update ppValue with the value at the specified index. If the container is of type TW_ONEVALUE, nIndex must be zero and ppValue will be updated with the value of the TW_ONEVALUE structure. If the container is of type TW_ARRAY or TW_ENUMERATION, ppValue will be updated with the value at the specified index in the list of items. If the container is of type TW_ENUMERATION or TW_ARRAY, the value must not exceed the number of items in the container's item list or the function will return an error code.

ppValue

Variable to be allocated by the function and updated with the specified value. The user must free this value using the Windows C DLLs GlobalUnlock and GlobalFree functions.

Returns

SUCCESS

The function was successful.

! = SUCCESS

An error occurred. Refer to Return Codes.

Required DLLs and Libraries

LTTWN

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:

L_TwainCreateNumericContainerOneValue, L_TwainCreateNumericContainerEnum, L_TwainCreateNumericContainerArray, L_TwainCreateNumericContainerRange, L_TwainFreeContainer, L_TwainFix32ToFloat

Topics:

How to Work with the Containers

 

TWAIN Functionality: Container Functions.

Example

 L_INT TwainGetNumericContainerValueExample(HTWAINSESSION g_hSession)
{
   L_INT nRet;
   L_UINT16 * pVal = NULL;
   TW_CAPABILITY twCap;
   twCap.Cap = ICAP_XFERMECH;
   twCap.ConType = TWON_DONTCARE16;
   
   nRet = L_TwainGetCapability (g_hSession, &twCap, LTWAIN_CAPABILITY_GETCURRENT);
   if (nRet != SUCCESS) 
   {
      MessageBox (NULL, TEXT("Failed to get capability"), TEXT("ERROR"), MB_OK);
      return nRet;
   }
   if (twCap.ConType == TWON_ONEVALUE)
   {
      nRet = L_TwainGetNumericContainerValue (&twCap, 0, (L_VOID **)&pVal);
      if(nRet != SUCCESS)
         return nRet;
   }
   else
      if (twCap.ConType == TWON_ENUMERATION)
      {
         nRet = L_TwainGetNumericContainerValue (&twCap, LTWAIN_VALUE_CURRENT, (L_VOID **)&pVal);
         if(nRet != SUCCESS)
            return nRet;
      }
   return SUCCESS;
}