Имеется некоторый класс, который умеет работать с устройствами USB (своими).
В этом классе также хранится информация о всех подключенных устройствах к
к моему драйверу. Класс также должен уметь автоматически обновлять эту
информацию в зависимости от того, подключено/отключено устройство и сколько
их всего.
Собственно вопрос:
Для реализации вышеперечисленных вещей, как я понял, используют функцию
RegisterDeviceNotification(), в которой первым параметром идет дескриптор
окна или сервиса (описание hRecipient):
hRecipient
[in] Handle to the window or service that will receive device events
for the devices specified in the NotificationFilter parameter.
The same window handle can be used in multiple calls to
RegisterDeviceNotification.
Как быть с указанием этого параметра, ведь у меня нет ни окон
ни сервисов, а только обычный класс управления. Создавать для этого доп.окно
и ловить в нем сообщения? Не хотелось бы...
Какой еще вариант можно использовать?
Здравствуйте, jhoo, Вы писали:
J>Имеется некоторый класс, который умеет работать с устройствами USB (своими).
J>В этом классе также хранится информация о всех подключенных устройствах к
J>к моему драйверу. Класс также должен уметь автоматически обновлять эту
J>информацию в зависимости от того, подключено/отключено устройство и сколько
J>их всего.
J>Собственно вопрос:
J>Для реализации вышеперечисленных вещей, как я понял, используют функцию
J>RegisterDeviceNotification(), в которой первым параметром идет дескриптор
J>окна или сервиса (описание hRecipient):
J> hRecipient
J> [in] Handle to the window or service that will receive device events
J> for the devices specified in the NotificationFilter parameter.
J> The same window handle can be used in multiple calls to
J> RegisterDeviceNotification.
J>Как быть с указанием этого параметра, ведь у меня нет ни окон
J>ни сервисов, а только обычный класс управления. Создавать для этого доп.окно
J>и ловить в нем сообщения? Не хотелось бы...
J>Какой еще вариант можно использовать?
--
Для последних ОС (XP и старше) можно воспользоваться WMI — см
.http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_devicechangeevent.asp.
C уважением,
Геннадий Майко.