藍牙和WM_DEVICECHANGE訊息
藍牙 包含特定WM_DEVICECHANGE訊息,可讓開發人員在 藍牙 裝置進行狀態變更時取得訊息。 本主題描述如何接收 藍牙 特定WM_DEVICECHANGE訊息,並列出 藍牙 特定訊息。
接收特定 藍牙 WM_DEVICECHANGE訊息
若要接收 WM_DEVICECHANGE 訊息,必須先開啟本機無線電的句柄。 若要執行此工作,請使用下列的其中一個方法:
- 使用 SetupDiGetClassDevs 函式搭配下列參數:(GUID_BTHPORT_DEVICE_INTERFACE...、DIGCF_PRESENT |DIGCF_DEVICEINTERFACE),然後使用 SetupDiEnumDeviceInterfaces、SetupDiGetDeviceInterfaceDetail、CreateFile 和 SetupDiDestroyDeviceInfoList 函式。
- 使用 藍牙 FindFirstRadio、藍牙 FindNextRadio 和 藍牙 FindRadioClose 函式。
開啟 藍牙 無線電句柄時,呼叫 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 要求,則應該使用 藍牙 RegisterForAuthentication 函式。 |
GUID_BLUETOOTH_RADIO_IN_RANGE | BTH_RADIO_IN_RANGE | 當遠端 藍牙 裝置的任何屬性變更時,就會傳送此訊息:裝置已探索、裝置類別、名稱、連線狀態或裝置記住狀態。 設定或清除這些屬性時,也會傳送此訊息。 |
GUID_BLUETOOTH_RADIO_OUT_OF_RANGE | BLUETOOTH_ADDRESS | 在上次查詢完成之後,找不到先前探索到的裝置時,就會傳送此訊息。 此訊息不會針對記住的裝置傳送。 BTH_ADDRESS結構是找不到之裝置的位址。 |
相關主題