Compartir a través de


Función GetPointerInputTransform (winuser.h)

Obtiene una o varias transformaciones para las coordenadas de información de puntero asociadas al mensaje actual.

Sintaxis

BOOL GetPointerInputTransform(
  [in]  UINT32          pointerId,
  [in]  UINT32          historyCount,
  [out] INPUT_TRANSFORM *inputTransform
);

Parámetros

[in] pointerId

Identificador del puntero para el que se va a recuperar información.

[in] historyCount

Número de estructuras de INPUT_TRANSFORM a las que inputTransform puede apuntar.

Este valor no debe ser menor que 1 y no mayor que el valor especificado en historyCount de la estructura de POINTER_INFO devuelta por GetPointerInfo, GetPointerTouchInfo o GetPointerPenInfo (para una sola transformación de entrada) o GetPointerInfoHistory, GetPointerTouchInfoHistory o GetPointerPenInfoHistory (para una matriz de transformaciones de entrada).

Si GetPointerInputTransform se realiza correctamente, inputTransform se actualiza con el recuento total de estructuras disponibles. El recuento total de estructuras disponibles es el mismo que el campo historyCount de la estructura POINTER_INFO .

[out] inputTransform

Dirección de una matriz de estructuras de INPUT_TRANSFORM para recibir la información de transformación. Este parámetro no puede ser NULL.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Normalmente, un consumidor de mensajes de entrada de puntero usa ScreenToClient o MapWindowPoints para convertir las coordenadas de pantalla en coordenadas de cliente.

Si se aplica una transformación en el consumidor de mensajes, use GetPointerInputTransform para recuperar la transformación en el consumidor de mensajes en el momento en que se produjo la entrada. A continuación, se puede usar el inverso de esta transformación para convertir las coordenadas de entrada de puntero desde coordenadas de pantalla a las coordenadas de cliente del consumidor de mensajes.

Si una transformación de entrada no está asociada a la entrada, se produce un error en la función GetPointerInputTransform con el último error establecido en ERROR_NO_DATA. Use ScreenToClient o MapWindowPoints en su lugar.

La transformación de entrada no respeta ningún valor de diseño de derecha a izquierda en el destino de entrada. Una aplicación que requiere coordenadas ajustadas para el diseño de derecha a izquierda debe realizar la creación de reflejo de derecha a izquierda o combinar una transformación de creación de reflejo adecuada con la transformación de entrada.

La información devuelta por GetPointerInputTransform está asociada al mensaje de puntero más reciente recuperado por el subproceso que realiza la llamada. Cuando el subproceso de llamada recupera el siguiente mensaje, es posible que la información asociada al mensaje anterior ya no esté disponible.

Si una aplicación llama a GetPointerInfo, puede llamar a GetPointerInputTransform con el mismo identificador de puntero y un único búfer de salida INPUT_TRANSFORM para obtener la transformación de entrada asociada a los datos.

Si una aplicación llama a GetPointerFrameInfo, puede llamar a GetPointerInputTransform con el mismo identificador de puntero y un único búfer de salida INPUT_TRANSFORM para obtener la transformación de entrada asociada a los datos. La misma transformación de entrada se aplica a todo el marco.

Si una aplicación llama a GetPointerInfoHistory, puede llamar a GetPointerInputTransform con el mismo identificador de puntero y un búfer de salida para contener las entradas recuperadas mediante GetPointerInfoHistory. Cada transformación de entrada de la matriz devuelta se puede usar con la entrada correspondiente en la matriz devuelta por GetPointerInfoHistory.

Si una aplicación llama a GetPointerFrameInfoHistory, puede llamar a GetPointerInputTransform con el mismo identificador de puntero y un búfer de salida para contener las entradas recuperadas mediante GetPointerInfoHistory. Cada transformación de entrada de la matriz devuelta se puede usar con el marco correspondiente de la matriz devuelta por GetPointerFrameInfoHistory, con la misma transformación de entrada que se aplica a todo el fotograma.

Si la información asociada al mensaje ya no está disponible, esta función produce un error con el último error establecido en ERROR_INVALID_PARAMETER.

Si historyCount contiene un valor mayor que el campo historyCount de la estructura POINTER_INFO devuelta por GetPointerInfo (o la primera estructura de POINTER_INFO de la matriz devuelta por GetPointerInfoHistory), la función produce un error con el último error establecido en ERROR_INVALID_PARAMETER.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8.1 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluya Windows.h)
Library User32.lib
Archivo DLL User32.dll

Vea también

Funciones

INPUT_TRANSFORM