Я кодирую функцию для обнаружения добавления / удаления USB-устройств, используя C ++ VS2019 в windows. WM_DEVICECHANGE выдает уведомление, когда устройство удалено или подключено к P C, но выдает несколько уведомлений для одного устройства. Параметры, которые возвращаются через, также одинаковы для всех уведомлений.
Проблема в том, что когда два устройства подключены или удалены одно за другим, количество уведомлений увеличивается, но параметры остаются неизменными. Как отличить уведомления от разных устройств.
BEGIN_MESSAGE_MAP(CCheckDlg, CDialogEx)
ON_MESSAGE(WM_DEVICECHANGE, &CCheckDlg::OnMyDeviceChange)
END_MESSAGE_MAP()
Функция:
LRESULT CCheckDlg::OnMyDeviceChange(WPARAM wParam, LPARAM lParam)
{
//When USB device connected or removed,
//The wParam is always equal to 7 and lParam is equal to 0.
}
Или, если есть какой-либо другой способ обнаружения добавления / удаления устройства с помощью C ++, Вы можете предложить.
Спасибо.