Поделиться через


Интерфейс IAnalysisWarning

Представляет предупреждение или ошибку, которая возникает во время операции анализа рукописного ввода.

Элементы

Интерфейс IAnalysisWarning наследуется от интерфейса IUnknown . IAnalysisWarning также имеет следующие типы элементов:

Методы

Интерфейс IAnalysisWarning содержит следующие методы.

Метод Описание
GetBackgroundError Извлекает код ошибки для фоновой операции анализа рукописного ввода, если произошла ошибка.
GetHint Извлекает указание анализа, вызвавшее это предупреждение.
GetNodeIds Извлекает идентификаторы всех соответствующих узлов контекста, связанных с этим предупреждением.
GetWarningCode Извлекает тип предупреждения с помощью перечисления AnalysisWarningCode .

Комментарии

Типы предупреждений, которые могут возникать, описаны перечислением AnalysisWarningCode . Часто предупреждения возникают при попытке использовать функцию, не поддерживаемую IInkAnalysisRecognizer , которую использует IInkAnalyzer .

Некоторые предупреждения указывают на то, что IInkAnalyzer не завершил операцию анализа. Дополнительные сведения см. в разделе AnalysisWarningCode.

Примеры

В следующем примере показана структура обработчика событий для события _IAnalysisEvents::Results . Обработчик проверяет IAnalysisStatus::IsSuccessful. Если операция анализа создает предупреждения, обработчик выполняет итерацию по коллекции объектов IAnalysisWarning .

// _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;
}

Требования

Требование Значение
Минимальная версия клиента
Windows XP Tablet PC Edition [только классические приложения]
Минимальная версия сервера
Ни одна версия не поддерживается
Заголовок
IACom.h (также требуется IACom_i.c)
DLL
IACom.dll

См. также раздел

IAnalysisWarnings

AnalysisWarningCode

Справочник по анализу рукописного ввода