Выяснение того, поддерживает ли устройство DirectInput XInput (с помощью mingw/gcc)

Я работаю над системой ввода, обертываю DirectInput и XInput. В настоящее время устройства XInput перечисляются дважды, один раз как XInput и один раз как DirectInput (поскольку они поддерживают оба).

Как узнать, поддерживает ли данное устройство DirectInput XInput? Существует эта страница MSDN на тема, но для этого требуются wbemidl.h и wmsstd.h, которых нет в mingw/gcc (и по какой-то причине я хочу избежать msvc - вероятно, по привычке).

Я не думаю, что занесение в черный список имен/гидов устройств — хорошее решение, но есть ли лучшее?

Спасибо.


person Mr. Wonko    schedule 29.12.2010    source источник


Ответы (1)


wbemidl.h и все связанные заголовки доступны по адресу mingw-w64, не обращайте внимания на то, что 64it также поддерживает 32-битную версию.

Here — это пример реализации IsXInputDevice без включения wmsstd.h.

person ismail    schedule 29.12.2010
comment
Обновил мой ответ соответственно. - person ismail; 29.12.2010
comment
Спасибо, теперь единственная оставшаяся проблема — это отсутствие __uuidof() в gcc. - person Mr. Wonko; 29.12.2010
comment
Я думаю, это не реализовано в MinGW. - person ismail; 29.12.2010
comment
Ну, я думаю, что uuid должен быть уникальным, поэтому я прочитал его, используя __uuidof() с msvc, и жестко закодировал значение чтения для gcc. Кажется, работает. - person Mr. Wonko; 29.12.2010