The WiaException class defines a Code property that you can examine to determine what caused the error.
Default messages are implemented for each Code. You can, however, modify any message by using the GetCodeMessage and SetCodeMessage methods.
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 wiaSessionwiaSession = 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 retrybool 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, propagatethrow 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;}