POINTER_INFO struttura (winuser.h)
Contiene informazioni sul puntatore di base comuni a tutti i tipi di puntatore. Le applicazioni possono recuperare queste informazioni usando le funzioni GetPointerInfo, GetPointerFrameInfo, GetPointerInfoHistory e GetPointerFrameInfoHistory.
Sintassi
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;
Members
pointerType
Tipo: POINTER_INPUT_TYPE
Valore dell'enumerazione POINTER_INPUT_TYPE che specifica il tipo di puntatore.
pointerId
Tipo: UINT32
Identificatore che identifica in modo univoco un puntatore durante la durata. Un puntatore entra in esistenza quando viene rilevato per la prima volta e termina la sua esistenza quando esce dall'intervallo di rilevamento. Si noti che se un'entità fisica (dito o penna) esce dall'intervallo di rilevamento e quindi restituisce di nuovo il rilevamento, viene considerata come un nuovo puntatore e può essere assegnato un nuovo identificatore puntatore.
frameId
Tipo: UINT32
Identificatore comune a più puntatori per cui il dispositivo di origine ha segnalato un aggiornamento in un singolo frame di input. Ad esempio, un digitalizzatore multi-tocco in modalità parallela può segnalare le posizioni di più contatti touch in un singolo aggiornamento al sistema.
Si noti che l'identificatore di frame viene assegnato come input viene segnalato al sistema per tutti i puntatori in tutti i dispositivi. Pertanto, questo campo potrebbe non contenere valori strettamente sequenziali in una singola serie di messaggi ricevuti da una finestra. Tuttavia, questo campo conterrà lo stesso valore numerico per tutti gli aggiornamenti di input segnalati nello stesso frame di input da un singolo dispositivo.
pointerFlags
Tipo: POINTER_FLAGS
Può essere qualsiasi combinazione ragionevole di flag dalle costanti Flag di puntatore .
sourceDevice
Tipo: HANDLE
Gestire il dispositivo di origine che può essere usato nelle chiamate all'API del dispositivo di input non elaborato e all'API del dispositivo digitalizzatore.
hwndTarget
Tipo: HWND
Finestra a cui è stato destinato questo messaggio. Se il puntatore viene acquisito, in modo implicito a causa della presenza di contatto su questa finestra o in modo esplicito usando l'API di acquisizione del puntatore, questa è la finestra di acquisizione. Se il puntatore non viene incapsulato, si tratta della finestra su cui è stato generato il puntatore.
ptPixelLocation
Tipo: POINT
Coordinate dello schermo stimate del puntatore, in pixel.
Il valore stimato si basa sulla posizione del puntatore segnalata dal digitalizzatore e sul movimento del puntatore. Questa correzione può compensare il ritardo visivo a causa di ritardi intrinseci nel rilevamento e nell'elaborazione della posizione del puntatore sul digitalizzatore. Ciò è applicabile ai puntatori di tipo PT_TOUCH. Per altri tipi di puntatore, il valore stimato sarà lo stesso del valore non previsto (vedere ptPixelLocationRaw).
ptHimetricLocation
Tipo: POINT
Coordinate dello schermo stimate del puntatore nelle unità HIMETRIC.
Il valore stimato si basa sulla posizione del puntatore segnalata dal digitalizzatore e sul movimento del puntatore. Questa correzione può compensare il ritardo visivo a causa di ritardi intrinseci nel rilevamento e nell'elaborazione della posizione del puntatore sul digitalizzatore. Ciò è applicabile ai puntatori di tipo PT_TOUCH. Per altri tipi di puntatore, il valore stimato sarà lo stesso del valore non previsto (vedere ptHimetricLocationRaw).
ptPixelLocationRaw
Tipo: POINT
Coordinate dello schermo del puntatore, in pixel. Per le coordinate dello schermo regolate, vedere ptPixelLocation.
ptHimetricLocationRaw
Tipo: POINT
Coordinate dello schermo del puntatore, in unità HIMETRIC. Per le coordinate dello schermo regolate, vedere ptHimetricLocation.
dwTime
Tipo: DWORD
0 o il timestamp del messaggio, in base al conteggio dei tick di sistema quando il messaggio è stato ricevuto.
L'applicazione può specificare il timestamp di input in dwTime o PerformanceCount. Il valore non può essere più recente del numero di tick corrente o del valore QPC (QueryPerformanceCount) del thread di inserimento. Dopo aver inserito un frame con un timestamp, tutti i fotogrammi successivi devono includere un timestamp fino a quando tutti i contatti nel frame passano a uno stato UP . Il valore timestamp personalizzato deve essere fornito anche per il primo elemento della matrice di contatti. I valori del timestamp dopo che il primo elemento viene ignorato. Il valore timestamp personalizzato deve aumentare in ogni frame di inserimento.
Quando viene specificato PerformanceCount , il timestamp verrà convertito nell'ora corrente nella risoluzione di 1 millisecondi al momento dell'inserimento effettivo. Se un oggetto PerformanceCount personalizzato ha generato la stessa finestra con estensione 1 millisecondi dall'inserimento precedente, ERROR_NOT_READY viene restituito e l'inserimento non si verificherà. Sebbene l'inserimento non venga invalidato immediatamente dall'errore, l'inserimento successivo deve avere un valore PerformanceCount che è almeno 0,1 millisecondi dall'inserimento precedentemente riuscito. Questo valore è true anche se viene usato dwTime .
Se vengono specificati sia dwTime che PerformanceCount in InjectTouchInput, viene restituito ERROR_INVALID_PARAMETER.
InjectTouchInput non può passare da dwTime a PerformanceCount dopo l'avvio dell'inserimento.
Se non vengono specificati dwTime e PerformanceCount,InjectTouchInput alloca il timestamp in base alla tempistica della chiamata. Se le chiamate InjectTouchInput sono ripetutamente inferiori a 0,1 millisecondi, ERROR_NOT_READY potrebbe essere restituito. L'errore non invaliderà immediatamente l'input, ma l'applicazione di inserimento deve riprovare lo stesso frame per avere esito positivo.
historyCount
Tipo: UINT32
Conteggio degli input che sono stati uniti in questo messaggio. Questo conteggio corrisponde al numero totale di voci che possono essere restituite da una chiamata a GetPointerInfoHistory. Se non si è verificato alcun coalescing, questo conteggio è 1 per il singolo input rappresentato dal messaggio.
InputData
dwKeyStates
Tipo: DWORD
Indica quali tasti di modifica della tastiera sono stati premuti al momento della generazione dell'input. Può essere zero o una combinazione dei valori seguenti da Modifica stato chiave.
POINTER_MOD_SHIFT: è stato premuto un tasto MAIUSC.
POINTER_MOD_CTRL: è stato premuto un tasto CTRL.
Usare GetKeyState.
PerformanceCount
Tipo: UINT64
Valore del contatore delle prestazioni ad alta risoluzione quando è stato ricevuto il messaggio del puntatore (alternativa a 64 bit ad alta precisione a dwTime). Il valore può essere calibrato quando l'hardware del digitalizzatore tocco supporta le informazioni sul timestamp di analisi nel report di input.
ButtonChangeType
Tipo: POINTER_BUTTON_CHANGE_TYPE
Valore dell'enumerazione POINTER_BUTTON_CHANGE_TYPE che specifica la modifica nello stato del pulsante tra questo input e l'input precedente.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 [solo app desktop] |
Server minimo supportato | Windows Server 2012 [solo app desktop] |
Intestazione | winuser.h (include Windows.h) |