DIJOYTYPEINFO 구조체(dinputd.h)
DIJOYTYPEINFO 구조체에는 조이스틱 형식에 대한 정보가 포함되어 있습니다.
구문
typedef struct DIJOYTYPEINFO {
DWORD dwSize;
JOYREGHWSETTINGS hws;
CLSID clsidConfig;
WCHAR wszDisplayName[MAX_JOYSTRING];
WCHAR wszCallout[MAX_JOYSTICKOEMVXDNAME];
WCHAR wszHardwareId[MAX_JOYSTRING];
DWORD dwFlags1;
DWORD dwFlags2;
WCHAR wszMapFile[MAX_JOYSTRING];
} DIJOYTYPEINFO, *LPDIJOYTYPEINFO;
멤버
dwSize
구조체의 크기를 바이트 단위로 지정합니다. 구조체를 사용하려면 먼저 이 멤버를 초기화해야 합니다.
hws
조이스틱 하드웨어 설정.
clsidConfig
조이스틱 형식 구성 개체에 대한 CLSID를 지정합니다. 구성 개체를 만들려면 이 CLSID를 CoCreateInstance에 전달합니다. 형식에 사용자 지정 구성이 없는 경우 이 필드는 0입니다.
wszDisplayName[MAX_JOYSTRING]
조이스틱 유형의 표시 이름입니다. 표시 이름은 조이스틱 유형의 이름을 최종 사용자에게 표시하는 데 사용해야 하는 이름입니다.
wszCallout[MAX_JOYSTICKOEMVXDNAME]
이 유형의 디바이스에 대한 폴링을 처리하는 디바이스입니다. 전역 폴링 콜아웃을 사용할 경우 null 문자열입니다.
wszHardwareId[MAX_JOYSTRING]
조이스틱 유형의 하드웨어 ID입니다. 하드웨어 ID는 windows 2000 및 Windows 98(DirectX 7.0에만 해당)의 플러그 앤 플레이 조이스틱용 드라이버를 찾는 데 사용됩니다.
dwFlags1
조이스틱 유형 플래그입니다. 이 멤버는 다음 플래그의 조합으로 설정할 수 있습니다.
JOYTYPE_ZEROGAMEENUMOEMDATA
제로 GameEnum의 OEM 데이터 필드입니다.
JOYTYPE_NOAUTODETECTGAMEPORT
디바이스는 자동 검색 게임 포트를 지원하지 않습니다.
JOYTYPE_NOHIDDIRECT
이 디바이스에 HID를 직접 사용하지 마세요. (Windows 98만 해당)
JOYTYPE_DEFAULTPROPSHEET
CPL은 사용자 지정 속성 시트를 재정의합니다.
dwFlags2
디바이스 필터링 및 디바이스 유형/하위 유형 재정의 플래그의 조합입니다. 디바이스 필터링 플래그는 dwFlags2의 높은 WORD에 배치해야 합니다. 디바이스 유형 및 하위 형식은 각각 멤버의 낮음 및 상위 WORD에 배치되어야 합니다.
디바이스 필터링 플래그
분류되지 않은 디바이스를 숨깁니다.
JOYTYPE_MOUSEHIDE
마우스를 숨깁니다.
JOYTYPE_KEYBHIDE
키보드를 숨깁니다.
JOYTYPE_GAMEHIDE
게임 컨트롤러를 숨깁니다.
JOYTYPE_HIDEACTIVE
플래그 숨기기가 활성 상태입니다. 다른 숨기기 플래그가 지정된 경우 이 플래그를 포함해야 합니다.
디바이스 유형 및 하위 형식 재정의 플래그
디바이스 유형 | 디바이스 하위 유형 |
---|---|
DI8DEVTYPE_1STPERSON | DI8DEVTYPE1STPERSON_LIMITED |
DI8DEVTYPE1STPERSON_UNKNOWN | |
DI8DEVTYPE1STPERSON_SIXDOF | |
DI8DEVTYPE1STPERSON_SHOOTER | |
DI8DEVTYPE_DEVICE | 해당 없음 |
DI8DEVTYPE_DEVICECTRL | DI8DEVTYPEDEVICECTRL_UNKNOWN |
DI8DEVTYPEDEVICECTRL_COMMSSELECTION | |
DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED | |
DI8DEVTYPE_DRIVING | DI8DEVTYPEDRIVING_LIMITED |
DI8DEVTYPEDRIVING_COMBINEDPEDALS | |
DI8DEVTYPEDRIVING_DUALPEDALS | |
DI8DEVTYPEDRIVING_THREEPEDALS | |
DI8DEVTYPEDRIVING_HANDHELD | |
DI8DEVTYPE_FLIGHT | DI8DEVTYPEFLIGHT_LIMITED |
DI8DEVTYPEFLIGHT_STICK | |
DI8DEVTYPEFLIGHT_YOKE | |
DI8DEVTYPEFLIGHT_RC | |
DI8DEVTYPE_GAMEPAD | DI8DEVTYPEGAMEPAD_LIMITED |
DI8DEVTYPEGAMEPAD_STANDARD | |
DI8DEVTYPEGAMEPAD_TILT | |
DI8DEVTYPE_JOYSTICK | DI8DEVTYPEJOYSTICK_LIMITED |
DI8DEVTYPEJOYSTICK_STANDARD | |
DI8DEVTYPEJOYSTICK_ENHANCED | |
DI8DEVTYPE_KEYBOARD | DI8DEVTYPEKEYBOARD_UNKNOWN |
DI8DEVTYPEKEYBOARD_PCXT | |
DI8DEVTYPEKEYBOARD_OLIVETTI | |
DI8DEVTYPEKEYBOARD_PCAT | |
DI8DEVTYPEKEYBOARD_PCENH | |
DI8DEVTYPEKEYBOARD_NOKIA1050 | |
DI8DEVTYPEKEYBOARD_NOKIA9140 | |
DI8DEVTYPEKEYBOARD_NEC98 | |
DI8DEVTYPEKEYBOARD_NEC98LAPTOP | |
DI8DEVTYPEKEYBOARD_NEC98106 | |
DI8DEVTYPEKEYBOARD_JAPAN106 | |
DI8DEVTYPEKEYBOARD_JAPANAX | |
DI8DEVTYPEKEYBOARD_J3100 | |
DI8DEVTYPE_MOUSE | DI8DEVTYPEMOUSE_UNKNOWN |
DI8DEVTYPEMOUSE_TRADITIONAL | |
DI8DEVTYPEMOUSE_FINGERSTICK | |
DI8DEVTYPEMOUSE_TOUCHPAD | |
DI8DEVTYPEMOUSE_TRACKBALL | |
DI8DEVTYPEMOUSE_ABSOLUTE | |
DI8DEVTYPE_REMOTE | DI8DEVTYPEREMOTE_UNKNOWN |
DI8DEVTYPE_SCREENPOINTER | DI8DEVTYPESCREENPTR_UNKNOWN |
DI8DEVTYPESCREENPTR_LIGHTGUN | |
DI8DEVTYPESCREENPTR_LIGHTPEN | |
DI8DEVTYPESCREENPTR_TOUCH | |
DI8DEVTYPE_SUPPLEMENTAL | DI8DEVTYPESUPPLEMENTAL_UNKNOWN |
DI8DEVTYPESUPPLEMENTAL_2NDHANDCONTROLLER | |
DI8DEVTYPESUPPLEMENTAL_HEADTRACKER | |
DI8DEVTYPESUPPLEMENTAL_HANDTRACKER | |
DI8DEVTYPESUPPLEMENTAL_SHIFTSTICKGATE | |
DI8DEVTYPESUPPLEMENTAL_SHIFTER | |
DI8DEVTYPESUPPLEMENTAL_THROTTLE | |
DI8DEVTYPESUPPLEMENTAL_SPLITTHROTTLE | |
DI8DEVTYPESUPPLEMENTAL_COMBINEDPEDALS | |
DI8DEVTYPESUPPLEMENTAL_DUALPEDALS | |
DI8DEVTYPESUPPLEMENTAL_THREEPEDALS | |
DI8DEVTYPESUPPLEMENTAL_RUDDERPEDALS |
wszMapFile[MAX_JOYSTRING]
설명
"조이스틱 유형"은 DirectInput이 디바이스와 통신하는 방법과 디바이스 데이터를 보고하는 방법을 설명합니다. 예를 들어 "Frobozz Industries SuperStick 5X는 세 번째 축이 두 번째 포트의 첫 번째 비트로 보고된 3축, 5개 단추 조이스틱입니다."
DirectInput에는 다음과 같이 미리 정의된 조이스틱 유형이 함께 제공되며, 모두 기본 위치에 축이 있습니다.
- 2축, 2 단추 조이스틱.
- 2 버튼 게임 패드.
- 2 버튼 비행 멍에.
- 스로틀이 있는 2 버튼 비행 멍에.
- 3축, 2 버튼 조이스틱.
- 3축, 4개 단추 조이스틱.
- 4 버튼 게임 패드.
- 4 버튼 비행 멍에.
- 스로틀이 있는 4개의 버튼 플라이트 멍에.
DirectX 8.0의 새로운 기능
dwFlags2 멤버가 DIJOYCONFIG 구조체에 추가되었습니다. 이 멤버는 DirectInput이 디바이스를 애플리케이션에 열거하는 방법을 제어하는 정보를 전달합니다. dwFlags2 멤버는 낮은 단어에 디바이스 유형 및 하위 형식 재정의 플래그를 전달하고 디바이스 열거형은 상위 단어에 "숨기기" 플래그를 전달합니다. 디바이스 유형 및 하위 형식 재정의 플래그는 DirectInput이 DirectInput을 사용하는 애플리케이션에 디바이스를 묘사하는 방법을 제어합니다. 이러한 플래그는 디바이스 열거 중에 애플리케이션이 DirectInput에서 수신하는 것과 동일한 플래그입니다. 예를 들어 디바이스가 펌웨어에서 전화 통신 디바이스로 설명되면 전화 통신 디바이스가 게임과 관련이 없는 것으로 간주되기 때문에 일반적으로 게임에 열거되지 않습니다. 그러나 DI8DEVTYPE_DEVICECTRL 및 DI8DEVTYPEDEVICECONTROL_COMMSSELECTION 사용하여 이 디바이스를 설명한 경우 DirectInput은 펌웨어에서 검색한 데이터를 재정의하고 디바이스를 게임으로 열거합니다.
dwFlags2의 상위 단어는 DirectInput이 디바이스를 DirectInput 애플리케이션에 열거하는 방법을 scope 플래그를 포함하도록 설정할 수 있습니다. 예를 들어 일부 디바이스는 여러 최상위 HID 컬렉션을 선언합니다. 이러한 디바이스는 모두 하나의 키보드, 마우스 및 조이스틱 역할을 할 수 있다고 선언할 수 있습니다. 일반적으로 이러한 최상위 컬렉션 중 하나 이상은 게임에 열거해서는 안 되는 가상 디바이스일 뿐입니다. 이 디바이스의 경우 dwFlags2 라는 상위 단어를 JOYTYPE_HIDEACTIVE, JOYTYPE_MOUSEHIDE 및 JOYTYPE_KEYBHIDE 플래그의 조합으로 설정할 수 있습니다. JOYTYPE_HIDEACTIVE 플래그는 DirectInput이 디바이스를 모든 형식으로 열거해서는 안 됨을 나타냅니다. 상위 단어에도 JOYTYPE_MOUSEHIDE 및 JOYTYPE_KEYBHIDE 플래그는 DirectInput에 디바이스의 가상 마우스 및 키보드 열거를 표시하지 않아야 함을 나타냅니다. 애플리케이션에는 디바이스가 숨겨져 있더라도 디바이스를 열거하는 DIEDFL_INCLUDEHIDDEN(Microsoft Windows SDK 설명서에 설명되어 있음) 플래그가 포함될 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | dinputd.h |