This documentation is archived and is not being maintained.
AnalysisStatusBase Class
Visual Studio 2008
The base class for AnalysisStatus. Represents the status of the analysis operation by describing whether the analysis was completed successfully and whether any warnings occurred.
Assembly: IACore (in IACore.dll)
The following example shows how to look for warnings after an ink analysis. By performing the analysis using the Afrikaans recognizer, which you probably have not installed, you will find that the analysis fails with a InkRecognizerInitializationFailed warning.
' Analyze using Afrikaans recognizer. ' You are unlikely to have this recognizer, so it will raise a warning. Dim afrikaansAnalyzer As New InkAnalyzerBase() Dim afrikaansLanguageId As Integer = 1078 ' Accumulate the stroke data in collections. Dim thePacketDescription() As Guid = theInkCollector.Ink.Strokes(0).PacketDescription Dim theStrokeIdentifiers As ArrayList = New ArrayList() Dim thePacketCounts As ArrayList = New ArrayList() Dim thePacketData As ArrayList = New ArrayList() Dim aStroke As Stroke For Each aStroke In theInkCollector.Ink.Strokes ' Add the stroke data to the collections. theStrokeIdentifiers.Add(aStroke.Id) thePacketCounts.Add(aStroke.PacketCount) thePacketData.AddRange(aStroke.GetPacketData()) Next ' Add the stroke data to the base layer ink analyzer. afrikaansAnalyzer.AddStrokes( _ theStrokeIdentifiers.ToArray(GetType(Integer())), _ thePacketCounts.ToArray(GetType(Integer())), _ thePacketData.ToArray(GetType(Integer())), _ thePacketDescription) Dim status As AnalysisStatusBase = afrikaansAnalyzer.Analyze() ' Display any warnings If status.Warnings.Count > 0 Then ' Initialize warning message Dim message As String = "Analysis resulted in the following warnings:" & Environment.NewLine ' Note: We should only expect to see the BackgroundException warning if ' we were performing background analysis. ' Loop through warnings Dim warning As AnalysisWarningBase For Each warning In status.Warnings Select Case warning.WarningCode Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.Aborted message = message & "Analysis operation was aborted. " Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.BackgroundException ' This is a fatal warning. Throw an exception. ' First, attempt to save as much document state as possible ' ... ' Rethrow the exception so that it can be caught by an exception ' handler (or if there is no exception handler, a program error ' debugger such as Dr. Watson can be invoked) Throw (warning.BackgroundException) Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.ConfirmedWithoutInkRecognition message = message & "Node was confirmed without ink recognition having been performed. " Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.ContextNodeLocationNotSet message = message & "Node does not have a proper location set. " Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.FactoidCoercionNotSupported message = message & "Factoid coercion failed " If (Not warning.AnalysisHint Is Nothing) AndAlso _ warning.AnalysisHint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) Then message = message & "for factoid: " & _ CType(warning.AnalysisHint.GetPropertyData( _ PropertyGuidsForAnalysisHintsBase.Factoid), String) & ". " End If Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.FactoidNotSupported If (Not warning.AnalysisHint Is Nothing) AndAlso _ warning.AnalysisHint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) Then message = message & _ CType(warning.AnalysisHint.GetPropertyData( _ PropertyGuidsForAnalysisHintsBase.Factoid), String) & _ " factoid was not respected. " End If Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.GuideNotSupported message = message & "Guide was not respected. " Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.AddInkToRecognizerFailed message = message & "Ink could not be added to the InkRecognizer. " Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.InkRecognizerInitializationFailed message = message & "The InkRecognizer failed to initialize. " Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.NoMatchingInkRecognizerFound message = message & "There are no ink recognizers meeting the language or capabilities needed. " Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.LanguageIdNotRespected message = message & "The language ID set on a stroke did not match the language ID of the InkRecognizer. " Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.PartialDictionaryTermsNotSupported message = message & "Partial dictionary terms could not be returned from the text recognizer. " Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.SetPrefixSuffixFailed message = message & "The text recognizer was unable to respect either the prefix or suffix. " If (Not warning.AnalysisHint Is Nothing) AndAlso _ warning.AnalysisHint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText) Then message = message & "Prefix: " & _ warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText) _ & ". " End If If (Not warning.AnalysisHint Is Nothing) AndAlso _ warning.AnalysisHint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText) Then message = message & "Suffix: " & _ warning.AnalysisHint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText) _ & ". " End If Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.WordlistNotSupported message = message & "Wordlist was not respected. " Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.WordModeNotSupported message = message & "Word mode was not respected. " End Select ' Add node id information Dim id As Guid For Each id In warning.GetNodeIds() message = message & "Id: " & id.ToString() & " " Next id ' Add hint information If Not (warning.AnalysisHint Is Nothing) Then Dim hint As ContextNodeBase = warning.AnalysisHint message = message & Environment.NewLine & "Hint information: " message = message & "AllowPartialDictionaryTerms" If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.AllowPartialDictionaryTerms) Then message = message & " = " & _ hint.GetPropertyData( _ PropertyGuidsForAnalysisHintsBase.AllowPartialDictionaryTerms).ToString() Else message = message & " = False " End If message = message & "CoerceToFactoid" If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.CoerceToFactoid) Then message = message & " = " & _ hint.GetPropertyData( _ PropertyGuidsForAnalysisHintsBase.CoerceToFactoid).ToString() Else message = message & " = False " End If If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) Then message = message & "Factoid = " & _ warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) & " " End If If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Guide) Then Dim theInkRecognizerGuideBase As InkRecognizerGuideBase = _ CType(hint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Guide), _ InkRecognizerGuideBase) message += "Guide Drawn Box = {" & theInkRecognizerGuideBase.DrawnBoxLeft.ToString() _ & ", " & theInkRecognizerGuideBase.DrawnBoxTop.ToString() _ & ", " & theInkRecognizerGuideBase.DrawnBoxRight.ToString() _ & ", " & theInkRecognizerGuideBase.DrawnBoxBottom.ToString() _ & ")" message &= "Guide Writing Box = {" & theInkRecognizerGuideBase.WritingBoxLeft.ToString() _ & ", " & theInkRecognizerGuideBase.WritingBoxTop.ToString() _ & ", " & theInkRecognizerGuideBase.WritingBoxRight.ToString() _ & ", " & theInkRecognizerGuideBase.WritingBoxBottom.ToString() _ & ")" message = message & String.Format("Guide = ({0}, {1})", _ theInkRecognizerGuideBase.Columns, theInkRecognizerGuideBase.Rows) End If If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Name) Then message = message & "Name = " & _ CType(warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Name), String) _ & " " End If If Not hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText) Then message = message & "PrefixText = " & _ CType(warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText), String) _ & " " End If If Not hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText) Then message = message & "SuffixText = " & _ CType(warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText), String) _ & " " End If message = message & "WordMode" If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.WordMode) Then message = message & " = " & _ CType(hint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.WordMode), String) Else message = message & " = False" End If End If message = message & Environment.NewLine Next warning ' Show in the output window System.Diagnostics.Debug.WriteLine(message) End If If status.Successful Then Me.labelResult.Text = afrikaansAnalyzer.GetRecognizedString() End If
Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Show: