私は現在、近くのBluetoothデバイスを検出して名前が一致する場合はPCに接続するプログラムと、setupapiでデバイスを検索してHID通信のハンドルを取得するプログラムの2つの部分に分かれているプログラムを作成しています。
私の問題は、接続したばかりのデバイスが setupapi で見つけたものと同じであることを示すものが見つからないことです。
したがって、最初の部分では、次のようなものがあります。
BLUETOOTH_DEVICE_INFO btdi;
//--- Code omitted ---
BluetoothGetDeviceInfo(radio_handle, &btdi);
if(std::wstring(btdi.szName) == /*my name*/)
// Device found! now connect
BluetoothSetServiceState(radio_handle, &btdi, &HumanInterfaceDeviceServiceClass_UUID, BLUETOOTH_SERVICE_ENABLE);
そして setupapi 関連のコード:
SP_DEVICE_INTERFACE_DATA device_data;
device_data.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
//--- Code omitted ---
SetupDiEnumDeviceInterfaces(device_infos, NULL, &hid_guid, index, &device_data);
デバイスの Bluetooth アドレスを使用することを考えていましたが、setupapi からそれを取得する方法がないようです。
要約すると、setupi からデバイスのアドレスを取得する方法はありますか? そうでない場合、両方が同じデバイスであることを確認する他の方法はありますか?