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