Método IInkAnalyzer::BackgroundAnalyze
Executa a análise de tinta assíncrona.
Sintaxe
HRESULT BackgroundAnalyze();
Parâmetros
Esse método não tem parâmetros.
Valor retornado
Para obter uma descrição dos valores retornados, consulte Classes e interfaces – Análise de tinta.
Comentários
Quando esse método é chamado, o IInkAnalyzer executa a análise de tinta em um thread em segundo plano.
Esse método retorna S_FALSE e não inicia uma nova operação de análise em segundo plano nas circunstâncias a seguir.
- O IInkAnalyzer está executando a análise em segundo plano no momento.
- a região sujo (consulte Método IInkAnalyzer::GetDirtyRegion) representa uma área vazia.
O IInkAnalyzer analisa a tinta em sua região de sujo durante uma chamada para o Método IInkAnalyzer::Analyze ou método IInkAnalyzer::BackgroundAnalyze. No entanto, o IInkAnalyzer pode expandir a operação de análise para incluir regiões vizinhas.
Esse método define a região sujo como uma região vazia.
Se os dados de traço foram adicionados ao IInkAnalyzer após a chamada ao Método IInkAnalyzer::BackgroundAnalyze, o IInkAnalyzer poderá atualizar a região sujo durante a fase de reconciliação da análise de tinta.
A configuração de modos de análise (consulte Método IInkAnalyzer::GetAnalysisModes) especifica como o IInkAnalyzer executa a análise em segundo plano. Para obter mais informações sobre a análise de tinta, consulte Visão geral da análise de tinta.
Esse método retorna um código de erro nas circunstâncias a seguir.
- Seu aplicativo definiu o valor analysismodesAnalysisModes_IntermediateResults no IInkAnalyzer (consulte Método IInkAnalyzer::SetAnalysisModes) e não manipula o evento _IAnalysisEvents::IntermediateResults .
- Seu aplicativo limpou o valor analysismodesAnalysisModes_AutomaticReconciliation no IInkAnalyzer (consulte Método IInkAnalyzer::SetAnalysisModes) e não manipula o evento _IAnalysisEvents::ReadyToReconcile .
- Seu aplicativo não manipula o evento _IAnalysisEvents::Results .
- Seu aplicativo não manipula o evento _IAnalysisEvents::UpdateStrokesCache .
Exemplos
O exemplo a seguir verifica a região de sujo do analisador de tinta e inicia a análise de tinta em segundo plano se a sujo região não estiver vazia.
// 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();
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows XP Tablet PC Edition [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Nenhum compatível |
Cabeçalho |
|
DLL |
|