ImageGear for C and C++ on Windows v21.0 - Updated
API Reference Guide / ISIS Component API Reference / ISIS Component Functions Reference / Choice Functions / IG_ISIS_choice_get_flags
In This Topic
    IG_ISIS_choice_get_flags
    In This Topic

    Get a flag word for a tag.

    Declaration:

     
    Copy Code
    AT_ERRCOUNT ACCUAPI IG_ISIS_choice_get_flags(
            HISISDRV hDriver,
            AT_MODE nTag,
            LPAT_LMODE lpFlags
    );
    

    Arguments:

    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:
    • IG_ISIS_CONT_RANGE - Choice values are represented internally as a range, with a low value, a high value, and a step value.
    • IG_ISIS_CONT_LIST - Choice values are represented internally as a simple list of values.

    Return Value:

    Error count.

    Supported Raster Image Formats:

    This function does not process image pixels.

    Example:

    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.                                                                                                  */
                            .
                            .
                            .
    

    Remarks:

    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.

    See Also:

    IG_ISIS_choice_get_ascii

    IG_ISIS_choice_get_long

    IG_ISIS_choice_get_rational

    IG_ISIS_tag_get_type