Example #1
0
            public bool PreFilterMessage(ref Message m)
            {
                TwainCommand cmd = tw.PassMessage(ref m);

                if (cmd == TwainCommand.Not)
                {
                    return(false);
                }

                switch (cmd)
                {
                case TwainCommand.CloseRequest:
                {
                    EndingScan();
                    tw.CloseSrc();
                    form.Close();
                    break;
                }

                case TwainCommand.CloseOk:
                {
                    EndingScan();
                    tw.CloseSrc();
                    break;
                }

                case TwainCommand.DeviceEvent:
                {
                    break;
                }

                case TwainCommand.TransferReady:
                {
                    ArrayList pics = tw.TransferPictures();
                    EndingScan();
                    tw.CloseSrc();
                    foreach (IntPtr img in pics)
                    {
                        int bitcount = 0;

                        using (Bitmap bmp = DibUtils.BitmapFromDib(img, out bitcount))
                        {
                            Bitmaps.Add(new ScannedImage(bmp, bitcount == 1 ? ScanBitDepth.BlackWhite : ScanBitDepth.C24Bit, settings.MaxQuality, settings.Quality));
                        }
                    }
                    form.Close();
                    break;
                }
                }

                return(true);
            }