Interface IContextNode
Representa um nó em uma árvore de objetos que são criados como parte da análise de tinta.
Membros
A interface IContextNode herda da interface IUnknown . IContextNode também tem estes tipos de membros:
Métodos
A interface IContextNode tem esses métodos.
Método | Descrição |
---|---|
AddContextLink | Adiciona um novo IContextLink à coleção de link de contexto do objeto IContextNode . |
Addpropertydata | Adiciona uma parte dos dados específicos do aplicativo. |
Confirmar | Modifica o tipo de confirmação, que controla o que o objeto IInkAnalyzer pode alterar sobre o IContextNode. |
ContainsPropertyData | Determina se o objeto IContextNode contém dados armazenados no identificador especificado. |
CreatePartiallyPopulatedSubNode | Cria um objeto IContextNode filho que contém apenas informações sobre tipo, identificador e local. |
CreateSubNode | Cria um novo objeto IContextNode filho. |
DeleteContextLink | Exclui um objeto IContextLink da coleção de links do objeto IContextNode . |
DeleteSubNode | Remove um IContextNode filho. |
GetContextLinks | Recupera uma coleção de objetos IContextLink que representa relações com outros objetos IContextNode . |
Getid | Recupera o identificador do objeto IContextNode . |
GetLocation | Recupera a posição e o tamanho do objeto IContextNode . |
Getparentnode | Recupera o nó pai desse IContextNode na árvore de nós de contexto. |
GetPartiallyPopulated | Recupera o valor que indica se um objeto IContextNode é parcialmente preenchido ou totalmente preenchido. |
Getpropertydata | Recupera dados específicos do aplicativo ou outros dados de propriedade dado o identificador especificado. |
GetPropertyDataIds | Recupera os identificadores para os quais há dados de propriedade. |
GetStrokeCount | Recupera o número de traços associados ao objeto IContextNode . |
GetStrokeId | Recupera o identificador de traço para o traço referenciado por um valor de índice dentro do objeto IContextNode . |
GetStrokeIds | Recupera uma matriz de identificadores para os traços dentro do objeto IContextNode . |
GetStrokePacketDataById | Recupera uma matriz que contém os dados da propriedade do pacote para o traço especificado. |
GetStrokePacketDescriptionById | Recupera uma matriz que contém os identificadores de propriedade do pacote para o traço especificado. |
GetSubNodes | Recupera os nós filho diretos do objeto IContextNode . |
Gettype | Recupera o tipo do objeto IContextNode . |
GetTypeName | Recupera um nome de tipo legível por humanos deste IContextNode. |
IsConfirmed | Recupera um valor que indica se o objeto IContextNode foi confirmado.
IInkAnalyzer não pode alterar o tipo de nó e os traços associados para objetos IContextNode confirmados. |
LoadPropertiesData | Recria os dados de propriedade interna e específicos do aplicativo para uma matriz de bytes que foi criada anteriormente com IContextNode::SavePropertiesData. |
MoveSubNodeToPosition | Reordena um objeto IContextNode filho especificado para o índice especificado. |
RemovePropertyData | Remove uma parte dos dados específicos do aplicativo. |
Reparent | Move esse objeto IContextNode da coleção de subnós do nó de contexto pai para a coleção de subnós do nó de contexto especificado. |
ReparentStrokeByIdToNode | Move dados de traço desse IContextNode para o IContextNode especificado. |
SavePropertiesData | Recupera uma matriz de bytes que contém os dados de propriedade interna e específicos do aplicativo para esse IContextNode. |
Setlocation | Atualizações a posição e o tamanho desse IContextNode. |
SetPartiallyPopulated | Modifica o valor que indica se esse IContextNode é parcial ou totalmente preenchido. |
SetStrokes | Associa os traços especificados a este IContextNode. |
Comentários
Os tipos de nós são descritos nas constantes Tipos de Nó de Contexto .
Exemplos
O exemplo a seguir mostra um método que examina um IContextNode; o método faz o seguinte:
- Obtém o tipo do nó de contexto. Se o nó de contexto for uma tinta não classificada, uma dica de análise ou um nó de reconhecedor personalizado, ele chamará um método auxiliar para examinar propriedades específicas do tipo de nó.
- Se o nó tiver subnós, ele examinará cada subnó chamando a si mesmo.
- Se o nó for um nó folha de tinta, ele examinará os dados de traço do nó chamando um método auxiliar.
A API Ihe InkAnalysis permite que você crie um nó de linha que contém palavras à tinta e palavras de texto. No entanto, o analisador ignorará esses nós mistos e os tratará como nós estrangeiros. Isso afetará a precisão de análise da detecção de anotações de tinta quando o usuário final gravar nesse nó misto ou ao redor dele.
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 | 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 |
|