using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HidLibrary { public interface IHidDevice : IDisposable { IntPtr ReadHandle { get; } IntPtr WriteHandle { get; } bool IsOpen { get; } bool IsConnected { get; } string Description { get; } HidDeviceCapabilities Capabilities { get; } HidDeviceAttributes Attributes { get; } string DevicePath { get; } bool MonitorDeviceEvents { get; set; } event InsertedEventHandler Inserted; event RemovedEventHandler Removed; void OpenDevice(); void OpenDevice(DeviceMode readMode, DeviceMode writeMode); void CloseDevice(); HidDeviceData Read(); void Read(ReadCallback callback); HidDeviceData Read(int timeout); void ReadReport(ReadReportCallback callback); HidReport ReadReport(int timeout); HidReport ReadReport(); bool ReadFeatureData(out byte[] data, byte reportId = 0); bool ReadProduct(out byte[] data); bool ReadManufacturer(out byte[] data); bool ReadSerialNumber(out byte[] data); void Write(byte[] data, WriteCallback callback); bool Write(byte[] data); bool Write(byte[] data, int timeout); void WriteReport(HidReport report, WriteCallback callback); bool WriteReport(HidReport report); bool WriteReport(HidReport report, int timeout); HidReport CreateReport(); bool WriteFeatureData(byte[] data); } }