共用方式為


藍牙和WM_DEVICECHANGE訊息

藍牙包含特定 WM_DEVICECHANGE 訊息,可讓開發人員在藍牙裝置進行狀態變更時取得訊息。 本主題描述如何接收藍牙特定 WM_DEVICECHANGE 訊息,並列出藍牙特定訊息。

接收藍牙特定WM_DEVICECHANGE訊息

若要接收 WM_DEVICECHANGE 訊息,必須先開啟本機無線電的句柄。 若要這樣做,請使用下列其中一種方法:

開啟藍牙無線電句柄時,呼叫 RegisterDeviceNotification 函式,並使用 DBT_DEVTYP_HANDLE 作為 devicetype 來註冊句柄上的通知。 註冊時,會傳送下列 GUID,且 DEV_BROADCAST_HANDLE::dbch_data 成員是相關聯的緩衝區。

藍牙特定訊息

下表列出藍牙特定 WM_DEVICECHANGE 訊息。

GUID 緩衝區 描述
GUID_BLUETOOTH_HCI_EVENT BTH_HCI_EVENT_INFO 當遠端藍牙裝置在 ACL 層級連線或中斷連線時,就會傳送此訊息。
GUID_BLUETOOTH_L2CAP_EVENT BTH_L2CAP_EVENT_INFO 當本機無線電與遠端藍牙裝置之間的 L2CAP 通道已建立或終止時,就會傳送此訊息。 對於多任務器,例如 RFCOMM 的 L2CAP 通道,此訊息只會在建立基礎通道時傳送,而不是建立或終止每個多任務通道,例如 RFCOMM 通道時。
GUID_BLUETOOTH_PIN_REQUEST 不適用。 應用程式應該忽略此訊息。 如果應用程式必須接收 PIN 要求,則應該使用 BluetoothRegisterForAuthentication 函式。
GUID_BLUETOOTH_RADIO_IN_RANGE BTH_RADIO_IN_RANGE 當遠端藍牙裝置的任何下列屬性變更時,就會傳送此訊息:裝置已探索、裝置類別、名稱、連線狀態或裝置記住狀態。 設定或清除這些屬性時,也會傳送此訊息。
GUID_BLUETOOTH_RADIO_OUT_OF_RANGE BLUETOOTH_ADDRESS 在上次查詢完成之後,找不到先前探索到的裝置時,就會傳送此訊息。 此訊息不會針對記住的裝置傳送。 BTH_ADDRESS 結構是找不到之裝置的位址。

 

BluetoothFindFirstRadio

BluetoothFindNextRadio

BluetoothFindRadioClose

RegisterDeviceNotification

SetupDiDestroyDeviceInfoList

SetupDiEnumDeviceInterfaces

SetupDiGetClassDevs

BLUETOOTH_ADDRESS

BTH_HCI_EVENT_INFO

BTH_L2CAP_EVENT_INFO

BTH_RADIO_IN_RANGE

DEV_BROADCAST_HANDLE

WM_DEVICECHANGE