Freigeben über


GetPointerInputTransform-Funktion (winuser.h)

Ruft eine oder mehrere Transformationen für die Zeigerinformationskoordinaten ab, die der aktuellen Nachricht zugeordnet sind.

Syntax

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

Parameter

[in] pointerId

Ein Bezeichner des Zeigers, für den Informationen abgerufen werden sollen.

[in] historyCount

Die Anzahl der INPUT_TRANSFORM Strukturen, auf die inputTransform verweisen kann.

Dieser Wert darf nicht kleiner als 1 sein und darf nicht größer als der wert sein, der in historyCount der POINTER_INFO-Struktur angegeben ist, die von GetPointerInfo, GetPointerTouchInfo oder GetPointerPenInfo (für eine einzelne Eingabetransformation) oder GetPointerInfoHistory, GetPointerTouchInfoHistory oder GetPointerPenInfoHistory (für ein Array von Eingabetransformationen) zurückgegeben wird.

Wenn GetPointerInputTransform erfolgreich ist, wird inputTransform mit der Gesamtanzahl der verfügbaren Strukturen aktualisiert. Die Gesamtanzahl der verfügbaren Strukturen entspricht dem Feld historyCount der POINTER_INFO-Struktur .

[out] inputTransform

Adresse eines Arrays von INPUT_TRANSFORM Strukturen, um die Transformationsinformationen zu empfangen. Dieser Parameter darf nicht NULL sein.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich 0 (null).

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Ein Consumer von Zeigereingabemeldungen verwendet in der Regel ScreenToClient oder MapWindowPoints , um Bildschirmkoordinaten in Clientkoordinaten zu konvertieren.

Wenn eine Transformation auf den Nachrichtenconsumer angewendet wird, verwenden Sie GetPointerInputTransform , um die Transformation zum Zeitpunkt der Eingabe auf dem Nachrichtenconsumer abzurufen. Die Inverse dieser Transformation kann dann verwendet werden, um Zeigereingabekoordinaten von Bildschirmkoordinaten in die Clientkoordinaten des Nachrichtenconsumers zu konvertieren.

Wenn der Eingabe keine Eingabetransformation zugeordnet ist, schlägt die GetPointerInputTransform-Funktion fehl, wobei der letzte Fehler auf ERROR_NO_DATA festgelegt ist. Verwenden Sie stattdessen ScreenToClient oder MapWindowPoints .

Die Eingabetransformation berücksichtigt keine Layouteinstellung von rechts nach links auf dem Eingabeziel. Eine Anwendung, die angepasste Koordinaten für das Layout von rechts nach links erfordert, muss die Rechts-nach-Links-Spiegelung durchführen oder eine entsprechende Spiegelungstransformation mit der Eingabetransformation kombinieren.

Die von GetPointerInputTransform zurückgegebenen Informationen sind der letzten Zeigernachricht zugeordnet, die vom aufrufenden Thread abgerufen wurde. Wenn die nächste Nachricht vom aufrufenden Thread abgerufen wird, sind die Informationen, die der vorherigen Nachricht zugeordnet sind, möglicherweise nicht mehr verfügbar.

Wenn eine Anwendung GetPointerInfo aufruft, kann sie GetPointerInputTransform mit derselben Zeiger-ID und einem einzelnen INPUT_TRANSFORM Ausgabepuffer aufrufen, um die den Daten zugeordnete Eingabetransformation abzurufen.

Wenn eine Anwendung GetPointerFrameInfo aufruft, kann sie GetPointerInputTransform mit derselben Zeiger-ID und einem einzelnen INPUT_TRANSFORM Ausgabepuffer aufrufen, um die den Daten zugeordnete Eingabetransformation abzurufen. Die gleiche Eingabetransformation gilt für den gesamten Frame.

Wenn eine Anwendung GetPointerInfoHistory aufruft, kann sie GetPointerInputTransform mit derselben Zeiger-ID und einem Ausgabepuffer aufrufen, der die mit GetPointerInfoHistory abgerufenen Einträge enthält. Jede Eingabetransformation im zurückgegebenen Array kann mit dem entsprechenden Eintrag im Array verwendet werden, das von GetPointerInfoHistory zurückgegeben wird.

Wenn eine Anwendung GetPointerFrameInfoHistory aufruft, kann sie GetPointerInputTransform mit derselben Zeiger-ID und einem Ausgabepuffer aufrufen, der die mit GetPointerInfoHistory abgerufenen Einträge enthält. Jede Eingabetransformation im zurückgegebenen Array kann mit dem entsprechenden Frame in dem von GetPointerFrameInfoHistory zurückgegebenen Array verwendet werden, wobei dieselbe Eingabetransformation auf den gesamten Frame angewendet wird.

Wenn die der Nachricht zugeordneten Informationen nicht mehr verfügbar sind, schlägt diese Funktion fehl, wobei der letzte Fehler auf ERROR_INVALID_PARAMETER festgelegt ist.

Wenn historyCount einen Wert enthält, der größer ist als das Feld historyCount der POINTER_INFO-Struktur , die von GetPointerInfo zurückgegeben wird (oder die erste POINTER_INFO-Struktur in dem von GetPointerInfoHistory zurückgegebenen Array), schlägt die Funktion mit dem letzten Fehler fehl, der auf ERROR_INVALID_PARAMETER festgelegt ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (windows.h einschließen)
Bibliothek User32.lib
DLL User32.dll

Siehe auch

Funktionen

INPUT_TRANSFORM