POINTER_INFO 구조체(winuser.h)
모든 포인터 형식에 공통적인 기본 포인터 정보를 포함합니다. 애플리케이션은 GetPointerInfo, GetPointerFrameInfo, GetPointerInfoHistory 및 GetPointerFrameInfoHistory 함수를 사용하여 이 정보를 검색할 수 있습니다.
구문
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 열거형의 값입니다.
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 또는 메시지의 타임스탬프를 지정합니다.
애플리케이션은 dwTime 또는 PerformanceCount에서 입력 타임스탬프를 지정할 수 있습니다. 이 값은 삽입 스레드의 현재 틱 수 또는 QPC(QueryPerformanceCount) 값보다 더 최근일 수 없습니다. 프레임에 타임스탬프가 삽입되면 프레임의 모든 접점이 UP 상태로 갈 때까지 모든 후속 프레임에 타임스탬프가 포함되어야 합니다. 연락처 배열의 첫 번째 요소에 대해서도 사용자 지정 타임스탬프 값을 제공해야 합니다. 첫 번째 요소 뒤의 타임스탬프는 무시됩니다. 사용자 지정 타임스탬프 값은 모든 삽입 프레임에서 증가해야 합니다.
PerformanceCount를 지정하면 타임스탬프는 실제 삽입 시 .1밀리초 해상도로 현재 시간으로 변환됩니다. 사용자 지정 PerformanceCount 가 이전 삽입과 동일한 .1밀리초 창을 생성한 경우 ERROR_NOT_READY 반환되고 삽입이 발생하지 않습니다. 오류로 인해 삽입이 즉시 무효화되지는 않지만, 다음에 성공한 삽입에는 이전에 성공한 삽입에서 0.1밀리초 이상인 PerformanceCount 값이 있어야 합니다. dwTime을 사용하는 경우에도 마찬가지입니다.
dwTime 및 PerformanceCount가 모두 InjectTouchInput에 지정된 경우 ERROR_INVALID_PARAMETER 반환됩니다.
삽입이 시작된 후에는 InjectTouchInput이 dwTime과 PerformanceCount 간에 전환할 수 없습니다.
dwTime 및 PerformanceCount를 지정하지 않으면 InjectTouchInput은 호출 타이밍에 따라 타임스탬프를 할당합니다. InjectTouchInput 호출이 반복적으로 0.1밀리초 미만인 경우 ERROR_NOT_READY 반환될 수 있습니다. 오류는 입력을 즉시 무효화하지 않지만 삽입 애플리케이션은 삽입이 성공하려면 동일한 프레임을 다시 시도해야 합니다.
historyCount
형식: UINT32
이 메시지에 병합된 입력 수입니다. 이 개수는 GetPointerInfoHistory 호출에서 반환할 수 있는 항목의 총 개수와 일치합니다. 병합이 발생하지 않은 경우 이 개수는 메시지가 나타내는 단일 입력에 대해 1입니다.
InputData
dwKeyStates
형식:DWORD
입력이 생성될 때 누른 키보드 한정자 키를 나타냅니다. 0이거나 한 정자 키 상태의 다음 값의 조합일 수 있습니다.
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 포함) |