Share via


estructura POINTER_INFO (winuser.h)

Contiene información básica del puntero común a todos los tipos de puntero. Las aplicaciones pueden recuperar esta información mediante las funciones GetPointerInfo, GetPointerFrameInfo, GetPointerInfoHistory y GetPointerFrameInfoHistory .

Sintaxis

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;

Miembros

pointerType

Tipo: POINTER_INPUT_TYPE

Valor de la enumeración POINTER_INPUT_TYPE que especifica el tipo de puntero.

pointerId

Tipo: UINT32

Identificador que identifica de forma única un puntero durante su vigencia. Un puntero entra en existencia cuando se detecta por primera vez y termina su existencia cuando sale del intervalo de detección. Tenga en cuenta que si una entidad física (dedo o lápiz) sale del intervalo de detección y, a continuación, vuelve a detectarse de nuevo, se trata como un nuevo puntero y se puede asignar un nuevo identificador de puntero.

frameId

Tipo: UINT32

Identificador común a varios punteros para los que el dispositivo de origen notificó una actualización en un solo marco de entrada. Por ejemplo, un digitalizador multitáctil en modo paralelo puede informar de las posiciones de varios contactos táctiles en una sola actualización del sistema.

Tenga en cuenta que el identificador de marco se asigna como entrada al sistema para todos los punteros en todos los dispositivos. Por lo tanto, este campo puede no contener valores estrictamente secuenciales en una sola serie de mensajes que recibe una ventana. Sin embargo, este campo contendrá el mismo valor numérico para todas las actualizaciones de entrada notificadas en el mismo marco de entrada por un único dispositivo.

pointerFlags

Tipo: POINTER_FLAGS

Puede ser cualquier combinación razonable de marcas de las constantes de marcas de puntero.

sourceDevice

Tipo: HANDLE

Identificador del dispositivo de origen que se puede usar en llamadas a la API de dispositivo de entrada sin procesar y a la API del dispositivo digitalizador.

hwndTarget

Tipo: HWND

Ventana a la que se ha dirigido este mensaje. Si el puntero se captura, ya sea implícitamente en virtud de haber hecho contacto sobre esta ventana o usar explícitamente la API de captura de puntero, se trata de la ventana de captura. Si el puntero no está encapturado, se trata de la ventana en la que se generó el puntero cuando se generó este mensaje.

ptPixelLocation

Tipo: POINT

Coordenadas de pantalla previstas del puntero, en píxeles.

El valor previsto se basa en la posición del puntero notificada por el digitalizador y el movimiento del puntero. Esta corrección puede compensar el retraso visual debido a retrasos inherentes en la detección y el procesamiento de la ubicación del puntero en el digitalizador. Esto es aplicable a punteros de tipo PT_TOUCH. Para otros tipos de puntero, el valor previsto será el mismo que el valor no previsto (consulte ptPixelLocationRaw).

ptHimetricLocation

Tipo: POINT

Coordenadas de pantalla previstas del puntero, en unidades HIMETRIC.

El valor previsto se basa en la posición del puntero notificada por el digitalizador y el movimiento del puntero. Esta corrección puede compensar el retraso visual debido a retrasos inherentes en la detección y el procesamiento de la ubicación del puntero en el digitalizador. Esto es aplicable a punteros de tipo PT_TOUCH. Para otros tipos de puntero, el valor previsto será el mismo que el valor no previsto (consulte ptHimetricLocationRaw).

ptPixelLocationRaw

Tipo: POINT

Coordenadas de pantalla del puntero, en píxeles. Para obtener coordenadas de pantalla ajustadas, consulte ptPixelLocation.

ptHimetricLocationRaw

Tipo: POINT

Coordenadas de pantalla del puntero, en unidades HIMETRIC. Para obtener coordenadas de pantalla ajustadas, consulte ptHimetricLocation.

dwTime

Tipo: DWORD

0 o la marca de tiempo del mensaje, según el recuento de tics del sistema cuando se recibió el mensaje.

La aplicación puede especificar la marca de tiempo de entrada en dwTime o PerformanceCount. El valor no puede ser más reciente que el recuento de tics actual o el valor QueryPerformanceCount (QPC) del subproceso de inyección. Una vez que se inserta un fotograma con una marca de tiempo, todos los fotogramas posteriores deben incluir una marca de tiempo hasta que todos los contactos del marco vayan a un estado UP . El valor de marca de tiempo personalizado también debe proporcionarse para el primer elemento de la matriz de contactos. Los valores de marca de tiempo después del primer elemento se omiten. El valor de marca de tiempo personalizado debe incrementarse en cada fotograma de inyección.

Cuando se especifica PerformanceCount , la marca de tiempo se convertirá a la hora actual en resolución .1 milisegundos tras la inyección real. Si un performanceCount personalizado dio lugar a la misma ventana de milisegundos de la inyección anterior, se devuelve ERROR_NOT_READY y no se producirá la inyección. Aunque la inyección no se invalidará inmediatamente por el error, la siguiente inyección correcta debe tener un valor PerformanceCount que tenga al menos 0,1 milisegundos de la inyección correcta anteriormente. Esto también es true si se usa dwTime .

Si se especifican dwTime y PerformanceCount en InjectTouchInput, se devuelve ERROR_INVALID_PARAMETER.

InjectTouchInput no puede cambiar entre dwTime y PerformanceCount una vez iniciada la inyección.

Si no se especifican dwTime y PerformanceCount , InjectTouchInput asigna la marca de tiempo en función del tiempo de la llamada. Si las llamadas a InjectTouchInput son repetidamente inferiores a 0,1 milisegundos, es posible que se devuelva ERROR_NOT_READY. El error no invalidará la entrada inmediatamente, pero la aplicación de inyección debe volver a intentar el mismo fotograma para que la inyección se realice correctamente.

historyCount

Tipo: UINT32

Recuento de entradas que se fusionaron en este mensaje. Este recuento coincide con el recuento total de entradas que se pueden devolver mediante una llamada a GetPointerInfoHistory. Si no se ha producido ninguna fusión, este recuento es 1 para la entrada única representada por el mensaje.

InputData

dwKeyStates

Tipo: DWORD

Indica qué teclas modificadoras de teclado se presionaron en el momento en que se generó la entrada. Puede ser cero o una combinación de los siguientes valores de Estado de clave modificador.

POINTER_MOD_SHIFT: se presionó una tecla MAYÚS.

POINTER_MOD_CTRL: se ha presionado una tecla CTRL.

Use GetKeyState.

PerformanceCount

Tipo: UINT64

Valor del contador de rendimiento de alta resolución cuando se recibió el mensaje de puntero (alternativa de alta precisión y 64 bits a dwTime). El valor se puede calibrar cuando el hardware del digitalizador táctil admite la información de marca de tiempo del examen en su informe de entrada.

ButtonChangeType

Tipo: POINTER_BUTTON_CHANGE_TYPE

Valor de la enumeración POINTER_BUTTON_CHANGE_TYPE que especifica el cambio en el estado del botón entre esta entrada y la entrada anterior.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Encabezado winuser.h (incluir Windows.h)

Consulte también

Estructuras