共用方式為


POINTER_INFO 結構 (winuser.h)

包含所有指標類型通用的基本指標資訊。 應用程式可以使用 GetPointerInfo、GetPointerFrameInfoGetPointerInfoHistoryGetPointerFrameInfoHistory 函式來擷取此資訊。

語法

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;

成員

pointerType

類型: POINTER_INPUT_TYPE

指定指標類型的 POINTER_INPUT_TYPE 列舉值。

pointerId

類型: UINT32

唯一識別指標存留期的標識碼。 當指標第一次偵測到時存在,並在超出偵測範圍時結束其存在。 請注意,如果實體實體 (手指或手寫筆) 超出偵測範圍,然後再次傳回以偵測,則會被視為新的指標,而且可能會指派新的指標標識符。

frameId

類型: UINT32

來源裝置在單一輸入框架中回報更新的多個指標通用標識碼。 例如,平行模式多觸控數位板可能會向系統報告多個觸控聯繫人在單一更新中的位置。

請注意,畫面格標識符會指派為系統針對所有裝置上的所有指標回報輸入。 因此,此欄位可能不會在視窗接收的單一訊息系列中包含嚴格循序值。 不過,此欄位會針對單一裝置在相同輸入框架中報告的所有輸入更新,包含相同的數值。

pointerFlags

類型: POINTER_FLAGS

可能是指標 旗標 常數中旗標的任何合理組合。

sourceDevice

類型: HANDLE

處理可用於呼叫原始輸入設備 API 和數位板裝置 API 的來源裝置。

hwndTarget

類型: HWND

此訊息的目標視窗。 如果擷取指標,可能是因為透過此視窗進行連絡或明確使用指標擷取 API,所以這是擷取視窗。 如果未擷取指標,這是產生此訊息時指標所在的視窗。

ptPixelLocation

類型: POINT

指標的預測螢幕座標,以像素為單位。

預測值是根據數位板所報告的指標位置,以及指標的動作。 這項更正可補償視覺延遲,因為檢測和處理數位板上的指標位置固有延遲。 這適用於類型 PT_TOUCH的指標。 針對其他指標類型,預測值會與非預測值相同, (請參閱 ptPixelLocationRaw) 。

ptHimetricLocation

類型: POINT

指標的預測螢幕座標,以 HIMETRIC 單位為單位。

預測值是根據數位板所報告的指標位置,以及指標的動作。 這項更正可補償視覺延遲,因為檢測和處理數位板上的指標位置固有延遲。 這適用於類型 PT_TOUCH的指標。 針對其他指標類型,預測值會與非預測值相同, (請參閱 ptHimetricLocationRaw) 。

ptPixelLocationRaw

類型: POINT

指標的螢幕座標,以像素為單位。 如需調整的螢幕座標,請參閱 ptPixelLocation

ptHimetricLocationRaw

類型: POINT

指標的螢幕座標,以 HIMETRIC 單位為單位。 如需調整的螢幕座標,請參閱 ptHimetricLocation

dwTime

類型: DWORD

0 或訊息的時間戳,根據收到訊息的系統刻度計數。

應用程式可以在 dwTimePerformanceCount 中指定輸入時間戳。 值不能比目前的刻度計數或 QueryPerformanceCount 更新, (插入線程的 QPC) 值。 一旦以時間戳插入框架之後,所有後續框架都必須包含時間戳,直到框架中的所有聯繫人都進入 UP 狀態為止。 也必須為聯繫人數組中的第一個專案提供自定義時間戳值。 忽略第一個元素之後的時間戳值。 自訂時間戳值必須在每個插入框架中遞增。

當指定 PerformanceCount 時,時間戳會在實際插入時轉換為目前的時間,以 .1 毫秒的解析度表示。 如果自定義 PerformanceCount 導致先前插入的相同 .1 毫秒視窗,則會傳回 ERROR_NOT_READY ,而且不會發生插入。 雖然插入不會立即因錯誤而失效,但下一次成功的插入必須有 PerformanceCount 值,該值至少為先前成功插入的 0.1 毫秒。 如果使用 dwTime ,也是如此。

如果在 InjectTouchInput 中同時指定 dwTimePerformanceCount,則會傳回ERROR_INVALID_PARAMETER。

插入啟動之後,InjectTouchInput 無法在 dwTimePerformanceCount 之間切換。

如果未指定 dwTime 和 PerformanceCount,InjectTouchInput 會根據呼叫的時間設定時間戳。 如果 InjectTouchInput 呼叫重複小於 0.1 毫秒,可能會傳回ERROR_NOT_READY。 錯誤不會立即使輸入失效,但插入應用程式必須再次重試相同的畫面,才能成功插入。

historyCount

類型: UINT32

已聯合至此訊息的輸入計數。 此計數符合 呼叫 GetPointerInfoHistory 可傳回的項目總數。 如果沒有聯合,則訊息所代表的單一輸入是 1。

InputData

dwKeyStates

類型: DWORD

指出在產生輸入時按下哪一個鍵盤修飾詞鍵。 可以是零,或來自 修飾詞索引鍵狀態的下列值組合。

POINTER_MOD_SHIFT – 按下 SHIFT 鍵。

POINTER_MOD_CTRL – 按下 CTRL 鍵。

使用 GetKeyState

PerformanceCount

類型: UINT64

收到指標訊息 (dwTime) 的高精確度、64 位替代專案時,高解析度性能計數器的值。 當觸控數位板硬體在其輸入報告中支援掃描時間戳資訊時,可以校正此值。

ButtonChangeType

類型: POINTER_BUTTON_CHANGE_TYPE

來自 POINTER_BUTTON_CHANGE_TYPE 列舉的值,指定這個輸入與先前輸入之間的按鈕狀態變更。

規格需求

需求
最低支援的用戶端 Windows 8 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2012 [僅限傳統型應用程式]
標頭 winuser.h (包括 Windows.h)

另請參閱

結構