Interfaccia IContextNode
Rappresenta un nodo in un albero di oggetti creati come parte dell'analisi dell'input penna.
Membri
L'interfaccia IContextNode eredita dall'interfaccia IUnknown . IContextNode include anche questi tipi di membri:
Metodi
L'interfaccia IContextNode include questi metodi.
Metodo | Descrizione |
---|---|
AddContextLink | Aggiunge un nuovo IContextLink all'insieme di collegamenti di contesto dell'oggetto IContextNode . |
AddPropertyData | Aggiunge una parte di dati specifici dell'applicazione. |
Confirm | Modifica il tipo di conferma, che controlla quale oggetto IInkAnalyzer può modificare sull'oggetto IContextNode. |
ContienePropertyData | Determina se l'oggetto IContextNode contiene dati archiviati nell'identificatore specificato. |
CreatePartiallyPopulatedSubNode | Crea un oggetto IContextNode figlio che contiene solo informazioni su tipo, identificatore e posizione. |
CreateSubNode | Crea un nuovo oggetto IContextNode figlio. |
DeleteContextLink | Elimina un oggetto IContextLink dall'insieme di collegamenti dell'oggetto IContextNode . |
DeleteSubNode | Rimuove un IContextNode figlio. |
GetContextLinks | Recupera un insieme di oggetti IContextLink che rappresenta le relazioni con altri oggetti IContextNode . |
GetId | Recupera l'identificatore per l'oggetto IContextNode . |
GetLocation | Recupera la posizione e le dimensioni dell'oggetto IContextNode . |
GetParentNode | Recupera il nodo padre di questo IContextNode nell'albero dei nodi del contesto. |
GetPartiallyPopulated | Recupera il valore che indica se un oggetto IContextNode è parzialmente popolato o completamente popolato. |
GetPropertyData | Recupera i dati specifici dell'applicazione o altri dati delle proprietà in base all'identificatore specificato. |
GetPropertyDataIds | Recupera gli identificatori per i quali sono presenti dati delle proprietà. |
GetStrokeCount | Recupera il numero di tratti associati all'oggetto IContextNode . |
GetStrokeId | Recupera l'identificatore del tratto per il tratto a cui fa riferimento un valore di indice all'interno dell'oggetto IContextNode . |
GetStrokeIds | Recupera una matrice di identificatori per i tratti all'interno dell'oggetto IContextNode . |
GetStrokePacketDataById | Recupera una matrice contenente i dati delle proprietà del pacchetto per il tratto specificato. |
GetStrokePacketDescriptionById | Recupera una matrice contenente gli identificatori di proprietà del pacchetto per il tratto specificato. |
GetSubNodes | Recupera i nodi figlio diretti dell'oggetto IContextNode . |
GetType | Recupera il tipo dell'oggetto IContextNode . |
GetTypeName | Recupera un nome di tipo leggibile dall'utente di questo IContextNode. |
Is Confirm | Recupera un valore che indica se l'oggetto IContextNode viene confermato.
IInkAnalyzer non può modificare il tipo di nodo e i tratti associati per gli oggetti IContextNode confermati. |
LoadPropertiesData | Ricrea i dati delle proprietà interne e specifici dell'applicazione per una matrice di byte creati in precedenza con IContextNode::SavePropertiesData. |
MoveSubNodeToPosition | Riordina un oggetto IContextNode figlio specificato nell'indice specificato. |
RemovePropertyData | Rimuove una parte di dati specifici dell'applicazione. |
Reparent | Sposta questo oggetto IContextNode dall'insieme sottonodi del nodo del contesto padre all'insieme sottonodi del nodo di contesto specificato. |
ReparentStrokeByIdToNode | Sposta i dati del tratto da questo IContextNode all'oggetto IContextNode specificato. |
SavePropertiesData | Recupera una matrice di byte che contiene i dati delle proprietà interne e specifici dell'applicazione per questo IContextNode. |
SetLocation | Aggiornamenti la posizione e le dimensioni di questo IContextNode. |
SetPartiallyPopulated | Modifica il valore che indica se questo IContextNode è parzialmente o completamente popolato. |
SetStrokes | Associa i tratti specificati a questo IContextNode. |
Commenti
I tipi di nodi sono descritti nelle costanti Tipi di nodo di contesto .
Esempio
Nell'esempio seguente viene illustrato un metodo che esamina un IContextNode; il metodo esegue le operazioni seguenti:
- Ottiene il tipo del nodo di contesto. Se il nodo di contesto è un nodo input penna non classificato, hint di analisi o nodo riconoscimento personalizzato, chiama un metodo helper per esaminare proprietà specifiche del tipo di nodo.
- Se il nodo ha sottonoti, esamina ogni sottonodeo chiamando se stesso.
- Se il nodo è un nodo foglia penna, esamina i dati del tratto per il nodo chiamando un metodo helper.
L'API InkAnalysis consente di creare un nodo di riga contenente parole penna e parole di testo. Tuttavia, il parser ignora questi nodi misti e li considera come nodi stranieri. Ciò avrà effetto sull'accuratezza dell'analisi del rilevamento delle annotazioni dell'input penna quando l'utente finale scrive in o intorno a questo nodo misto.
HRESULT CMyClass::ExploreContextNode(
IContextNode *pContextNode)
{
// Check for certain types of context nodes.
GUID ContextNodeType;
HRESULT hr = pContextNode->GetType(&ContextNodeType);
if (SUCCEEDED(hr))
{
if (IsEqualGUID(GUID_CNT_UNCLASSIFIEDINK, ContextNodeType))
{
// Call a helper method that explores unclassified ink nodes.
hr = this->ExploreUnclassifiedInkNode(pContextNode);
}
else if (IsEqualGUID(GUID_CNT_ANALYSISHINT, ContextNodeType))
{
// Call a helper method that explores analysis hint nodes.
hr = this->ExploreAnalysisHintNode(pContextNode);
}
else if (IsEqualGUID(GUID_CNT_CUSTOMRECOGNIZER, ContextNodeType))
{
// Call a helper method that explores custom recognizer nodes.
hr = this->ExploreCustomRecognizerNode(pContextNode);
}
if (SUCCEEDED(hr))
{
// Check if this node is a branch or a leaf node.
IContextNodes *pSubNodes = NULL;
hr = pContextNode->GetSubNodes(&pSubNodes);
if (SUCCEEDED(hr))
{
ULONG ulSubNodeCount;
hr = pSubNodes->GetCount(&ulSubNodeCount);
if (SUCCEEDED(hr))
{
if (ulSubNodeCount > 0)
{
// This node has child nodes; explore each child node.
IContextNode *pSubNode = NULL;
for (ULONG index=0; index<ulSubNodeCount; index++)
{
hr = pSubNodes->GetContextNode(index, &pSubNode);
if (SUCCEEDED(hr))
{
// Recursive call to explore the child node of this
// context node.
hr = this->ExploreContextNode(pSubNode);
}
// Release this reference to the child context node.
if (pSubNode != NULL)
{
pSubNode->Release();
pSubNode = NULL;
}
if (FAILED(hr))
{
break;
}
}
}
else
{
// This is a leaf node. Check if it contains stroke data.
ULONG ulStrokeCount;
hr = pContextNode->GetStrokeCount(&ulStrokeCount);
if (SUCCEEDED(hr))
{
if (ulStrokeCount > 0)
{
// This node is an ink leaf node; call helper
// method that explores available stroke data.
hr = this->ExploreNodeStrokeData(pContextNode);
}
}
}
}
}
// Release this reference to the subnodes collection.
if (pSubNodes != NULL)
{
pSubNodes->Release();
pSubNodes = NULL;
}
}
}
return hr;
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows XP Tablet PC Edition [solo app desktop] |
Server minimo supportato |
Nessuno supportato |
Intestazione |
|
DLL |
|