Compartilhar via


estrutura POINTER_INFO (winuser.h)

Contém informações básicas de ponteiro comuns a todos os tipos de ponteiro. Os aplicativos podem recuperar essas informações usando as funções GetPointerInfo, GetPointerFrameInfo, GetPointerInfoHistory e GetPointerFrameInfoHistory .

Sintaxe

typedef struct tagPOINTER_INFO {
  POINTER_INPUT_TYPE         pointerType;
  UINT32                     pointerId;
  UINT32                     frameId;
  POINTER_FLAGS              pointerFlags;
  HANDLE                     sourceDevice;
  HWND                       hwndTarget;
  POINT                      ptPixelLocation;
  POINT                      ptHimetricLocation;
  POINT                      ptPixelLocationRaw;
  POINT                      ptHimetricLocationRaw;
  DWORD                      dwTime;
  UINT32                     historyCount;
  INT32                      InputData;
  DWORD                      dwKeyStates;
  UINT64                     PerformanceCount;
  POINTER_BUTTON_CHANGE_TYPE ButtonChangeType;
} POINTER_INFO;

Membros

pointerType

Tipo: POINTER_INPUT_TYPE

Um valor da enumeração POINTER_INPUT_TYPE que especifica o tipo de ponteiro.

pointerId

Tipo: UINT32

Um identificador que identifica exclusivamente um ponteiro durante seu tempo de vida. Um ponteiro surge quando é detectado pela primeira vez e encerra sua existência quando ele sai do intervalo de detecção. Observe que, se uma entidade física (dedo ou caneta) sair do intervalo de detecção e retornar para ser detectada novamente, ela será tratada como um novo ponteiro e poderá receber um novo identificador de ponteiro.

frameId

Tipo: UINT32

Um identificador comum a vários ponteiros para os quais o dispositivo de origem relatou uma atualização em um único quadro de entrada. Por exemplo, um digitalizador de vários toques no modo paralelo pode relatar as posições de vários contatos por toque em uma única atualização para o sistema.

Observe que o identificador de quadro é atribuído como entrada é relatado ao sistema para todos os ponteiros em todos os dispositivos. Portanto, esse campo pode não conter valores estritamente sequenciais em uma única série de mensagens recebidas por uma janela. No entanto, esse campo conterá o mesmo valor numérico para todas as atualizações de entrada que foram relatadas no mesmo quadro de entrada por um único dispositivo.

pointerFlags

Tipo: POINTER_FLAGS

Pode ser qualquer combinação razoável de sinalizadores das constantes Sinalizadores de Ponteiro .

sourceDevice

Tipo: HANDLE

Manipule para o dispositivo de origem que pode ser usado em chamadas para a API de dispositivo de entrada bruta e a API do dispositivo digitalizador.

hwndTarget

Digite: HWND

Janela para a qual essa mensagem foi direcionada. Se o ponteiro for capturado, implicitamente em virtude de ter feito contato nessa janela ou explicitamente usando a API de captura de ponteiro, essa será a janela de captura. Se o ponteiro for descapturado, essa será a janela sobre a qual o ponteiro estava quando essa mensagem foi gerada.

ptPixelLocation

Tipo: POINT

As coordenadas de tela previstas do ponteiro, em pixels.

O valor previsto baseia-se na posição do ponteiro relatada pelo digitalizador e no movimento do ponteiro. Essa correção pode compensar o atraso visual devido a atrasos inerentes na detecção e processamento do local do ponteiro no digitalizador. Isso é aplicável a ponteiros do tipo PT_TOUCH. Para outros tipos de ponteiro, o valor previsto será o mesmo que o valor não previsto (consulte ptPixelLocationRaw).

ptHimetricLocation

Tipo: POINT

As coordenadas de tela previstas do ponteiro, em unidades HIMETRIC.

O valor previsto baseia-se na posição do ponteiro relatada pelo digitalizador e no movimento do ponteiro. Essa correção pode compensar o atraso visual devido a atrasos inerentes na detecção e processamento do local do ponteiro no digitalizador. Isso é aplicável a ponteiros do tipo PT_TOUCH. Para outros tipos de ponteiro, o valor previsto será o mesmo que o valor não previsto (consulte ptHimetricLocationRaw).

