Communicating with Human Interface Devices such as Alphanumeric display, Bar Code Reader, Sensors, Volume control on Speakers/Headsets becomes a primary use case for real-world, Cross-platform applications. Do you spend more time in building libraries to communicate with Human Interface Devices for your Delphi/C++ FireMonkey applications? WINSOFT Provides a powerful library to get the job done. It uses the standard Windows HID API.


  • Able to notify on Human Interface Devices arrival and removal.
  • Can retrieve all the HID devices information available in the System.
  • Flexible to getting/set Feature Report for the HID devices.
  • Works with Windows 32/64-bit applications.

Versions Supported: /C++ Builder XE2 – C++ Builder 10.4.1 Sydney

Platforms: Windows, OS X, Android, and iOS;

Steps to Download and use the Native HID Library:

  1. Download Native HID for FireMonkey and Unzip the file.
  2. Na to the Library folder for different Versions. e.g) Delphi104-Win32.
  3. Read the Readme.txt file to know about features and copyright information.
  4. Create a Windows VCL Application and use FHid.pas in the uses section.
  5. Include the Library folder into Project->Options->Delphi Compiler->Search Path.
  6. Compile and check for using the library.

NativeHID Download and Use for FireMonkey demo:

Key HID concepts:
Report -Reports are the actual data that is exchanged between a device and a software client.

  •  Input Report – Data sent from the Human Interface Devices to the application, typically when the state of a control changes.
  • Output Report – Data sent from the application to the HID device, for example to the LEDs on a keyboard.
  • Feature Report -Data that can be manually read and/or written, and are typically related to configuration information.

Report Descriptor – The Report Descriptor describes the format and meaning of the data that the device supports.
UsageTables – Contain a list with descriptions of Usages, which describe the intended meaning and use of a particular item described in the Report Descriptor. For example, a Usage is defined for the left button of a mouse.  USB-IF WorkGroup Publishes the Usage Tables. See USB-IF HID Specifications.

Learn how to build FireMonkey applications using Native HID library