HidDeviceButtonCapabilities[] GetDeviceButtonCapabilities(IntPtr handle) { var capsLength = (short)capabilities.NumberInputButtonCaps; var buttonCapabilities = new HidApi.HIDP_BUTTON_CAPS[capsLength]; using (var dataContext = new PreparsedDataContext(handle)) { HidApi.HidP_GetButtonCaps(HidApi.HIDP_REPORT_TYPE.Input, buttonCapabilities, ref capsLength, dataContext.Handle); } return(buttonCapabilities.Select(caps => new HidDeviceButtonCapabilities(caps)).ToArray()); }
internal HidDeviceButtonCapabilities(HidApi.HIDP_BUTTON_CAPS caps) { UsagePage = caps.UsagePage; ReportId = caps.ReportID; IsAlias = caps.IsAlias; BitField = caps.BitField; LinkCollection = caps.LinkCollection; LinkUsage = caps.LinkUsage; LinkUsagePage = caps.LinkUsagePage; IsRange = caps.IsRange; IsStringRange = caps.IsStringRange; IsDesignatorRange = caps.IsDesignatorRange; IsAbsolute = caps.IsAbsolute; Reserved = caps.Reserved; Range = new HidDeviceButtonRange(caps.Range); NotRange = new HidDeviceButtonNotRange(caps.NotRange); }