Поделиться через


Сообщения Bluetooth и WM_DEVICECHANGE

Bluetooth включает определенные WM_DEVICECHANGE сообщения, позволяющие разработчикам получать сообщения при изменении состояния устройств Bluetooth. В этом разделе описывается, как получать сообщения, относящиеся к Bluetooth, WM_DEVICECHANGE и перечислять сообщения, относящиеся к Bluetooth.

Получение сообщений, относящихся к Bluetooth, WM_DEVICECHANGE

Чтобы получать WM_DEVICECHANGE сообщения, сначала необходимо открыть дескриптор локального радио. Для этого используйте один из следующих методов.

При открытии переключателя 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 — это адрес устройства, который не найден.

 

BluetoothFindFirstRadio

BluetoothFindNextRadio

BluetoothFindRadioClose

RegisterDeviceNotification

SetupDiDeskDeviceInfoList

SetupDiEnumDeviceInterfaces

SetupDiGetClassDevs

BLUETOOTH_ADDRESS

BTH_HCI_EVENT_INFO

BTH_L2CAP_EVENT_INFO

BTH_RADIO_IN_RANGE

DEV_BROADCAST_HANDLE

WM_DEVICECHANGE