Поделиться через


Структура 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 поставляется со следующими предопределенными типами джойстиков, все с осями в расположениях по умолчанию:

  • Двухосный джойстик с двумя кнопками.
  • Игровая панель с двумя кнопками.
  • Двухкнпочный полет ярмо.
  • Две кнопки полета иго с регулированием.
  • Джойстик с тремя осью с двумя кнопками.
  • Джойстик с тремя осью с четырьмя кнопками.
  • Игровая панель с четырьмя кнопками.
  • Четыре кнопки полет ярмо.
  • Четыре кнопки полета иго с регулированием.
Если тип джойстика имеет флаг JOY_HWS_ISGAMEPORTDRIVER, установленный в элементе dwFlags структуры JOYHWSETTINGS, то член wszCallout структуры DIJOYTYPEINFO содержит имя драйвера, который можно использовать в качестве глобального драйвера. Тип джойстика должен отображаться в списке глобальных драйверов, а не в списке типов джойстиков, которые можно назначить.

Новые возможности в 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