BluetoothFindFirstDevice 函数用于开始蓝牙设备的搜索。该函数返回一个设备搜索句柄,您可以使用这个句柄来枚举蓝牙设备列表。以下是该函数的声明:
HBLUETOOTH_DEVICE_FIND BluetoothFindFirstDevice(
  const BLUETOOTH_DEVICE_SEARCH_PARAMS *pbtsp,
  BLUETOOTH_DEVICE_INFO                *pbtdi
);

参数说明:
  •  pbtsp: 指向 BLUETOOTH_DEVICE_SEARCH_PARAMS 结构的指针,包含设备搜索的参数,如搜索范围等。可以设置为 NULL,表示使用默认参数。

  •  pbtdi: 指向 BLUETOOTH_DEVICE_INFO 结构的指针,用于接收找到的第一个蓝牙设备的信息。如果不需要设备信息,可以设置为 NULL。


返回值:
  •  如果成功,返回一个非空的设备搜索句柄 (HBLUETOOTH_DEVICE_FIND)。

  •  如果失败,返回 NULL。可以使用 GetLastError 函数获取错误信息。


以下是一个简单的示例代码,演示如何使用 BluetoothFindFirstDevice 函数:
#include <BluetoothAPIs.h>
#include <stdio.h>

int main()
{
    // 示例中省略了蓝牙无线电的获取步骤

    BLUETOOTH_DEVICE_SEARCH_PARAMS btsp = { sizeof(BLUETOOTH_DEVICE_SEARCH_PARAMS) };
    BLUETOOTH_DEVICE_INFO btdi = { sizeof(BLUETOOTH_DEVICE_INFO), 0 };

    // 设置设备搜索参数
    btsp.fReturnAuthenticated = TRUE;
    btsp.fReturnRemembered = TRUE;
    btsp.fReturnConnected = TRUE;
    btsp.fReturnUnknown = TRUE;
    btsp.fIssueInquiry = TRUE;
    btsp.cTimeoutMultiplier = 4; // Timeout = cTimeoutMultiplier * 1.28 seconds

    // 使用 BluetoothFindFirstDevice 获取设备搜索句柄
    HBLUETOOTH_DEVICE_FIND hFind = BluetoothFindFirstDevice(&btsp, &btdi);

    if (hFind != NULL)
    {
        // 处理找到的第一个设备信息
        printf("Found Bluetooth Device: %s\n", btdi.szName);

        // 关闭设备搜索句柄
        BluetoothFindDeviceClose(hFind);
    }
    else
    {
        printf("No Bluetooth devices found.\n");
    }

    return 0;
}

请注意,使用此函数进行设备搜索需要管理员权限。确保在调用任何蓝牙 API 函数之前,您的应用程序已经获取了适当的权限。


转载请注明出处:http://www.zyzy.cn/article/detail/24063/Win32 API/Bluetoothapis.h/BluetoothFindFirstDevice