private void moveUp()
 {
     if (thumbnailList1.SelectedItems.Count > 0)
     {
         if (thumbnailList1.SelectedItems[0].Index > 0)
         {
             foreach (ListViewItem it in thumbnailList1.SelectedItems)
             {
                 int           before = getImageBefore((int)it.Tag);
                 CScannedImage temp   = images[before];
                 images[before]      = images[(int)it.Tag];
                 images[(int)it.Tag] = temp;
                 thumbnailList1.Items[thumbnailList1.Items.IndexOf(it) - 1].Selected = true;
                 it.Selected = false;
             }
             updateView();
         }
     }
 }
 private void moveDown()
 {
     if (thumbnailList1.SelectedItems.Count > 0)
     {
         if (thumbnailList1.SelectedItems[thumbnailList1.SelectedItems.Count - 1].Index < images.Count - 1)
         {
             for (int i = thumbnailList1.SelectedItems.Count - 1; i >= 0; i--)
             {
                 ListViewItem  it    = thumbnailList1.SelectedItems[i];
                 int           after = getImageAfter((int)it.Tag);
                 CScannedImage temp  = images[after];
                 images[after]       = images[(int)it.Tag];
                 images[(int)it.Tag] = temp;
                 thumbnailList1.Items[thumbnailList1.Items.IndexOf(it) + 1].Selected = true;
                 it.Selected = false;
             }
             updateView();
         }
     }
 }
        private void scanWIA(CScanSettings Profile)
        {
            CWIAAPI api;

            try
            {
                api = new CWIAAPI(Profile);
            }
            catch (Exceptions.EScannerNotFound)
            {
                MessageBox.Show("Device not found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            CScannedImage img = api.GetImage();

            if (img != null)
            {
                int next = images.Count > 0 ? images.Keys[images.Count - 1] + 1 : 0;
                images.Add(next, img);
            }
            thumbnailList1.UpdateImages(images);
            Application.DoEvents();

            if (Profile.Source != CScanSettings.ScanSource.GLASS)
            {
                while (img != null)
                {
                    img = api.GetImage();
                    if (img != null)
                    {
                        int next = images.Count > 0 ? images.Keys[images.Count - 1] + 1 : 0;
                        images.Add(next, img);
                    }
                    thumbnailList1.UpdateImages(images);
                    Application.DoEvents();
                }
            }
        }