Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Representa un nodo de un árbol de objetos creados como parte del análisis de entrada de lápiz.
Miembros
La interfaz IContextNode hereda de la interfaz IUnknown . IContextNode también tiene estos tipos de miembros:
Métodos
La interfaz IContextNode tiene estos métodos.
| Método | Descripción |
|---|---|
| AddContextLink | Agrega un nuevo IContextLink a la colección de vínculos de contexto del objeto IContextNode . |
| AddPropertyData | Agrega un fragmento de datos específicos de la aplicación. |
| Confirmar | Modifica el tipo de confirmación, que controla lo que el objeto IInkAnalyzer puede cambiar sobre IContextNode. |
| ContainsPropertyData | Determina si el objeto IContextNode contiene datos almacenados en el identificador especificado. |
| CreatePartiallyPopulatedSubNode | Crea un objeto IContextNode secundario que contiene solo información sobre el tipo, el identificador y la ubicación. |
| CreateSubNode | Crea un nuevo objeto IContextNode secundario. |
| DeleteContextLink | Elimina un objeto IContextLink de la colección de vínculos del objeto IContextNode . |
| DeleteSubNode | Quita un IContextNode secundario. |
| GetContextLinks | Recupera una colección de objetos IContextLink que representa las relaciones con otros objetos IContextNode . |
| GetId | Recupera el identificador del objeto IContextNode . |
| GetLocation | Recupera la posición y el tamaño del objeto IContextNode . |
| GetParentNode | Recupera el nodo primario de este IContextNode en el árbol de nodos de contexto. |
| GetPartiallyPopulated | Recupera el valor que indica si un objeto IContextNode está parcialmente rellenado o completamente rellenado. |
| GetPropertyData | Recupera datos específicos de la aplicación u otros datos de propiedad según el identificador especificado. |
| GetPropertyDataIds | Recupera los identificadores para los que hay datos de propiedad. |
| GetStrokeCount | Recupera el número de trazos asociados al objeto IContextNode . |
| GetStrokeId | Recupera el identificador de trazo del trazo al que hace referencia un valor de índice dentro del objeto IContextNode . |
| GetStrokeIds | Recupera una matriz de identificadores para los trazos dentro del objeto IContextNode . |
| GetStrokePacketDataById | Recupera una matriz que contiene los datos de propiedad del paquete para el trazo especificado. |
| GetStrokePacketDescriptionById | Recupera una matriz que contiene los identificadores de propiedad de paquete para el trazo especificado. |
| GetSubNodes | Recupera los nodos secundarios directos del objeto IContextNode . |
| Gettype | Recupera el tipo del objeto IContextNode . |
| GetTypeName | Recupera un nombre de tipo legible de este IContextNode. |
| IsConfirmed | Recupera un valor que indica si se confirma el objeto IContextNode .
IInkAnalyzer no puede cambiar el tipo de nodo y los trazos asociados para los objetos IContextNode confirmados. |
| LoadPropertiesData | Vuelve a crear los datos de propiedades internas y específicas de la aplicación para una matriz de bytes que se creó anteriormente con IContextNode::SavePropertiesData. |
| MoveSubNodeToPosition | Reordena un objeto IContextNode secundario especificado en el índice especificado. |
| RemovePropertyData | Quita un fragmento de datos específicos de la aplicación. |
| Reparente | Mueve este objeto IContextNode de la colección de subnodos del nodo de contexto primario a la colección de subnodos del nodo de contexto especificado. |
| ReparentStrokeByIdToNode | Mueve los datos de trazo de este IContextNode al IContextNode especificado. |
| SavePropertiesData | Recupera una matriz de bytes que contiene los datos de propiedad internos y específicos de la aplicación para este IContextNode. |
| SetLocation | Novedades la posición y el tamaño de este IContextNode. |
| SetPartiallyPopulated | Modifica el valor que indica si este IContextNode está rellenado parcialmente o completamente. |
| SetStrokes | Asocia los trazos especificados a este IContextNode. |
Comentarios
Los tipos de nodos se describen en las constantes Tipos de nodo de contexto .
Ejemplos
En el ejemplo siguiente se muestra un método que examina un IContextNode; el método hace lo siguiente:
- Obtiene el tipo del nodo de contexto. Si el nodo de contexto es un nodo de entrada manuscrita, sugerencia de análisis o reconocedor personalizado, llama a un método auxiliar para examinar propiedades específicas del tipo de nodo.
- Si el nodo tiene subnodos, examina cada subnodo llamando a sí mismo.
- Si el nodo es un nodo de hoja de lápiz, examina los datos del trazo del nodo llamando a un método auxiliar.
Ihe InkAnalysis API permite crear un nodo de línea que contenga palabras manuscritas y palabras de texto. Sin embargo, el analizador omitirá estos nodos mixtos y los tratará como nodos externos. Esto afectará a la precisión del análisis de la detección de anotaciones de entrada de lápiz cuando el usuario final escribe en o alrededor de este nodo mixto.
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;
}
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 |
|