Faild to get the full image in wia scanner in c# windows application
<p>this code gives me only the half image from cannon scanner. plz give me the solution of this code.I tried in both picture box and panel  to show the image . auto scroll is given true for the form.I tried to get the complete image from the scanner but I got only half image. I tried the code is given below.</p>

<pre><code>    const string wiaFormatBMP = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}";

    class WIA_DPS_DOCUMENT_HANDLING_SELECT
    {
        public const uint FEEDER = 0x00000001;
        public const uint FLATBED = 0x00000002;
    }

    class WIA_DPS_DOCUMENT_HANDLING_STATUS
    {
        public const uint FEED_READY = 0x00000001;
    }


    class WIA_PROPERTIES
    {
        public const uint WIA_RESERVED_FOR_NEW_PROPS = 1024;
        public const uint WIA_DIP_FIRST = 2;
        public const uint WIA_DPA_FIRST = WIA_DIP_FIRST + WIA_RESERVED_FOR_NEW_PROPS;
        public const uint WIA_DPC_FIRST = WIA_DPA_FIRST + WIA_RESERVED_FOR_NEW_PROPS;
        //
        // Scanner only device properties (DPS)
        //
        public const uint WIA_DPS_FIRST = WIA_DPC_FIRST + WIA_RESERVED_FOR_NEW_PROPS;
        public const uint WIA_DPS_DOCUMENT_HANDLING_STATUS = WIA_DPS_FIRST + 13;
        public const uint WIA_DPS_DOCUMENT_HANDLING_SELECT = WIA_DPS_FIRST + 14;
    }

    /// &lt;summary&gt;
    /// Use scanner to scan an image (with user selecting the scanner from a dialog).
    /// &lt;/summary&gt;
    /// &lt;returns&gt;Scanned images.&lt;/returns&gt;
    //public static List&lt;Image&gt; Scanning()
    //{

    //}

    /// &lt;summary&gt;
    /// Use scanner to scan an image (scanner is selected by its unique id).
    /// &lt;/summary&gt;
    /// &lt;param name="scannerName"&gt;&lt;/param&gt;
    /// &lt;returns&gt;Scanned images.&lt;/returns&gt;
    public  List&lt;Image&gt; Scan(string scannerId)
    {
          List&lt;Image&gt; images = new List&lt;Image&gt;();

        bool hasMorePages = true;
        while (hasMorePages)
        {
            // select the correct scanner using the provided scannerId parameter
            WIA.DeviceManager manager = new WIA.DeviceManager();
            WIA.Device device = null;
            foreach (WIA.DeviceInfo info in manager.DeviceInfos)
            {
                if (info.DeviceID == scannerId)
                {
                    // connect to scanner
                    device = info.Connect();
                    break;
                }
            }

            // device was not found
            if (device == null)
            {
                // enumerate available devices
                string availableDevices = "";
                foreach (WIA.DeviceInfo info in manager.DeviceInfos)
                {
                    availableDevices += info.DeviceID + "n";
                }

                // show error with available devices
                throw new Exception("The device with provided ID could not be found. Available Devices:n" + availableDevices);
            }

            WIA.Item item = device.Items[1] as WIA.Item;

            try
            {
                // scan image
                WIA.ICommonDialog wiaCommonDialog = new WIA.CommonDialog();
                WIA.ImageFile image = (WIA.ImageFile)wiaCommonDialog.ShowTransfer(item, wiaFormatBMP, false);

                // save to temp file
                string fileName = Path.GetTempFileName()+".BMP";
                File.Delete(fileName);
                image.SaveFile(fileName);
                pictureBox1.ImageLocation = fileName;
                image = null;

                // add file to output list
                images.Add(Image.FromFile(fileName));
            }
            catch (Exception exc)
            {
                throw exc;
            }
            finally
            {
                item = null;

                //determine if there are any more pages waiting
                WIA.Property documentHandlingSelect = null;
                WIA.Property documentHandlingStatus = null;

                foreach (WIA.Property prop in device.Properties)
                {
                    if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_SELECT)
                        documentHandlingSelect = prop;

                    if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_STATUS)
                        documentHandlingStatus = prop;
                }

                // assume there are no more pages
                hasMorePages = false;

                // may not exist on flatbed scanner but required for feeder
                if (documentHandlingSelect != null)
                {
                    // check for document feeder
                    if ((Convert.ToUInt32(documentHandlingSelect.get_Value()) &amp; WIA_DPS_DOCUMENT_HANDLING_SELECT.FEEDER) != 0)
                    {
                        hasMorePages = ((Convert.ToUInt32(documentHandlingStatus.get_Value()) &amp; WIA_DPS_DOCUMENT_HANDLING_STATUS.FEED_READY) != 0);
                    }
                }
            }
        }

        return images;
    }

    /// &lt;summary&gt;
    /// Gets the list of available WIA devices.
    /// &lt;/summary&gt;
    /// &lt;returns&gt;&lt;/returns&gt;
    public static List&lt;string&gt; GetDevices()
    {
        List&lt;string&gt; devices = new List&lt;string&gt;();
        WIA.DeviceManager manager = new WIA.DeviceManager();

        foreach (WIA.DeviceInfo info in manager.DeviceInfos)
        {
            devices.Add(info.DeviceID);
        }

        return devices;
    }
    private void button1_Click(object sender, EventArgs e)
    {
        WIA.ICommonDialog dialog = new WIA.CommonDialog();
        WIA.Device device = dialog.ShowSelectDevice(WIA.WiaDeviceType.UnspecifiedDeviceType, true, false);

        if (device != null)
        {
            Scan(device.DeviceID); 


        }
        else
        {
            throw new Exception("You must select a device for scanning.");
        }

    }
}
</code></pre>

<p>this code gives me only the half image from cannon scanner. plz give me the solution of this code.
I tried in both picture box and panel  to show the image .
auto scroll is given true for the form. </p>
