//---------------------------------------------------------------------------
#ifndef usb_hidH
#define usb_hidH
//---------------------------------------------------------------------------
#define MaxDevices 10	// максимальное количество девайсов
//---------------------------------------------------------------------------
HINSTANCE                       	hDll;						// указатель на загруженную библиотеку
HANDLE								DeviceHandle;				// указатель на открытый девайс
GUID                            	HidGuid;					// идентификатор класса HID-устройств
HDEVINFO                        	DeviceInfoSet;				// указатель на полученный набор (список) HID-устройств
SP_DEVICE_INTERFACE_DATA        	DeviceInterfaceData;		// структура с данными об интерфейсе очередного устройства
PSP_DEVICE_INTERFACE_DETAIL_DATA	DeviceInterfaceDataDetail;	// структура с детальными данными об интерфейсе очередного устройства (содержит путь к устройству)
PHIDP_PREPARSED_DATA				DevicePreparsedData;		// блок данных для обработки репортов
ULONG								Length;						// размер буфера для получения детальных данных об интерфейсе очередного устройства
int									Index;						// номер очередного рассматриваемого интерфейса
bool								ok;							// признак успешности вызова некоторых функций

HIDD_ATTRIBUTES						Attributes;					// структура для хранения атрибутов устройства
HIDP_CAPS							Capabilities;				// возможности из дескриптора репорта

wchar_t								Manufacturer[128];			// сюда будем получать производителя
wchar_t								Product[128];	  			// сюда - название продукта
wchar_t 							Serial[128];	  			// а сюда - серийный номер

// массивы для хранения данных о найденном девайсе
PSP_DEVICE_INTERFACE_DETAIL_DATA	DeviceInterfaceDataDetailArray[MaxDevices];		// пути к найденным девайсам
ULONG								DeviceInterfaceDataDetaiSzArray[MaxDevices];	// размеры буферов детальных данных об интерфейсах устройств (длины путей)
int									DeviceInReportSizeArray[MaxDevices];			// размеры репортов IN найденных девайсов
int									DeviceOutReportSizeArray[MaxDevices];			// размеры репортов OUT найденных девайсов
int									DeviceFeatureReportSizeArray[MaxDevices];  		// размеры репортов FEATURE найденных девайсов

// данные выбранного девайса
int									ConnectedDeviceNumber; 		// номер подключенного девайса
//---------------------------------------------------------------------------
void	FindHID(void);	                   						// поиск всех HID-устройств
int		ConnectToDevice(int);									// подключение к выбранному девайсу
void	DisconnectFromDevice();									// отключение от устройства
//---------------------------------------------------------------------------
#endif
