IInkAnalyzer::GetRootNode, méthode
Obtient la racine IContextNode de l’arborescence de contexte de l’objet IInkAnalyzer .
Syntaxe
HRESULT GetRootNode(
[out] IContextNode **ppRootNode
);
Paramètres
-
ppRootNode [out]
-
IContextNode racine de l’arborescence de contexte de l’objet IInkAnalyzer.
Valeur retournée
Pour obtenir une description des valeurs renvoyées, consultez Classes et interfaces - Analyse de l’entrée manuscrite.
Notes
Attention
Pour éviter une fuite de mémoire, appelez IUnknown::Release sur ppRootNode lorsque vous n’avez plus besoin d’utiliser le nœud racine.
IInkAnalyzer gère une arborescence d’objets IContextNode. Ces objets contiennent à la fois l’entrée pour l’analyse et les résultats de l’analyse. Lorsque des traits sont initialement ajoutés à IInkAnalyzer, IInkAnalyzer les affecte à un IContextNode de type UnclassifiedInk (voir Types de nœudsIContextNode::GetType et Context). Une fois les traits analysés, IInkAnalyzer les affecte aux objets IContextNode appropriés dans l’arborescence. Pour plus d’informations sur l’utilisation d’IInkAnalyzer pour analyser l’entrée manuscrite, consultez Vue d’ensemble de l’analyse d’entrée manuscrite.
Exemples
L’exemple suivant montre une méthode qui guide l’arborescence des résultats IContextNode de l’analyseur d’encre. Si IInkAnlyzer n’effectue pas actuellement d’analyse d’entrée manuscrite, la méthode effectue les opérations suivantes.
- Obtient la chaîne de reconnaissance supérieure.
- Obtient le nœud racine de l’analyseur d’encre.
- Appelle une méthode d’assistance,
ExploreContextNode
, pour examiner le nœud racine et ses nœuds enfants.
// 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;
}
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows XP Édition Tablette PC [applications de bureau uniquement] |
Serveur minimal pris en charge |
Aucun pris en charge |
En-tête |
|
DLL |
|