⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 human interface devices.zip 一套组件
💻 TXT
📖 第 1 页 / 共 2 页
字号:
STANDALONE has been defined to allow integration in the JVCL.
CancelIO is now loaded dynamically because it is missing
from Windows 95.
The LanguageStrings always contained the local language
because of a bug in interpreting the language IDs. Fixed.
The C++ Builder package project has been removed. Create it
yourself by simply adding JvHidControllerClass.pas to a new
package project. The BCB 6 Trial version did not work with
some BCB versions.
The reading of the device properties in CtlCreate has been
removed almost entirely. The properties are now only read
when accessed. This solves problems with bad drivers for
some devices. Reading the device could crash the computer.
Now it only crashes when the device is accessed. Previously
it would crash if the device was plugged even if your
program was not interested in the device at all.
-----------------------------------------------------------------------------
1.0.2 is a bugfix version.
Dropping a second TJvHidDeviceController on a form did not
give the proper exception because of a bug the destructor.
CtlCreate raised a range check error because the buffer fix
below was incomplete.
Changed the demos to be Delphi 5 projects. Added "..\.."
to their search pathes. That should make them link without
problems.
-----------------------------------------------------------------------------
Added the new functions (Win XP only) HidD_GetInputReport and
HidD_SetOutputReport to HID.pas. Fixed a bug where the buffer
for HidD_GetManufacturerString was too long for XP!
Changed the .dpk back to Delphi 5 version. Delphi 6 can use it.
Added "cHidControllerClassVersion = '1.0.1';" for this version.
-----------------------------------------------------------------------------
Improved Windows 2000 and XP compatibility.
PhysicalDecriptor is now of correct type.
LinkCollectionNodes access changed to be 0 based.
The C++ Builder package is for BCB 6. For earlier BCB versions
best recreate it by adding HidControllerClass.pas to a new package.
-----------------------------------------------------------------------------
PnPInfo extended to carry ALL possible registry entries.
-----------------------------------------------------------------------------
Introduced property PnPInfo: TJvPnPInfo. The properties RegDescr
(as DeviceDescr), RegClass (as ClassDescr), DeviceID and DevicePath have
been moved to this record. All relevant registry entries for HID devices
have been added.
-----------------------------------------------------------------------------
All strings from the device and parameters to be matched
with such strings have been changed to WideString.

Added some methods to TJvHidDeviceController.
CountByClass, CountByID, CountByProductName, CountByVendorName
count the currently plugged devices. The match criteria are the
same as with the CheckOut methods.
Added some "const" to parameters.
-----------------------------------------------------------------------------
The component is now C++ Builder compatible.

PreparsedData is now a public property of the correct Pointer type.
This was the last BCB incompatibility remaining.

HidOverlappedHandle has been separated into HidOverlappedRead
and HidOverlappedWrite handles to allow reading and writing in
separate threads. OpenFileEx and CloseFileEx now have a mode
parameter to address one of the file handles.
Added on request of a modem programmer.

The new property DeviceStringsUnicode works just like DeviceStrings
but does not convert the Unicode strings to Ansi strings.
Added on request of a russian programmer.

"packed" has been removed from all records of HID.pas. It was wrong.
-----------------------------------------------------------------------------
The component now works at design time. DoDeviceChange has been
changed to the published method DeviceChange to allow calling it at
design time. Its implementation has been optimized.
HID.pas and SetupApi.pas now default to load their DLL dynamically.
This is allows programs using USB or non-USB versions of a device
to run on Win95 where there is no USB. The component simply finds
no USB devices and the program can search for non-USB devices.
Added class method HidVersion which reads the version information from
HID.DLL.
-----------------------------------------------------------------------------
Method GetPhysicalDescriptor has been replaced by string property
PhysicalDescriptor.
ReadFileEx and WriteFileEx implemented. HidOverlappedHandle,
NumOverlappedBuffers, OpenFileEx and CloseFileEx accompany
these new methods.
The internal access to the device registry entries
is now made with SetupDiGetDeviceRegistryProperty and
is therefore Win2K safe.
The property HardWareKey has been deleted because it is not
needed anymore.
DeviceStrings and LinkCollectionNodes have been changed
to indexed properties. Their base index now starts correctly with 1.
Two utility functions HidCheck and HidError have been added and
documented in the help.
Added NumCheckedInDevices, NumCheckedOutDevices and NumUnpluggedDevices.
Various small improvements and bugfixes.
-----------------------------------------------------------------------------
Bugfixes since last version:
The events are set to nil in the destructor. This prevents
strange problems with debugging.
The index of the DeviceStrings now corresponds with their index
when read in from the device. This now correctly represents
device strings with nonconsecutive indices.
DeviceIoControl has been added as a method.

A new sample ReadWriteDemo has been added.
> This sample and its data is rigged to the www.lvr.com
> hid sample for the cypress evaluation board.
Bugfixes since last version:
PAS\HID.PAS:
All params like "Report: PChar" changed to "var Report"
This allows the use of buffers or records for the reports
without any compiler warnings.
DEMOS\HIDCLASS\HidControllerClass.pas:
Propagated the untyped Report params up to the methods.
Added ReadFile and WriteFile methods.
The list of the language names (LanguageStrings) has
been introduced.
Fixed the central function FillInList to correctly use
the SetupDi* functions.
Added an exception to TJvHidDeviceController to prevent
instanciating a second one.
Various minor fixes. Help file completed.
-----------------------------------------------------------------------------
Hid.pas is a conversion of HIDPI.H and HIDSDI.H since both function groups
reside in HID.DLL and HIDSDI.H includes HIDPI.H anyway.
I added HidD_Hello() to the conversion.
This is the undocumented easter egg function of HID.DLL.
See Hid.pas for details.

HidToken.pas is a simple conversion of hidtoken.h.
It contains only consts and some converted checking macros.

HidUsage.pas is a more than complete conversion from hidusage.h
The TUsage and PUsage types have been moved to Hid.pas.
This eliminates the need to include HidUsage.pas in all HID projects.
So HidToken.pas and HidUsage.pas are only needed in projects where
the named constants are needed.

Some sets of constants have been completed (mainly keys).
The constants are for Usage, UsagePage and Usage values.
That is they describe the real data you will get from USB devices.

For real information read "USB HID Usage Tables 1.1rc3.pdf"
or newer versions thereof from www.usb.org.

I added some comments marked (rom) to clarify some things.
Changes from Windows 98 DDK to Windows 2000 DDK i marked (Win2000).
The new functions documented in the Windows 2000 DDK have been implemented
already in the HID.DLL of Windows 98 SE.
The function declarations are inside a {$IFDEF WIN2000}.

You will need SetupApi.pas from the SetupApi conversion and DBT.pas from the DBT conversion.

The component in Demos\HidClass gives you access to the complete HID API.
There is no need to use the functions directly.

known issues:
some of the new constants in HidUsage.pas may be named incorrectly
as a german i do not know all the real english key names

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -