IInkAnalyzer::GetRootNode メソッド
IInkAnalyzer オブジェクトのコンテキスト ツリーのルート IContextNode を取得します。
構文
HRESULT GetRootNode(
[out] IContextNode **ppRootNode
);
パラメーター
-
ppRootNode [out]
-
IInkAnalyzer オブジェクトのコンテキスト ツリーのルート IContextNode。
戻り値
戻り値の説明については、「 クラスとインターフェイス - インク分析」を参照してください。
解説
注意事項
メモリ リークを回避するには、ルート ノードを使用する必要がなくなったら、ppRootNode で IUnknown::Release を呼び出します。
IInkAnalyzer は、IContextNode オブジェクトのツリーを保持します。 これらのオブジェクトには、分析のための入力と分析の結果の両方が含まれます。 ストロークが最初 に IInkAnalyzer に追加されると、 IInkAnalyzer は UnclassifiedInk 型の IContextNode にストロークを割り当てます (「 IContextNode::GetType and Context Node Types」を参照)。 ストロークが分析されると、 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 タブレット PC エディション [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
サポートなし |
Header |
|
[DLL] |
|