/// <summary> /// Returns an enumeration of the available input devices. /// </summary> /// <param name="deviceClass">The device class to enumerate.</param> /// <param name="filter">The device filter to apply to the enumeration.</param> /// <returns>Available devices which match the input filters.</returns> public IEnumerable <DeviceInfo> GetDevices(DeviceClass deviceClass, DeviceEnumFlags filter) { var devices = new List <DeviceInfo>(); unsafe { EnumDevicesCallback callback = (i, p) => { devices.Add(new DeviceInfo((DIDEVICEINSTANCE *)i.ToPointer())); return(1); }; var res = this.enumDevices(this.directInput, (uint)deviceClass, callback, IntPtr.Zero, (uint)filter); } return(devices); }
public unsafe static extern int EnumDevices(void * /*IDirectInput*/ _this, uint /*DeviceClassFilter*/ dwDevType, EnumDevicesCallback lpCallback, void *pvRef, uint /*DeviceEnumFlags*/ dwFlags);