IInkAnalyzer::BackgroundAnalyze-Methode
Führt eine asynchrone Freihandanalyse aus.
HRESULT BackgroundAnalyze();
Diese Methode hat keine Parameter.
Eine Beschreibung der Rückgabewerte finden Sie unter Klassen und Schnittstellen – Freihandanalyse.
Wenn diese Methode aufgerufen wird, führt IInkAnalyzer die Freihandanalyse für einen Hintergrundthread aus.
Diese Methode gibt S_FALSE zurück und startet unter den folgenden Umständen keinen neuen Hintergrundanalysevorgang.
- Der IInkAnalyzer führt derzeit eine Hintergrundanalyse durch.
- die modifiziert Region (siehe IInkAnalyzer::GetDirtyRegion-Methode) stellt einen leeren Bereich dar.
Der IInkAnalyzer analysiert freihand in seinem modifiziert Bereich während eines Aufrufs der IInkAnalyzer::Analyze-Methode oder der IInkAnalyzer::BackgroundAnalyze-Methode. Der IInkAnalyzer kann den Analysevorgang jedoch auf benachbarte Regionen erweitern.
Diese Methode legt den modifiziert Bereich auf einen leeren Bereich fest.
Wenn dem IInkAnalyzer nach dem Aufruf der IInkAnalyzer::BackgroundAnalyze-Methode Strichdaten hinzugefügt wurden, kann der IInkAnalyzer den modifiziert Bereich während der Abstimmungsphase der Freihandanalyse aktualisieren.
Die Einstellung für Analysemodi (siehe IInkAnalyzer::GetAnalysisModes-Methode) gibt an, wie die IInkAnalyzer-Hintergrundanalyse ausführt. Weitere Informationen zur Freihandanalyse finden Sie unter Übersicht über die Freihandanalyse.
Diese Methode gibt unter den folgenden Umständen einen Fehlercode zurück.
- Ihre Anwendung hat den AnalysisModes-WertAnalysisModes_IntermediateResults im IInkAnalyzer festgelegt (siehe IInkAnalyzer::SetAnalysisModes-Methode) und behandelt das ereignis _IAnalysisEvents::IntermediateResults nicht.
- Ihre Anwendung hat den AnalysisModes-WertAnalysisModes_AutomaticReconciliation im IInkAnalyzer gelöscht (siehe IInkAnalyzer::SetAnalysisModes-Methode) und behandelt das ereignis _IAnalysisEvents::ReadyToReconcile nicht.
- Ihre Anwendung behandelt das ereignis _IAnalysisEvents::Results nicht.
- Ihre Anwendung behandelt das ereignis _IAnalysisEvents::UpdateStrokesCache nicht.
Im folgenden Beispiel wird der modifiziert Bereich des Freihandanalysetools überprüft, und dann wird die Freihandanalyse im Hintergrund initiiert, wenn der modifiziert Bereich nicht leer ist.
// Check that the ink analyzer's dirty region is not empty.
IAnalysisRegion *pDirtyRegion;
hr = this->m_spIInkAnalyzer->GetDirtyRegion(&pDirtyRegion);
if (SUCCEEDED(hr))
{
VARIANT_BOOL bIsEmpty;
hr = pDirtyRegion->IsEmpty(&bIsEmpty);
if (SUCCEEDED(hr))
{
if (!bIsEmpty)
{
// Insert code that prepares the application for background
// ink analysis here.
// Start background ink analysis. The _IAnalysisEvents::Results
// event signals when background ink analysis is complete.
hr = this->m_spIInkAnalyzer->BackgroundAnalyze();
}
}
}
// Free the memory for the dirty region.
if (pDirtyRegion != NULL)
{
pDirtyRegion->Release();
}
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows XP Tablet PC Edition [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Nicht unterstützt |
Header |
|
DLL |
|