IInkAnalyzer::BackgroundAnalyze 方法
執行非同步筆跡分析。
語法
HRESULT BackgroundAnalyze();
參數
這個方法沒有任何參數。
傳回值
如需傳回值的描述,請參閱 類別和介面 - 筆跡分析。
備註
呼叫此方法時, IInkAnalyzer 會在背景執行緒上執行筆跡分析。
此方法會傳回 S_FALSE ,且不會在下列情況下啟動新的背景分析作業。
- IInkAnalyzer目前正在執行背景分析。
- 變更區域 (請參閱 IInkAnalyzer::GetDirtyRegion 方法) 代表空白區域。
IInkAnalyzer會在呼叫IInkAnalyzer::Analyze 方法或 IInkAnalyzer::BackgroundAnalyze 方法期間分析其變更區域內的筆跡。 不過, IInkAnalyzer 可能會展開分析作業以包含鄰近區域。
這個方法會將已變更的區域設定為空白區域。
如果在呼叫IInkAnalyzer::BackgroundAnalyze 方法之後新增筆劃資料至IInkAnalyzer,則 IInkAnalyzer可能會在筆跡分析協調階段更新已變更的區域。
分析模式設定 (請參閱 IInkAnalyzer::GetAnalysisModes 方法) 指定 IInkAnalyzer 執行背景分析的方式。 如需筆跡分析的詳細資訊,請參閱 筆跡分析概觀。
此方法會在下列情況下傳回錯誤碼。
- 您的應用程式已在IInkAnalyzer中設定AnalysisModes值AnalysisModes_IntermediateResults (請參閱IInkAnalyzer::SetAnalysisModes 方法) ,而且不會處理_IAnalysisEvents::IntermediateResults事件。
- 您的應用程式已清除IInkAnalyzer中的AnalysisModes值AnalysisModes_AutomaticReconciliation, (請參閱IInkAnalyzer::SetAnalysisModes 方法) ,而且不會處理_IAnalysisEvents::ReadyToReconcile事件。
- 您的應用程式不會處理 _IAnalysisEvents::Results 事件。
- 您的應用程式不會處理 _IAnalysisEvents::UpdateStrokesCache 事件。
範例
下列範例會檢查筆跡分析器的已變更區域,然後在變更區域不是空白時起始背景筆跡分析。
// 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();
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows XP Tablet PC Edition [僅限傳統型應用程式] |
最低支援的伺服器 |
都不支援 |
標頭 |
|
DLL |
|