IAnalysisWarning インターフェイス

インク分析操作中に発生する警告またはエラーを表します。

メンバー

IAnalysisWarning インターフェイスは、IUnknown インターフェイスから継承されます。 IAnalysisWarning には、次の種類のメンバーもあります。

メソッド

IAnalysisWarning インターフェイスには、これらのメソッドがあります。

メソッド 説明
GetBackgroundError エラーが発生した場合のバックグラウンド インク分析操作のエラー コードを取得します。
GetHint この警告の原因となった分析ヒントを取得します
GetNodeIds この警告に関連付けられている関連するコンテキスト ノードの識別子を取得します。
GetWarningCode AnalysisWarningCode 列挙を使用して発生した警告の種類を取得します。

解説

発生する可能性がある警告の種類は、 AnalysisWarningCode 列挙体によって記述されます。 多くの場合、IInkAnalyzer が使用している IInkAnalysisRecognizer でサポートされていない機能を使用しようとすると、警告が発生します。

一部の警告は、 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 [デスクトップ アプリのみ]
サポートされている最小のサーバー
サポートなし
Header
IACom.h (IACom_i.c も必要)
[DLL]
IACom.dll

関連項目

IAnalysisWarnings

AnalysisWarningCode

インク分析リファレンス