Сообщения Bluetooth и WM_DEVICECHANGE
Bluetooth включает определенные WM_DEVICECHANGE сообщения, позволяющие разработчикам получать сообщения при изменении состояния устройств Bluetooth. В этом разделе описывается, как получать сообщения, относящиеся к Bluetooth, WM_DEVICECHANGE и перечислять сообщения, относящиеся к Bluetooth.
Получение сообщений, относящихся к Bluetooth, WM_DEVICECHANGE
Чтобы получать WM_DEVICECHANGE сообщения, сначала необходимо открыть дескриптор локального радио. Для этого используйте один из следующих методов.
- Используйте функцию SetupDiGetClassDevs со следующими параметрами: (GUID_BTHPORT_DEVICE_INTERFACE, ..., DIGCF_PRESENT | DIGCF_DEVICEINTERFACE), а затем используйте функции SetupDiEnumDeviceInterfaces, SetupDiGetDeviceInterfaceDetail, CreateFile и SetupDiDeskDeviceInfoList.
- Используйте функции BluetoothFindFirstRadio, BluetoothFindNextRadio и BluetoothFindRadioClose.
При открытии переключателя Bluetooth вызовите функцию RegisterDeviceNotification и зарегистрируйте уведомления на дескрипторе с помощью DBT_DEVTYP_HANDLE в качестве типа устройства. При регистрации отправляются следующие идентификаторы GUID, а элемент DEV_BROADCAST_HANDLE::dbch_data является соответствующим буфером.
Сообщения, относящиеся к Bluetooth
В следующей таблице перечислены сообщения, относящиеся к Bluetooth, WM_DEVICECHANGE .
GUID | BUFFER | Description |
---|---|---|
GUID_BLUETOOTH_HCI_EVENT | BTH_HCI_EVENT_INFO | Это сообщение отправляется при подключении или отключении удаленного устройства Bluetooth на уровне ACL. |
GUID_BLUETOOTH_L2CAP_EVENT | BTH_L2CAP_EVENT_INFO | Это сообщение отправляется при установке или завершении канала L2CAP между локальным радио и удаленным устройством Bluetooth. Для каналов L2CAP, которые являются мультиплексорами, например RFCOMM, это сообщение отправляется только при установке базового канала, а не в том случае, если каждый мультиплексированный канал, например канал RFCOMM, устанавливается или завершается. |
GUID_BLUETOOTH_PIN_REQUEST | Неприменимо. | Это сообщение должно игнорироваться приложением. Если приложение должно получать ПИН-коды, следует использовать функцию BluetoothRegisterForAuthentication. |
GUID_BLUETOOTH_RADIO_IN_RANGE | BTH_RADIO_IN_RANGE | Это сообщение отправляется при изменении любого из следующих атрибутов удаленного устройства Bluetooth: обнаружено устройство, класс устройства, имя, подключенное состояние или запоминаемое состояние устройства. Это сообщение также отправляется при установке или очистке этих атрибутов. |
GUID_BLUETOOTH_RADIO_OUT_OF_RANGE | BLUETOOTH_ADDRESS | Это сообщение отправляется, когда ранее обнаруженное устройство не найдено после завершения последнего расследования. Это сообщение не будет отправлено для запоминаемых устройств. Структура BTH_ADDRESS — это адрес устройства, который не найден. |
См. также