Ejemplo n.º 1
0
        /// <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);