4-10 Chapter 4: Programming
The SetClicks method examines all currently-enumerated HID devices,
finds those with a Vendor-ID equal to NCR’s assigned Vendor ID
(0x0404). Among all qualified devices found, each device is searched
for a KEY_CLICK_INFO feature report that contains Volume, Frequency,
and Duration usages. When a matching device is found, that device’s
product ID (PID) is used to locate keyclick values within the Registry.
The values found in the registry are sent to the device in the
KEY_CLICK_INFO feature report.
Each time SetClicks is invoked, it reads Volume, Frequency, and Duration
keyclick parameters from the registry. If these parameters are not
found in the registry, default values are written to the registry, and
these default values are used. This causes the registry to contain the
values most recently sent to NCR HID KeyClick devices.
The default values for Volume, Frequency, and Duration,
SetUsbKeyClick are 15, 1318, and 16, respectively.
The SetKeyMatrix method examines all currently-enumerated HID
devices, finds those with a Vendor-ID equal to NCR’s assigned Vendor
ID (0x0404). Among all qualified devices found, each device is
searched for a KEYBOARD_MAP feature report that contains an array
of KEY_MATRIX_USAGE usages, When a matching device is found,
that device’s PID is used to locate Key Matrix entries in the Registry. If
no Key Matrix values are found for that specific PID, no Key Matrix
download is performed.
For each KEYBOARD_MAP device located, SetKeyMatrix creates a full
default keyboard matrix that duplicates the factory-default matrix of
the specific product located. Next, the registry is read for replacement
values within the Keyboard Matrix. All registry values found in the
appropriate registry key are replaced within the default matrix. Finally,
the full key matrix as modified by registry values is sent to the
keyboard using the KEYBOARD_MAP feature report.