Пример #1
0
/*
 * Enumerate keyboards.
 */
BOOL CALLBACK diEnumKeyboardProc(LPCDIDEVICEINSTANCE lpddi, LPVOID pvRef)
{
	*(LPGUID)pvRef = lpddi->guidProduct;
	if (GET_DIDEVICE_SUBTYPE(lpddi->dwDevType) == DI8DEVTYPEKEYBOARD_PCENH)
	{
		return DIENUM_STOP;
	}
	return DIENUM_CONTINUE;
}
Пример #2
0
BOOL __stdcall enumCallbackDetour(const DIDEVICEINSTANCEA* instance, VOID* context)
{
    BOOL result;

    unsigned int type = GET_DIDEVICE_TYPE(instance->dwDevType);
    unsigned int subtype = GET_DIDEVICE_SUBTYPE(instance->dwDevType);

    if (type == DI8DEVTYPE_1STPERSON && subtype == DI8DEVTYPE1STPERSON_SIXDOF)
    {
        if (SpoofControllerType)
            ((DIDEVICEINSTANCEA*)instance)->dwDevType = 0x10215; //DI8DEVTYPE_GAMEPAD | DI8DEVTYPEGAMEPAD_STANDARD
    }

    result = D3D9Hook_enumcallbck(instance, context);

    return result;
}
static void ReportDevType( DWORD devType )
{
	byte baseType = GET_DIDEVICE_TYPE( devType );
	byte subType = GET_DIDEVICE_SUBTYPE( devType );

	switch ( baseType )
	{
	default:
		DevMsg( "unknown type\n" );
		break;
	case DI8DEVTYPE_DEVICE:
		DevMsg( "DEVICE\n" );
		break;
	case DI8DEVTYPE_MOUSE:
		DevMsg( "MOUSE\n" );
		switch ( subType )
		{
		default:
			break;
		case DI8DEVTYPEMOUSE_UNKNOWN:
			DevMsg( "DI8DEVTYPEMOUSE_UNKNOWN\n" );
			break;
		case DI8DEVTYPEMOUSE_TRADITIONAL:
			DevMsg( "DI8DEVTYPEMOUSE_TRADITIONAL\n" );
			break;
		case DI8DEVTYPEMOUSE_FINGERSTICK:
			DevMsg( "DI8DEVTYPEMOUSE_FINGERSTICK\n" );
			break;
		case DI8DEVTYPEMOUSE_TOUCHPAD:
			DevMsg( "DI8DEVTYPEMOUSE_TOUCHPAD\n" );
			break;
		case DI8DEVTYPEMOUSE_TRACKBALL:
			DevMsg( "DI8DEVTYPEMOUSE_TRACKBALL\n" );
			break;
		case DI8DEVTYPEMOUSE_ABSOLUTE:
			DevMsg( "DI8DEVTYPEMOUSE_ABSOLUTE\n" );
			break;
		}
		break;
	case DI8DEVTYPE_KEYBOARD:
		DevMsg( "KEYBOARD\n" );
		switch ( subType )
		{
		default:
			break;
		case DI8DEVTYPEKEYBOARD_UNKNOWN:
			DevMsg( "DI8DEVTYPEKEYBOARD_UNKNOWN\n" );
			break;
		case DI8DEVTYPEKEYBOARD_PCXT:
			DevMsg( "DI8DEVTYPEKEYBOARD_PCXT\n" );
			break;
		case DI8DEVTYPEKEYBOARD_OLIVETTI:
			DevMsg( "DI8DEVTYPEKEYBOARD_OLIVETTI\n" );
			break;
		case DI8DEVTYPEKEYBOARD_PCAT:
			DevMsg( "DI8DEVTYPEKEYBOARD_PCAT\n" );
			break;
		case DI8DEVTYPEKEYBOARD_PCENH:
			DevMsg( "DI8DEVTYPEKEYBOARD_PCENH:\n" );
			break;
		case DI8DEVTYPEKEYBOARD_NOKIA1050:
			DevMsg( "DI8DEVTYPEKEYBOARD_NOKIA1050\n" );
			break;
		case DI8DEVTYPEKEYBOARD_NOKIA9140:
			DevMsg( "DI8DEVTYPEKEYBOARD_NOKIA9140\n" );
			break;
		case DI8DEVTYPEKEYBOARD_NEC98:
			DevMsg( "DI8DEVTYPEKEYBOARD_NEC98\n" );
			break;
		case DI8DEVTYPEKEYBOARD_NEC98LAPTOP:
			DevMsg( "DI8DEVTYPEKEYBOARD_NEC98LAPTOP\n" );
			break;
		case DI8DEVTYPEKEYBOARD_NEC98106:
			DevMsg( "DI8DEVTYPEKEYBOARD_NEC98106\n" );
			break;
		case DI8DEVTYPEKEYBOARD_JAPAN106:
			DevMsg( "DI8DEVTYPEKEYBOARD_JAPAN106\n" );
			break;
		case DI8DEVTYPEKEYBOARD_JAPANAX:
			DevMsg( "DI8DEVTYPEKEYBOARD_JAPANAX\n" );
			break;
		case DI8DEVTYPEKEYBOARD_J3100:
			DevMsg( "DI8DEVTYPEKEYBOARD_J3100\n" );
			break;
		}
		break;
	case DI8DEVTYPE_JOYSTICK:
		DevMsg( "JOYSTICK\n" );
		switch ( subType )
		{
		default:
			break;
		case DI8DEVTYPEJOYSTICK_LIMITED :
			DevMsg( "DI8DEVTYPEJOYSTICK_LIMITED\n" );
			break;
		case DI8DEVTYPEJOYSTICK_STANDARD:
			DevMsg( "DI8DEVTYPEJOYSTICK_STANDARD\n" );
			break;
		}
		break;
	case DI8DEVTYPE_GAMEPAD:
		DevMsg( "GAMEPAD\n" );
		switch ( subType )
		{
		default:
			break;
		case DI8DEVTYPEGAMEPAD_LIMITED:
			DevMsg( "DI8DEVTYPEGAMEPAD_LIMITED\n" );
			break;
		case DI8DEVTYPEGAMEPAD_STANDARD:
			DevMsg( "DI8DEVTYPEGAMEPAD_STANDARD\n" );
			break;
		case DI8DEVTYPEGAMEPAD_TILT:
			DevMsg( "DI8DEVTYPEGAMEPAD_TILT\n" );
			break;
		}
		break;
	case DI8DEVTYPE_DRIVING:
		DevMsg( "DRIVING\n" );
		switch ( subType )
		{
		default:
			break;
		case DI8DEVTYPEDRIVING_LIMITED:
			DevMsg( "DI8DEVTYPEDRIVING_LIMITED\n" );
			break;
		case DI8DEVTYPEDRIVING_COMBINEDPEDALS:
			DevMsg( "DI8DEVTYPEDRIVING_COMBINEDPEDALS\n" );
			break;
		case DI8DEVTYPEDRIVING_DUALPEDALS:
			DevMsg( "DI8DEVTYPEDRIVING_DUALPEDALS\n" );
			break;
		case DI8DEVTYPEDRIVING_THREEPEDALS:
			DevMsg( "DI8DEVTYPEDRIVING_THREEPEDALS\n" );
			break;
		case DI8DEVTYPEDRIVING_HANDHELD:
			DevMsg( "DI8DEVTYPEDRIVING_HANDHELD\n" );
			break;
		}
		break;
	case DI8DEVTYPE_FLIGHT:
		DevMsg( "FLIGHT\n" );
		switch ( subType )
		{
		default:
			break;
		case DI8DEVTYPEFLIGHT_LIMITED:
			DevMsg( "DI8DEVTYPEFLIGHT_LIMITED\n" );
			break;
		case DI8DEVTYPEFLIGHT_STICK:
			DevMsg( "DI8DEVTYPEFLIGHT_STICK\n" );
			break;
		case DI8DEVTYPEFLIGHT_YOKE:
			DevMsg( "DI8DEVTYPEFLIGHT_YOKE\n" );
			break;
		case DI8DEVTYPEFLIGHT_RC:
			DevMsg( "DI8DEVTYPEFLIGHT_RC\n" );
			break;
		}
		break;
	case DI8DEVTYPE_1STPERSON:
		DevMsg( "1STPERSON\n" );
		switch ( subType )
		{
		default:
			break;
		case DI8DEVTYPE1STPERSON_LIMITED:
			DevMsg( "DI8DEVTYPE1STPERSON_LIMITED\n" );
			break;
		case DI8DEVTYPE1STPERSON_UNKNOWN:
			DevMsg( "DI8DEVTYPE1STPERSON_UNKNOWN\n" );
			break;
		case DI8DEVTYPE1STPERSON_SIXDOF:
			DevMsg( "DI8DEVTYPE1STPERSON_SIXDOF\n" );
			break;
		case DI8DEVTYPE1STPERSON_SHOOTER:
			DevMsg( "DI8DEVTYPE1STPERSON_SHOOTER\n" );
			break;
		}
		break;
	case DI8DEVTYPE_DEVICECTRL:
		DevMsg( "DEVICECTRL\n" );
		switch ( subType )
		{
		default:
			break;
		case DI8DEVTYPEDEVICECTRL_UNKNOWN:
			DevMsg( "DI8DEVTYPEDEVICECTRL_UNKNOWN\n" );
			break;
		case DI8DEVTYPEDEVICECTRL_COMMSSELECTION:
			DevMsg( "DI8DEVTYPEDEVICECTRL_COMMSSELECTION\n" );
			break;
		case DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED:
			DevMsg( "DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED\n" );
			break;
		}
		break;
	case DI8DEVTYPE_SCREENPOINTER:
		DevMsg( "SCREENPOINTER\n" );
		switch ( subType )
		{
		default:
			break;
		case DI8DEVTYPESCREENPTR_UNKNOWN:
			DevMsg( "DI8DEVTYPESCREENPTR_UNKNOWN\n" );
			break;
		case DI8DEVTYPESCREENPTR_LIGHTGUN:
			DevMsg( "DI8DEVTYPESCREENPTR_LIGHTGUN\n" );
			break;
		case DI8DEVTYPESCREENPTR_LIGHTPEN:
			DevMsg( "DI8DEVTYPESCREENPTR_LIGHTPEN\n" );
			break;
		case DI8DEVTYPESCREENPTR_TOUCH:
			DevMsg( "DI8DEVTYPESCREENPTR_TOUCH\n" );
			break;
		}
		break;
	case DI8DEVTYPE_REMOTE:
		DevMsg( "REMOTE\n" );
		switch ( subType )
		{
		default:
			break;
		case DI8DEVTYPEREMOTE_UNKNOWN:
			DevMsg( "DI8DEVTYPEREMOTE_UNKNOWN\n" );
			break;
		}
		break;
	case DI8DEVTYPE_SUPPLEMENTAL:
		DevMsg( "SUPPLEMENTAL\n" );
		switch ( subType )
		{
		default:
			break;
		case DI8DEVTYPESUPPLEMENTAL_UNKNOWN:
			DevMsg( "DI8DEVTYPESUPPLEMENTAL_UNKNOWN\n" );
			break;
		case DI8DEVTYPESUPPLEMENTAL_2NDHANDCONTROLLER:
			DevMsg( "DI8DEVTYPESUPPLEMENTAL_2NDHANDCONTROLLER\n" );
			break;
		case DI8DEVTYPESUPPLEMENTAL_HEADTRACKER:
			DevMsg( "DI8DEVTYPESUPPLEMENTAL_HEADTRACKER\n" );
			break;
		case DI8DEVTYPESUPPLEMENTAL_HANDTRACKER:
			DevMsg( "DI8DEVTYPESUPPLEMENTAL_HANDTRACKER\n" );
			break;
		case DI8DEVTYPESUPPLEMENTAL_SHIFTSTICKGATE:
			DevMsg( "DI8DEVTYPESUPPLEMENTAL_SHIFTSTICKGATE\n" );
			break;
		case DI8DEVTYPESUPPLEMENTAL_SHIFTER:
			DevMsg( "DI8DEVTYPESUPPLEMENTAL_SHIFTER\n" );
			break;
		case DI8DEVTYPESUPPLEMENTAL_THROTTLE:
			DevMsg( "DI8DEVTYPESUPPLEMENTAL_THROTTLE\n" );
			break;
		case DI8DEVTYPESUPPLEMENTAL_SPLITTHROTTLE:
			DevMsg( "DI8DEVTYPESUPPLEMENTAL_SPLITTHROTTLE\n" );
			break;
		case DI8DEVTYPESUPPLEMENTAL_COMBINEDPEDALS:
			DevMsg( "DI8DEVTYPESUPPLEMENTAL_COMBINEDPEDALS\n" );
			break;
		case DI8DEVTYPESUPPLEMENTAL_DUALPEDALS:
			DevMsg( "DI8DEVTYPESUPPLEMENTAL_DUALPEDALS\n" );
			break;
		case DI8DEVTYPESUPPLEMENTAL_THREEPEDALS:
			DevMsg( "DI8DEVTYPESUPPLEMENTAL_THREEPEDALS\n" );
			break;
		case DI8DEVTYPESUPPLEMENTAL_RUDDERPEDALS:
			DevMsg( "DI8DEVTYPESUPPLEMENTAL_RUDDERPEDALS\n" );
			break;
		}
		break;
	}
}