using Leadtools;
using Leadtools.Wia;
public void WiaExceptionExample(IntPtr parent)
{
WiaSession wiaSession = null;
try
{
if (!WiaSession.IsAvailable(WiaVersion.Version1))
{
Console.WriteLine("WIA version 1.0 not installed.");
return;
}
// initialize a new WIA wiaSession
wiaSession = new WiaSession();
wiaSession.Startup(WiaVersion.Version1);
DialogResult res = wiaSession.SelectDeviceDlg(parent, WiaDeviceType.Default, WiaSelectSourceFlags.NoDefault);
if (res != DialogResult.OK)
{
Console.WriteLine("Error selecting WIA device.");
wiaSession.Shutdown();
return;
}
// acquire a page, if paper jam, allow the user to retry
bool done = false;
while (!done)
{
try
{
wiaSession.AcquireEvent += new EventHandler<WiaAcquireEventArgs>(wiaSession_AcquireEvent2);
res = wiaSession.Acquire(parent, null, WiaAcquireFlags.ShowUserInterface | WiaAcquireFlags.UseCommonUI);
Console.WriteLine("Success");
done = true;
wiaSession.AcquireEvent -= new EventHandler<WiaAcquireEventArgs>(wiaSession_AcquireEvent2);
}
catch (WiaException ex)
{
if (ex.Code == WiaExceptionCode.PaperJam)
{
if (MessageBox.Show("Paper jam. Fix and retry?", "WIA", MessageBoxButtons.YesNo) == DialogResult.No)
done = true;
}
else
{
// other error, propagate
throw ex;
}
}
}
}
catch (WiaException ex)
{
Console.WriteLine(string.Format("WIA error:{0}Code: {1}{0}Message: {2}", Environment.NewLine, ex.Code, ex.Message));
}
catch (Exception ex)
{
Console.WriteLine(string.Format("Other error: Message:{0}", ex.Message));
}
finally
{
if (wiaSession != null)
wiaSession.Shutdown();
}
}
void wiaSession_AcquireEvent2(object sender, WiaAcquireEventArgs e)
{
Application.DoEvents();
if (e.Image != null)
e.Image.Dispose();
e.Cancel = false;
}