The exception that is thrown when a WIA error occurs.
Syntax
Example
Visual Basic | Copy Code |
---|
<Test> _
Public Sub WiaExceptionExample(ByVal parent As IWin32Window)
Dim wiaSession As WiaSession = Nothing
Try
If (Not WiaSession.IsAvailable(WiaVersion.Version1)) Then
MessageBox.Show("WIA version 1.0 not installed.")
Return
End If
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
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
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 |
C# | Copy Code |
---|
public void WiaExceptionExample(IWin32Window 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; } |
Remarks
Inheritance Hierarchy
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows 2000, Windows XP, Windows Vista, Windows Server 2003 family, Windows Server 2008 family
See Also