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) |