IInkAnalyzer::GetRootNode 方法
取得IInkAnalyzer物件內容樹狀結構的根ICoNtextNode。
語法
HRESULT GetRootNode(
[out] IContextNode **ppRootNode
);
參數
-
ppRootNode [out]
-
IInkAnalyzer物件內容樹狀結構的根ICoNtextNode。
傳回值
如需傳回值的描述,請參閱 類別和介面 - 筆跡分析。
備註
警告
若要避免記憶體流失,當您不再需要使用根節點時,請在ppRootNode上呼叫IUnknown::Release。
IInkAnalyzer會維護ICoNtextNode物件的樹狀結構。 這些物件包含分析和分析結果的輸入。 一開始將筆劃新增至 IInkAnalyzer時, IInkAnalyzer 會將它們指派給 UnclassifiedInk 類型的 ICoNtextNode (請參閱 ICoNtextNode::GetType 和 內容節點類型) 。 分析筆劃之後, IInkAnalyzer 會將它們指派給樹狀結構中適當的 ICoNtextNode 物件。 如需使用 IInkAnalyzer 分析筆跡的詳細資訊,請參閱 筆跡分析概觀。
範例
下列範例顯示一個方法,會逐步執行筆跡分析器的 ICoNtextNode 結果樹狀結構。 如果 IInkAnlyzer 目前未執行筆跡分析,此方法會執行下列動作。
- 取得頂端辨識字串。
- 取得筆跡分析器的根節點。
- 呼叫協助程式方法
ExploreContextNode
,以檢查根節點及其子節點。
// Helper method that explores the current analysis results of an ink analyzer.
HRESULT CMyClass::ExploreAnalysisResults(
IInkAnalyzer *pInkAnalyzer)
{
// Check that the ink analyzer is not currently analyzing ink.
VARIANT_BOOL bIsAnalyzing;
HRESULT hr = pInkAnalyzer->IsAnalyzing(&bIsAnalyzing);
if (SUCCEEDED(hr))
{
if (bIsAnalyzing)
{
return E_PENDING;
}
// Get the ink analyzer's best-result string.
BSTR recognizedString = NULL;
hr = pInkAnalyzer->GetRecognizedString(&recognizedString);
if (SUCCEEDED(hr))
{
// Insert code that records the ink analyzer's best-result string here.
// Get the ink analyzer's root node.
IContextNode *pRootNode = NULL;
hr = pInkAnalyzer->GetRootNode(&pRootNode);
if (SUCCEEDED(hr))
{
// Call a helper method that recursively explores context
// nodes and their subnodes.
hr = this->ExploreContextNode(pRootNode);
}
// Release this reference to the root node.
if (pRootNode != NULL)
{
pRootNode->Release();
pRootNode = NULL;
}
}
// Free the system resources for the recognized string.
SysFreeString(recognizedString);
}
return hr;
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows XP Tablet PC Edition [僅限傳統型應用程式] |
最低支援的伺服器 |
都不支援 |
標頭 |
|
DLL |
|