←Select platform

WiaException Class

Summary

The exception that is thrown when a WIA error occurs.

Syntax

C#
VB
C++
[SerializableAttribute()] 
public class WiaException : Leadtools.LeadtoolsException, System.Runtime.InteropServices._Exception, System.Runtime.Serialization.ISerializable 
<SerializableAttribute()> 
Public Class WiaException  
   Inherits Leadtools.LeadtoolsException 
   Implements System.Runtime.InteropServices._Exception, System.Runtime.Serialization.ISerializable 
[SerializableAttribute()] 
public ref class WiaException : public Leadtools.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
Imports Leadtools 
      Imports Leadtools.Wia 
 
      <Test> _ 
#If Not LEADTOOLS_V19_OR_LATER Then 
      Public Sub WiaExceptionExample(ByVal parent As IWin32Window) 
#Else 
      Public Sub WiaExceptionExample(ByVal parent As IntPtr) 
#End If ' #If LEADTOOLS_V19_OR_LATER Then 
         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 
using Leadtools; 
      using Leadtools.Wia; 
 
      [TestMethod] 
#if !LEADTOOLS_V19_OR_LATER 
      public void WiaExceptionExample(IWin32Window parent) 
#else 
      public void WiaExceptionExample(IntPtr parent) 
#endif // #if !LEADTOOLS_V19_OR_LATER 
      { 
         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; 
      } 

Requirements

Target Platforms

Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
Leadtools.Wia Assembly
Click or drag to resize