Трудности с использованием RegisterDeviceNotification()
От: jhoo  
Дата: 04.04.05 12:06
Оценка:
Имеется некоторый класс, который умеет работать с устройствами 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.

Как быть с указанием этого параметра, ведь у меня нет ни окон
ни сервисов, а только обычный класс управления. Создавать для этого доп.окно
и ловить в нем сообщения? Не хотелось бы...
Какой еще вариант можно использовать?
Re: Трудности с использованием RegisterDeviceNotification()
От: Геннадий Майко США  
Дата: 04.04.05 13:24
Оценка: 4 (1)
Здравствуйте, 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 уважением,
Геннадий Майко.
Re[2]: Трудности с использованием RegisterDeviceNotification
От: jhoo  
Дата: 05.04.05 04:46
Оценка:
Спасибо!
Жаль только, что она начинается с ХР.
Похоже придется делать через message-only windows (((
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.