API Reference Guide > ISIS Component API Reference > ISIS Component Functions Reference > Choice Functions > IG_ISIS_choice_get_flags |
Get a flag word for a tag.
Copy Code
|
|
---|---|
AT_ERRCOUNT ACCUAPI IG_ISIS_choice_get_flags( HISISDRV hDriver, AT_MODE nTag, LPAT_LMODE lpFlags ); |
Name | Type | Description |
---|---|---|
hDriver | HISISDRV | The handle to the driver. |
nTag | AT_MODE | The tag for which the flag word is being requested. |
lpFlags | LPAT_LMODE |
A pointer to a buffer that will contain the result of IG_ISIS_choice_get_flags. Currently, only two bits of lpFlags are defined:
|
Error count.
This function does not process image pixels.
The following example shows how to use IG_ISIS_choice_get_flags to determine whether a particular tag is a list or a range. This is part of a sample that determines whether a scanner can output binary, grayscale, or color.
Copy Code
|
|
---|---|
main() { LONG lBits, lSamps, lFlags; WORD wCount, iIndex; HISISDRV hScan; AT_ERRCOUNT nErrCount; /* Load & init a scanner driver. */ nErrCount = IG_ISIS_drv_load_init_pipe(0, "NIKON", &hScan, 0); /* Find out how many choices for SAMPLESPERPIXEL. */IG_ISIS_choice_get_count(hScan, IG_ISIS_TAG_SAMPLESPERPIXEL, &wCount); /* Get and set values for SAMPLESPERPIXEL one at a time. */ for (iIndex = 0; iIndex < wCount; iIndex++) {IG_ISIS_choice_get_long(hScan, IG_ISIS_TAG_SAMPLESPERPIXEL, iIndex, &lSamps);IG_ISIS_tag_set_long(hScan, IG_ISIS_TAG_SAMPLESPERPIXEL, 0, lSamps); /* If SAMPLESPERPIXEL is 1, then must be binary or grayscale. */ if (lSamps == 1) { LONG lValue; /* Determine whether BITSPERSAMPLE is list or range. */IG_ISIS_choice_get_flags(hScan, IG_ISIS_TAG_BITSPERSAMPLE, &lFlags); /* Handle case where BITSPERSAMPLE is a list. */ if (lFlags & IG_ISIS_CONT_LIST) { WORD iIndex, wCount; LONG lBits;IG_ISIS_choice_get_count(hScan, IG_ISIS_TAG_BITSPERSAMPLE, &wCount); for (iIndex = 0; iIndex < wCount; iIndex++) {IG_ISIS_choice_get_long(hScan, IG_ISIS_TAG_BITSPERSAMPLE, iIndex, &lBits); if (lBits==1) printf("Binary is supported\n"); else printf("%d-bit grayscale is supported\n", INT16)lBits); } } else /* Handle other cases. */ . . . |
The IG_ISIS_choice_get_flags function fills in lpdwFlags with the flag word from tag nTag. The values contained in this flag word are described below, under "Structures."
The flag word returned by IG_ISIS_choice_get_flagsis currently used only to differentiate between two types of flag values in a tag: IG_ISIS_CONT_RANGE and IG_ISIS_CONT_LIST. One of these constants should be ANDed with the flag word output by IG_ISIS_choice_get_flags to determine a choice's internal representation.
While most choice functions behave identically regardless of type, the STEP value is only available if the IG_ISIS_CONT_RANGE bit is set.