Структура 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, чтобы создать объект конфигурации. Это поле равно нулю, если тип не имеет настраиваемой конфигурации.
wszDisplayName[MAX_JOYSTRING]
Отображаемое имя типа джойстика. Отображаемое имя — это имя, которое должно использоваться для отображения имени типа джойстика для конечного пользователя.
wszCallout[MAX_JOYSTICKOEMVXDNAME]
Устройство, отвечающее за обработку опроса для устройств этого типа. Это строка null, если требуется использовать выноску глобального опроса.
wszHardwareId[MAX_JOYSTRING]
Идентификатор оборудования для типа джойстика. Идентификатор оборудования используется Plug and Play в Windows 2000 и Windows 98 (только DirectX 7.0) для поиска драйверов для джойстика.
dwFlags1
Флаги типа джойстика. Для этого элемента можно задать сочетание следующих флагов.
JOYTYPE_ZEROGAMEENUMOEMDATA
Поле данных OEM Zero GameEnum.
JOYTYPE_NOAUTODETECTGAMEPORT
Устройство не поддерживает автоматическое определение игрового порта.
JOYTYPE_NOHIDDIRECT
Не используйте HID напрямую для этого устройства. (Только Windows 98.)
JOYTYPE_DEFAULTPROPSHEET
CPL переопределяет настраиваемый лист свойств.
dwFlags2
Сочетание фильтров устройств и флагов переопределения типа или подтипа устройства. Флаги фильтрации устройств должны размещаться в верхнем word dwFlags2. Тип устройства и подтип должны помещаться в низкие и высокие 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 — это трехосный, пятикножный джойстик с третьей осью, сообщаемой в качестве первого бита на втором порту".
DirectInput поставляется со следующими предопределенными типами джойстиков, все с осями в расположениях по умолчанию:
- Двухосный джойстик с двумя кнопками.
- Игровая панель с двумя кнопками.
- Двухкнпочный полет ярмо.
- Две кнопки полета иго с регулированием.
- Джойстик с тремя осью с двумя кнопками.
- Джойстик с тремя осью с четырьмя кнопками.
- Игровая панель с четырьмя кнопками.
- Четыре кнопки полет ярмо.
- Четыре кнопки полета иго с регулированием.
Новые возможности в DirectX 8.0
Элемент dwFlags2 был добавлен в структуру DIJOYCONFIG. Этот член содержит сведения, управляющие тем, как DirectInput перечисляет устройство в приложения. Член dwFlags2 содержит флаги переопределения типа устройства и подтипа в нижнем слове, а также флаги перечисления устройств "скрытие" в высоком слове. Флаги переопределения типа и подтипа устройства определяют, как DirectInput изображает устройство для приложений, использующих DirectInput. Это те же флаги, которые приложения получают из DirectInput во время перечисления устройств. Например, если ваше устройство описано в встроенном ПО как устройство телефонии, оно обычно не перечисляется в игры, так как телефонные устройства не считаются актуальными для игр. Однако если вы использовали DI8DEVTYPE_DEVICECTRL и DI8DEVTYPEDEVICECONTROL_COMMSSELECTION для описания этого устройства, DirectInput переопределяет данные, полученные из встроенного ПО, и перечисляет устройство в игры.
Параметру dwFlags2 можно задать флаги, которые область, как DirectInput перечисляет устройство в приложения DirectInput. Например, некоторые устройства объявляют несколько коллекций HID верхнего уровня. Такое устройство может объявить, что оно может выступать в качестве клавиатуры, мыши и джойстика. Как правило, одна или несколько из этих коллекций верхнего уровня являются просто фантомным устройством, которое не должно перечисляться в игры. Для этого устройства в качестве высокого слова dwFlags2 можно задать сочетание флагов JOYTYPE_HIDEACTIVE, JOYTYPE_MOUSEHIDE и JOYTYPE_KEYBHIDE. Флаг JOYTYPE_HIDEACTIVE указывает, что DirectInput не должен перечислять устройство по всем его типам. Флаги JOYTYPE_MOUSEHIDE и JOYTYPE_KEYBHIDE, которые также присутствуют в высоком слове, указывают DirectInput, что перечисление фантомной мыши и клавиатуры на устройстве должно быть подавлено. Обратите внимание, что приложения могут включать флаг DIEDFL_INCLUDEHIDDEN (описанный в документации по Microsoft Windows SDK) для перечисления устройств, даже если они скрыты.
Требования
Требование | Значение |
---|---|
Заголовок | dinputd.h |