ImageGear for C and C++ on Windows v21.0 - Updated
API Reference Guide / ISIS Component API Reference / ISIS Component Functions Reference / Single-Step Driver Control Functions / IG_ISIS_drv_start_data
In This Topic
    IG_ISIS_drv_start_data
    In This Topic

    Start transferring zone data.

    Declaration:

     
    Copy Code
    AT_ERRCOUNT ACCUAPI IG_ISIS_drv_start_data(
            HISISDRV hZone
    );
    

    Arguments:

    Name Type Description
    hZone HISISDRV The handle of the zone for which data is to be transferred.

    Return Value:

    Error count.

    Supported Raster Image Formats:

    Depends on the scanner driver.

    Example:

    The following example shows how the IG_ISIS_drv_run_zone function is implemented. The relationships of the functions would be the same in most any scanning application.

     
    Copy Code
    INT32 PUBLIC_FUNC IG_ISIS_run_zone(HISISDRV hDriver,
                                                          char FAR *buffer, INT16 size)
    {
            HISISDRV hStack, hPage, hZone;
            AT_ERRCOUNT nErrCount;
            if ((nErrCount = IG_ISIS_drv_start_stack(hDriver, &hStack)) == IGE_SUCCESS) {
                    if ((nErrCount = IG_ISIS_drv_start_page(hStack, &hPage)) == IGE_SUCCESS) {
                            if ((nErrCount = IG_ISIS_drv_start_zone(hPage, &hZone)) == IGE_SUCCESS) {
                                    if ((nErrCount = IG_ISIS_drv_forward(hZone, 0)) == IGE_SUCCESS)
                                            nErrCount = IG_ISIS_drv_start_data(hZone);
                                    if (nErrCount == IGE_SUCCESS) {
                                            do {
                                                    nErrCount = IG_ISIS_drv_put_data(hZone,buffer,size,0);
                                            } while (nErrCount == IGE_SUCCESS);
                                    }
                                    nErrCount = IG_ISIS_drv_end_zone(hZone);
                            }
                            nErrCount = IG_ISIS_drv_end_page(hPage);
                    }
                    nErrCount = IG_ISIS_drv_end_stack(hStack);
            }
            return nErrCount;
    }
    

    Remarks:

    The IG_ISIS_drv_start_data function tells a driver to start transferring zone data.

    IG_ISIS_drv_start_data is one of several hierarchical data transfer functions that are called automatically by the IG_ISIS_drv_run_zone function. IG_ISIS_drv_start_data must be called before IG_ISIS_drv_put_data. The IG_ISIS_drv_start_data function sends current tag values to all drivers in the ISIS pipe at the very last minute before actually invoking the pipe, so that each driver is certain to have the most recent tag values.

    The hierarchy of data transfer functions is:

     
    Copy Code
    IG_ISIS_drv_start_stack
         IG_ISIS_drv_start_page
              IG_ISIS_drv_start_zone
                   IG_ISIS_drv_forward
                        IG_ISIS_drv_start_data
                             IG_ISIS_drv_put_data
              IG_ISIS_drv_end_zone
         IG_ISIS_drv_end_page
    IG_ISIS_drv_end_stack