DirectInput DirectInput C/C++ 레퍼런스 구조체 DIDEVICEOBJECTDATA   [목차열람] [주소복사] [슬롯비우기]
DIDEVICEOBJECTDATA 구조체
 
Microsoft DirectX 9.0

DIDEVICEOBJECTDATA 구조체


버퍼링 장치의 정보를 저장 한다. 이 구조체는,IDirectInputDevice8::GetDeviceDataIDirectInputDevice8::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


© 2002 Microsoft Corporation. All rights reserved.
↑TOP