IAnalysisWarning interface

Represents a warning or error that occurs during an ink analysis operation.

Members

The IAnalysisWarning interface inherits from the IUnknown interface. IAnalysisWarning also has these types of members:

Methods

The IAnalysisWarning interface has these methods.

Method Description
GetBackgroundError Retrieves the error code for the background ink analysis operation if an error occurred.
GetHint Retrieves the analysis hint that caused this warning
GetNodeIds Retrieves the identifiers of any relevant context nodes that are associated with this warning.
GetWarningCode Retrieves the type of warning that occurred by using the AnalysisWarningCode enumeration.

Remarks

The types of warnings that can occur are described by the AnalysisWarningCode enumeration. Often warnings occur when you try to use a feature that is not supported by the IInkAnalysisRecognizer that the IInkAnalyzer is using.

Some warnings indicate that the IInkAnalyzer did not complete the analysis operation. For more information, see AnalysisWarningCode.

Examples

The following example shows an outline of an event handler for the _IAnalysisEvents::Results event. The handler checks IAnalysisStatus::IsSuccessful. If the analysis operation generates warnings, the handler iterates through the collection of IAnalysisWarning objects.

// _IAnalysisEvents::Results event handler.
STDMETHODIMP CMyClass::Results(
    IInkAnalyzer *pInkAnalyzer,
    IAnalysisStatus *pAnalysisStatus)
{
    // Check the status of the analysis operation.
    VARIANT_BOOL bResult = VARIANT_FALSE;
    HRESULT hr = pAnalysisStatus->IsSuccessful(&bResult);

    if( SUCCEEDED(hr) )
    {
        if( bResult )
        {
            // Insert code that handles a successful result.
        }
        else
        {
            // Get the analysis warnings.
            IAnalysisWarnings* pAnalysisWarnings = NULL;
            hr = pAnalysisStatus->GetWarnings(&pAnalysisWarnings);
            if (SUCCEEDED(hr))
            {
                // Iterate through the warning collection.
                ULONG warningCount = 0;
                hr = pAnalysisWarnings->GetCount(&warningCount);
                if (SUCCEEDED(hr))
                {
                    IAnalysisWarning *pAnalysisWarning = NULL;
                    AnalysisWarningCode analysisWarningCode;
                    for (ULONG index=0; index<warningCount; index++)
                    {
                        // Get an analysis warning.
                        hr = pAnalysisWarnings->GetAnalysisWarning(
                            index, &pAnalysisWarning);

                        if (SUCCEEDED(hr))
                        {
                            // Get the warning code for the warning.
                            hr = pAnalysisWarning->GetWarningCode(
                                &analysisWarningCode);

                            if (SUCCEEDED(hr))
                            {
                                // Insert code that handles each
                                // analysis warning.
                            }
                        }

                        // Release this reference to the analysis warning.
                        if (pAnalysisWarning != NULL)
                        {
                            pAnalysisWarning->Release();
                            pAnalysisWarning = NULL;
                        }

                        if (FAILED(hr))
                        {
                            break;
                        }
                    }
                }
            }

            // Release this reference to the analysis warnings collection.
            if (pAnalysisWarnings != NULL)
            {
                pAnalysisWarnings->Release();
                pAnalysisWarnings = NULL;
            }
        }
    }
    return hr;
}

Requirements

Requirement Value
Minimum supported client
Windows XP Tablet PC Edition [desktop apps only]
Minimum supported server
None supported
Header
IACom.h (also requires IACom_i.c)
DLL
IACom.dll

See also

IAnalysisWarnings

AnalysisWarningCode

Ink Analysis Reference