다음을 통해 공유


POINTER_INFO 구조체(winuser.h)

모든 포인터 형식에 공통적인 기본 포인터 정보를 포함합니다. 애플리케이션은 GetPointerInfo, GetPointerFrameInfo, GetPointerInfoHistoryGetPointerFrameInfoHistory 함수를 사용하여 이 정보를 검색할 수 있습니다.

구문

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 또는 메시지의 타임스탬프를 지정합니다.

애플리케이션은 dwTime 또는 PerformanceCount에서 입력 타임스탬프를 지정할 수 있습니다. 이 값은 삽입 스레드의 현재 틱 수 또는 QPC(QueryPerformanceCount) 값보다 더 최근일 수 없습니다. 프레임에 타임스탬프가 삽입되면 프레임의 모든 접점이 UP 상태로 갈 때까지 모든 후속 프레임에 타임스탬프가 포함되어야 합니다. 연락처 배열의 첫 번째 요소에 대해서도 사용자 지정 타임스탬프 값을 제공해야 합니다. 첫 번째 요소 뒤의 타임스탬프는 무시됩니다. 사용자 지정 타임스탬프 값은 모든 삽입 프레임에서 증가해야 합니다.

PerformanceCount를 지정하면 타임스탬프는 실제 삽입 시 .1밀리초 해상도로 현재 시간으로 변환됩니다. 사용자 지정 PerformanceCount 가 이전 삽입과 동일한 .1밀리초 창을 생성한 경우 ERROR_NOT_READY 반환되고 삽입이 발생하지 않습니다. 오류로 인해 삽입이 즉시 무효화되지는 않지만, 다음에 성공한 삽입에는 이전에 성공한 삽입에서 0.1밀리초 이상인 PerformanceCount 값이 있어야 합니다. dwTime을 사용하는 경우에도 마찬가지입니다.

dwTimePerformanceCount모두 InjectTouchInput에 지정된 경우 ERROR_INVALID_PARAMETER 반환됩니다.

삽입이 시작된 후에는 InjectTouchInputdwTimePerformanceCount 간에 전환할 수 없습니다.

dwTimePerformanceCount를 지정하지 않으면 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 포함)

추가 정보

구조체