IAnalysisStatus-Schnittstelle

Stellt den Status des Ink-Analysevorgangs dar, indem beschrieben wird, ob die Analyse erfolgreich abgeschlossen wurde und ob Warnungen aufgetreten sind.

Member

Die IAnalysisStatus-Schnittstelle erbt von der IUnknown-Schnittstelle. IAnalysisStatus verfügt auch über diese Typen von Membern:

Methoden

Die IAnalysisStatus-Schnittstelle verfügt über diese Methoden.

Methode Beschreibung
GetAppliedChangesRegion Ruft den Bereich des Dokuments ab, der Änderungen entspricht, die in der Kontextknotenstruktur des IInkAnalyzer-Objekts als Ergebnis der Freihandanalyse vorgenommen wurden.
GetWarnings Ruft eine IAnalysisWarnings-Auflistung ab, die alle vom Analysevorgang generierten Fehler und Warnungen beschreibt.
IsSuccessful Ruft eine boolesche Zusammenfassung der Ergebnisse des Analysevorgangs ab.

Beispiele

Das folgende Beispiel zeigt eine Gliederung eines Ereignishandlers für das _ IAnalysisEvents::Results-Ereignis. Der Handler überprüft IAnalysisStatus::IsSuccessful. Wenn der Analysevorgang Warnungen generiert, durchläuft der Handler die Auflistung der IAnalysisWarning-Objekte.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Nur Desktop-Apps der XP Tablet PC Edition []
Unterstützte Mindestversion (Server)
Nicht unterstützt
Header
IACom.h (erfordert auch IACom _ i.c)
DLL
IACom.dll

Weitere Informationen

IInkAnalyzer::Analyze-Methode

IInkAnalyzer::BackgroundAnalyze-Methode

Referenz zur Ink-Analyse