Condividi tramite


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)

Vedi anche

Strutture