DirectInput DirectInput C/C++ 레퍼런스 구조체 DIDEVICEOBJECTDATA [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
버퍼링 장치의 정보를 저장 한다. 이 구조체는,IDirectInputDevice8::GetDeviceData 및 IDirectInputDevice8::SendDeviceData 메서드로 사용한다.
구문
typedef struct DIDEVICEOBJECTDATA { DWORD dwOfs; DWORD dwData; DWORD dwTimeStamp; DWORD dwSequence; UINT_PTR uAppData; } DIDEVICEOBJECTDATA, *LPDIDEVICEOBJECTDATA; typedef const DIDEVICEOBJECTDATA *LPCDIDEVICEOBJECTDATA;
멤버
- dwOfs
- IDirectInputDevice8::GetDeviceData 의 경우, 데이터의 보고 대상이 되고 있는 개체의, 현재의 데이터 형식에 대한 오프셋(offset)값. 즉,IDirectInputDevice8::GetDeviceState 메서드의 호출에 의해 데이터가 취득되었을 경우, 그 dwData 가 저장 되고 있는 위치가 된다. 장치가 마우스, 키보드, 또는 조이스틱으로서 액세스 되는 경우, 이 dwOfs 멤버는,마우스 장치의 열거형,키보드 장치의 열거형, 또는조이스틱 장치 정수의 어느 쪽인가에 된다. 커스텀 데이터 형식이 설정되어 있는 경우는, 커스텀 데이터 형식에 관련하는 오프셋(offset)가 된다.
액션 맵을 사용중의 경우, 이 멤버를 무시할 수 있다. 그 대신에,uAppData 로부터 액션값을 얻어온다.
IDirectInputDevice8::SendDeviceData 의 경우, 데이터의 송신지인 개체의 인스턴스 식별자 (ID). 이것은 DIDEVICEOBJECTINSTANCE 구조체의 dwType 멤버로부터 얻어온다.
- dwData
- 장치로부터 얻어온다인가, 또는 장치에 송신되는 데이터.
축으로부터의 입력의 경우, 장치가 상대축모드에 있는 경우, 상대축의 움직임이 보고된다. 장치가 절대축모드에 있는 경우, 절대 좌표가 보고된다.
버튼으로부터의 입력의 경우,dwData 의 하위 바이트만이 의미가 있다. 하위 바이트의 상위 비트는, 버튼이 밀렸을 때에 설정되어 떼어 놓아졌을 때에 소거된다.
- dwTimeStamp
- 입력 이벤트가 생성된 밀리 세컨드 단위의 시스템 시간. 이 값은, 약 50 일에 순환한다. 「주의」를 참조할것.
IDirectInputDevice8::SendDeviceData 메서드와 함께 구조체를 사용하는 경우, 이 멤버는 제로가 아니면 안 된다.
- dwSequence
- 이 이벤트에 대한 Microsoft® DirectInput® 순서 번호. 모든 입력 이벤트에는, 승순의 순서 번호를 할당할 수 있다. 이것에 의해, 다른 장치로부터의 이벤트를 시간순서에 소트 할 수 있다. 이 값은, 순환해 초기값에 돌아오므로, 2 개의 순서 번호를 비교하는 경우에는 주의해야 한다. DISEQUENCE_COMPARE 매크로를 사용하면 이 비교를 안전하게 실시할 수 있다.
IDirectInputDevice8::SendDeviceData 메서드와 함께 구조체를 사용하는 경우, 이 멤버는 제로가 아니면 안 된다.
- uAppData
- 전회의 IDirectInputDevice8::SetActionMap 의 호출로, 이 개체에 할당된 애플리케이션 정의의 액션값. 이것은, 개체에 관련된 DIACTION 구조체의 uAppData 멤버의 값이다. 액션 맵을 사용하지 않은 경우는 이 값을 무시한다.
IDirectInputDevice8::SendDeviceData 메서드와 함께 구조체를 사용하는 경우, 이 멤버는 제로가 아니면 안 된다.
주의
dwTimeStamp 가 돌려주는 시스템 시간은, Microsoft Win32® 의 GetTickCount 또는 timeGetTime 함수가 사용하는 것과 같은 클럭으로부터의 것이지만, 보다 정밀한 값을 나타낼 가능성이 있다. 예를 들어, Microsoft Windows® 95 의 경우,GetTickCount 타이머의 갱신 간격은 55 밀리 세컨드이지만,dwTimeStamp 의 값의 오차는 1 밀리 세컨드 이내이다. 이 때문에,GetTickCount 를 호출해 n 라고 하는 값이 돌려주어져n + n1 라고 하는 타임 스탬프를 가지는 이벤트를 받는 경우, 그 이벤트가 GetTickCount 를 호출하고 나서 엄밀하게 n1 밀리 세컨드 후에 발생했다고 가정할 수 없다.
구조체의 정보
헤더 dinput.h 최저한의 operating system Windows 98