DirectInput DirectInput C/C++ 레퍼런스 구조체 DIDEVICEOBJECTINSTANCE [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
장치 개체의 인스턴스에 관한 정보를 저장 한다. 이 구조체는,IDirectInputDevice8::EnumObjects 메서드로 사용해, 축 또는 버튼 등, 장치에 관련된 특정의 개체에 관한 정보를 DIEnumDeviceObjectsCallback 콜백 함수에 제공한다. 또, 장치 개체의 정보를 얻어오기 위해IDirectInputDevice8::GetObjectInfo 메서드에서도 사용한다.
구문
typedef struct DIDEVICEOBJECTINSTANCE { DWORD dwSize; GUID guidType; DWORD dwOfs; DWORD dwType; DWORD dwFlags; TCHAR tszName[MAX_PATH]; DWORD dwFFMaxForce; DWORD dwFFForceResolution; WORD wCollectionNumber; WORD wDesignatorIndex; WORD wUsagePage; WORD wUsage; DWORD dwDimension; WORD wExponent; WORD wReportId; } DIDEVICEOBJECTINSTANCE, *LPDIDEVICEOBJECTINSTANCE; typedef const DIDEVICEOBJECTINSTANCE *LPCDIDEVICEOBJECTINSTANCE;
멤버
- dwSize
- 이 구조체의 사이즈 (바이트 단위). 열거동안에, 애플리케이션은 이 값을 조사해 구조체의 멤버가 몇개 유효한가를 확인할 수 있다. 구조체가 IDirectInputDevice8::GetObjectInfo 메서드에 건네질 때, 이 멤버를 sizeof(DIDEVICEOBJECTINSTANCE) 에 초기화해야 한다.
- guidType
- 개체의 종류를 나타내는 일의의 식별자. 이 멤버는 생략 가능하다. 다음의 몇개의 값을 지정할 수 있다.
- GUID_XAxis
- 수평축. 예를 들어, 마우스의 좌우의 움직임을 나타낼 수 있다.
- GUID_YAxis
- 수직축. 예를 들어, 마우스의 전후의 움직임을 나타낼 수 있다.
- GUID_ZAxis
- z 축. 예를 들어, 마우스 위에의 휠의 회전, 또는 조이스틱의 스롯톨 제어의 이동을 나타낼 수 있다.
- GUID_RxAxis
- x 축을 중심으로 하는 회전.
- GUID_RyAxis
- y 축을 중심으로 하는 회전.
- GUID_RzAxis
- z 축을 중심으로 하는 회전 (방향타의 컨트롤로 자주(잘) 사용된다).
- GUID_Slider
- 슬라이더축.
- GUID_Button
- mouse button.
- GUID_Key
- 키보드의 키.
- GUID_POV
- 시점 인디케이터(indicator)
- GUID_Unknown
- 확정할 수 없다.
- dwOfs
- 장치의 네이티브 데이터 형식에서의 오프셋(offset). 네이티브 데이터 형식은, 미처리의 장치 데이터에 대응한다. dwOfs 멤버는, DIJOFS_BUTTON0 등, 이 개체에 대한 장치 정수에 대응하지 않는다.
- dwType
- 개체를 기술하는 장치 타입. 개체의 종류 (축, 버튼등)를 나타내는 DIDFT_* 플래그의 편성이며, 중앙의 16 비트에는, 개체의 인스턴스 번호가 저장 된다. 개체의 인스턴스 번호를 추출하려면 ,DIDFT_GETINSTANCE 매크로를 사용한다. DIDFT_* 플래그의 더 자세한 정보는, 「IDirectInputDevice8::EnumObjects」를 참조할것.
- dwFlags
- 데이터 형식의 다른 속성을 나타내는 플래그. 다음의 몇개의 값을 지정할 수 있다.
- DIDOI_ASPECTACCEL
- 개체는 가속도 정보를 보고한다.
- DIDOI_ASPECTFORCE
- 개체는 포스 정보를 보고한다.
- DIDOI_ASPECTMASK
- 어스펙트 정보를 보고하기 위한 비트. 1 개의 개체는 최대 1 개의 어스펙트 밖에 나타낼 수 없다.
- DIDOI_ASPECTPOSITION
- 개체는 위치 정보를 보고한다.
- DIDOI_ASPECTVELOCITY
- 개체는 속도 정보를 보고한다.
- DIDOI_FFACTUATOR
- 개체는, force feedback 이펙트를 자신에게 적용시킬 수가 있다.
- DIDOI_FFEFFECTTRIGGER
- 개체는, force feedback 이펙트의 재생을 유발한다.
- DIDOI_GUIDISUSAGE
- DIOBJECTDATAFORMAT 구조체의 pguid 멤버에는, 필요한 사용 페이지와 사용 상황이, 팩 된 DWORD 형식에서 저장 된다. 「DIMAKEUSAGEDWORD 」를 참조할것.
- DIDOI_POLLED
- 개체는,IDirectInputDevice8::Poll 메서드가 불려 갈 때까지 데이터를 돌려주지 않는다.
- tszName
- 개체의 이름. 예를 들어,"X-Axis","Right Shift" 등.
- dwFFMaxForce
- 이 개체에 관련된 액츄에이터를 만들어 낼 수 있는 최대 포스의 매그니튜드. 포스는, 뉴턴 단위로 표현되어 장치를 보통에 조작하고 있는 동안의 손의 위치와의 관련으로 측정된다.
- dwFFForceResolution
- 이 개체에 관련된 액츄에이터의 포스 분해가능. 반환값은, force feedback 시스템이 0 (포스 없음)으로부터 최대 포스의 범위에서 표현할 수 있는 포스의 단계수 또는 하위 구분의 수를 나타낸다.
- wCollectionNumber
- 개체가 속하는 HID (Human Interface Device)의 링크 콜렉션.
- wDesignatorIndex
- HID 물리 기술자의 지정을 참조하는 인덱스. 이 수치는, 장치 개체에 대한 추가 정보를 포함한 HID 해석 라이브러리 (Hidpi.h)의 함수에 건네진다.
- wUsagePage
- 개체에 관련하는 HID (Human Interface Device) 사용 페이지 (판명되었을 경우). HID 는 항상 사용 페이지를 보고한다. 비 HID 장치는 옵션으로 사용 페이지를 보고한다. 비 HID 장치가 보고하지 않는 경우, 이 파라미터의 값은 제로가 된다.
- wUsage
- 개체에 관련하는 HID 사용 상황 (판명되었을 경우). HID 는 항상 사용 상황을 보고한다. 비 HID 는 옵션으로 사용 상황을 보고한다. 비 HID 장치가 보고하지 않는 경우, 이 파라미터의 값은 제로가 된다.
- dwDimension
- 개체의 값을 보고하는 차원 단위의 HID (Human Interface Device) 코드 (판명하고 있는 경우). 불명한 경우는 제로가 된다.
- wExponent
- 단위에 붙이는 지수 (판명하고 있는 경우). 차원 단위는 항상 정수이므로, 정수 이외의 형태에 단위를 변환하려면 지수가 필요하게 된다.
- wReportId
- 예약이 끝난 상태.
주의
경고 dwOfs 의 값은, 장치에 대해서 데이터 형식이 설정되었는지 어떠했는지에 관계없이, 장치가 돌려주는 미가공 데이터내의 오프셋(offset)이다.애플리케이션은 wUsagePage 및 wUsage 멤버를 사용해, 개체의 설계 목적에 관한 추가 정보를 취득할 수 있다. 예를 들어,wUsagePage 의 값이 0x02 (탈 것의 컨트롤)로,wUsage 의 값이 0xB9 (승강타 트림)의 경우, 개체는, 조종간의 승강타 트림콘트로르로서 설계되고 있다. 항공 시뮬레이션 게임 애플리케이션은 이 정보를 사용해, 장치 위에의 개체에 대해서, 보다 적절한 디폴트 동작을 제공할 수 있다. HID 사용 코드는 USB 표준 위원회에서 정해져 있다.
구조체의 정보
헤더 dinput.h 최저한의 operating system Windows 98