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
IACom.h (também requer IACom_i.c)
DLL
IACom.dll

Confira também

IContextNodes

Tipos de nó de contexto

IInkAnalyzer

Referência de análise de tinta