Método IInkAnalyzer::GetRootNode
Obtém o IContextNode raiz da árvore de contexto do objeto IInkAnalyzer .
Sintaxe
HRESULT GetRootNode(
[out] IContextNode **ppRootNode
);
Parâmetros
-
ppRootNode [out]
-
O IContextNode raiz da árvore de contexto do objeto IInkAnalyzer .
Valor retornado
Para obter uma descrição dos valores retornados, consulte Classes e interfaces – Análise de tinta.
Comentários
Cuidado
Para evitar uma perda de memória, chame IUnknown::Release no ppRootNode quando você não precisar mais usar o nó raiz.
O IInkAnalyzer mantém uma árvore de objetos IContextNode . Esses objetos contêm a entrada para análise e os resultados da análise. Quando os traços são inicialmente adicionados ao IInkAnalyzer, o IInkAnalyzer os atribui a um IContextNode do tipo UnclassifiedInk (consulte IContextNode::GetType e tipos de nó de contexto). Depois que os traços são analisados, o IInkAnalyzer os atribui a objetos IContextNode apropriados na árvore. Para obter mais informações sobre como usar o IInkAnalyzer para analisar a tinta, consulte Visão geral da análise de tinta.
Exemplos
O exemplo a seguir mostra um método que orienta a árvore de resultados IContextNode do analisador de tinta. Se o IInkAnlyzer não estiver executando a análise de tinta no momento, o método fará o seguinte.
- Obtém a cadeia de caracteres de reconhecimento superior.
- Obtém o nó raiz do analisador de tinta.
- Chama um método auxiliar,
ExploreContextNode
, para examinar o nó raiz e seus nós filho.
// 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;
}
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 |
|