ptPixelLocationRaw

Tipo: POINT

As coordenadas de tela do ponteiro, em pixels. Para obter coordenadas de tela ajustadas, consulte ptPixelLocation.

ptHimetricLocationRaw

Tipo: POINT

As coordenadas de tela do ponteiro, em unidades HIMETRIC. Para obter coordenadas de tela ajustadas, consulte ptHimetricLocation.

dwTime

Tipo: DWORD

0 ou o carimbo de data/hora da mensagem, com base na contagem de tiques do sistema quando a mensagem foi recebida.

O aplicativo pode especificar o carimbo de data/hora de entrada em dwTime ou PerformanceCount. O valor não pode ser mais recente do que a contagem de tiques atual ou o valor de QueryPerformanceCount (QPC) do thread de injeção. Depois que um quadro é injetado com um carimbo de data/hora, todos os quadros subsequentes devem incluir um carimbo de data/hora até que todos os contatos no quadro acessem um estado UP . O valor de carimbo de data/hora personalizado também deve ser fornecido para o primeiro elemento na matriz de contatos. Os valores de carimbo de data/hora após o primeiro elemento são ignorados. O valor de carimbo de data/hora personalizado deve ser incrementado em cada quadro de injeção.

Quando PerformanceCount for especificado, o carimbo de data/hora será convertido na hora atual em resolução de milissegundos após a injeção real. Se um PerformanceCount personalizado resultou na mesma janela .1 milissegundo da injeção anterior, ERROR_NOT_READY é retornado e a injeção não ocorrerá. Embora a injeção não seja invalidada imediatamente pelo erro, a próxima injeção bem-sucedida deve ter um valor PerformanceCount que seja pelo menos 0,1 milissegundo da injeção anteriormente bem-sucedida. Isso também será verdadeiro se dwTime for usado.

Se dwTime e PerformanceCount forem especificados em InjectTouchInput, ERROR_INVALID_PARAMETER será retornado.

InjectTouchInput não pode alternar entre dwTime e PerformanceCount depois que a injeção for iniciada.

Se nenhum dwTime e PerformanceCount forem especificados, InjectTouchInput alocará o carimbo de data/hora com base no tempo da chamada. Se as chamadas InjectTouchInput forem repetidamente menores que 0,1 milissegundo de diferença, ERROR_NOT_READY poderá ser retornado. O erro não invalidará a entrada imediatamente, mas o aplicativo de injeção precisa repetir o mesmo quadro novamente para que a injeção seja bem-sucedida.

historyCount

Tipo: UINT32

Contagem de entradas que foram agrupadas nesta mensagem. Essa contagem corresponde à contagem total de entradas que podem ser retornadas por uma chamada para GetPointerInfoHistory. Se não houver nenhuma união, essa contagem será 1 para a única entrada representada pela mensagem.

InputData

dwKeyStates

Tipo: DWORD

Indica quais teclas modificadoras de teclado foram pressionadas no momento em que a entrada foi gerada. Pode ser zero ou uma combinação dos valores a seguir do Estado da Chave do Modificador.

POINTER_MOD_SHIFT – uma tecla SHIFT foi pressionada.

POINTER_MOD_CTRL – uma tecla CTRL foi pressionada.

Use GetKeyState.

PerformanceCount

Tipo: UINT64

O valor do contador de desempenho de alta resolução quando a mensagem de ponteiro foi recebida (alternativa de alta precisão e 64 bits para dwTime). O valor pode ser calibrado quando o hardware do digitalizador de toque dá suporte às informações de carimbo de data/hora de verificação em seu relatório de entrada.

ButtonChangeType

Tipo: POINTER_BUTTON_CHANGE_TYPE

Um valor da enumeração POINTER_BUTTON_CHANGE_TYPE que especifica a alteração no estado do botão entre essa entrada e a entrada anterior.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Cabeçalho winuser.h (inclua Windows.h)

Confira também

Estruturas