Método IInkAnalyzer::GetRootNode
Obtiene el IContextNode raíz del árbol de contexto del objeto IInkAnalyzer .
Sintaxis
HRESULT GetRootNode(
[out] IContextNode **ppRootNode
);
Parámetros
-
ppRootNode [out]
-
IContextNode raíz del árbol de contexto del objeto IInkAnalyzer.
Valor devuelto
Para obtener una descripción de los valores devueltos, vea Clases e interfaces : análisis de entrada de lápiz.
Observaciones
Precaución
Para evitar una pérdida de memoria, llame a IUnknown::Release en ppRootNode cuando ya no necesite usar el nodo raíz.
IInkAnalyzer mantiene un árbol de objetos IContextNode. Estos objetos contienen entradas para el análisis y los resultados del análisis. Cuando los trazos se agregan inicialmente al IInkAnalyzer, el IInkAnalyzer los asigna a un IContextNode de tipo UnclassifiedInk (vea IContextNode::GetType y Context Node Types). Una vez analizados los trazos, IInkAnalyzer los asigna a los objetos IContextNode adecuados del árbol. Para obtener más información sobre el uso de IInkAnalyzer para analizar la entrada de lápiz, vea Ink Analysis Overview.
Ejemplos
En el ejemplo siguiente se muestra un método que recorre el árbol de resultados IContextNode del analizador de tinta. Si el IInkAnlyzer no realiza actualmente el análisis de entrada de lápiz, el método hace lo siguiente.
- Obtiene la cadena de reconocimiento superior.
- Obtiene el nodo raíz del analizador de entrada de lápiz.
- Llama a un método auxiliar,
ExploreContextNode
, para examinar el nodo raíz y sus nodos secundarios.
// 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 | Value |
---|---|
Cliente mínimo compatible |
Windows XP Tablet PC Edition [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
No se admite ninguno |
Encabezado |
|
Archivo DLL |
|