WiaException Class

Summary

The exception that is thrown when a WIA error occurs.

Syntax
C#
VB
C++
[SerializableAttribute()] 
public class WiaException : LeadtoolsException 
  
<SerializableAttribute()> 
Public Class WiaException  
   Inherits LeadtoolsException 
   Implements System.Runtime.InteropServices._Exception, System.Runtime.Serialization.ISerializable  
[SerializableAttribute()] 
public ref class WiaException : public LeadtoolsException, System.Runtime.InteropServices._Exception, System.Runtime.Serialization.ISerializable   

Remarks

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.

Example
C#
VB
using Leadtools; 
using Leadtools.Wia; 
 
public void WiaExceptionExample(IntPtr parent) 
{ 
   WiaSession wiaSession = null; 
 
   try 
   { 
      if (!WiaSession.IsAvailable(WiaVersion.Version1)) 
      { 
         MessageBox.Show("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) 
      { 
         MessageBox.Show("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); 
            MessageBox.Show("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) 
   { 
      MessageBox.Show(string.Format("WIA error:{0}Code: {1}{0}Message: {2}", Environment.NewLine, ex.Code, ex.Message)); 
   } 
   catch (Exception ex) 
   { 
      MessageBox.Show(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; 
} 
Imports Leadtools 
Imports Leadtools.Wia 
 
Public Sub WiaExceptionExample(ByVal parent As IntPtr) 
   Dim wiaSession As WiaSession = Nothing 
 
   Try 
      If (Not wiaSession.IsAvailable(WiaVersion.Version1)) Then 
         MessageBox.Show("WIA version 1.0 not installed.") 
         Return 
      End If 
 
      ' initialize a new WIA wiaSession 
      wiaSession = New WiaSession() 
      wiaSession.Startup(WiaVersion.Version1) 
 
      Dim res As DialogResult = wiaSession.SelectDeviceDlg(parent, WiaDeviceType.Default, WiaSelectSourceFlags.NoDefault) 
      If res <> DialogResult.OK Then 
         MessageBox.Show("Error selecting WIA device.") 
         wiaSession.Shutdown() 
         Return 
      End If 
 
      ' acquire a page, if paper jam, allow the user to retry 
      Dim done As Boolean = False 
      Do While Not done 
         Try 
            AddHandler wiaSession.AcquireEvent, AddressOf wiaSession_AcquireEvent2 
 
            res = wiaSession.Acquire(parent, Nothing, WiaAcquireFlags.ShowUserInterface Or WiaAcquireFlags.UseCommonUI) 
            MessageBox.Show("Success") 
            done = True 
 
            RemoveHandler wiaSession.AcquireEvent, AddressOf wiaSession_AcquireEvent2 
         Catch ex As WiaException 
            If ex.Code = WiaExceptionCode.PaperJam Then 
               If MessageBox.Show("Paper jam.  Fix and retry?", "WIA", MessageBoxButtons.YesNo) = DialogResult.No Then 
                  done = True 
               End If 
            Else 
               ' other error, propagate 
               Throw ex 
            End If 
         End Try 
      Loop 
   Catch ex As WiaException 
      MessageBox.Show(String.Format("WIA error:{0}Code: {1}{0}Message: {2}", Environment.NewLine, ex.Code, ex.Message)) 
   Catch ex As Exception 
      MessageBox.Show(String.Format("Other error: Message:{0}", ex.Message)) 
   Finally 
      If Not wiaSession Is Nothing Then 
         wiaSession.Shutdown() 
      End If 
   End Try 
End Sub 
 
Private Sub wiaSession_AcquireEvent2(ByVal sender As Object, ByVal e As WiaAcquireEventArgs) 
   Application.DoEvents() 
 
   If Not e.Image Is Nothing Then 
      e.Image.Dispose() 
   End If 
 
   e.Cancel = False 
End Sub 

Requirements

Target Platforms

Help Version 20.0.2019.9.19
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2019 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Wia Assembly