public static BLUETOOTH_DEVICE_SEARCH_PARAMS Create() { BLUETOOTH_DEVICE_SEARCH_PARAMS search = new BLUETOOTH_DEVICE_SEARCH_PARAMS(); search.dwSize = Marshal.SizeOf(search); return(search); }
public override Win32BluetoothDeviceInfo[] DiscoverDevices(int maxDevices, bool authenticated, bool remembered, bool unknown) { List <Win32BluetoothDeviceInfo> devices = new List <Win32BluetoothDeviceInfo>(); BLUETOOTH_DEVICE_SEARCH_PARAMS search = BLUETOOTH_DEVICE_SEARCH_PARAMS.Create(); search.cTimeoutMultiplier = 8; search.fReturnAuthenticated = authenticated; search.fReturnRemembered = remembered; search.fReturnUnknown = unknown; search.fReturnConnected = true; search.fIssueInquiry = unknown; BLUETOOTH_DEVICE_INFO device = BLUETOOTH_DEVICE_INFO.Create(); IntPtr searchHandle = NativeMethods.BluetoothFindFirstDevice(ref search, ref device); if (searchHandle != IntPtr.Zero) { devices.Add(new Win32BluetoothDeviceInfo(device)); while (NativeMethods.BluetoothFindNextDevice(searchHandle, ref device) && devices.Count <= maxDevices) { devices.Add(new Win32BluetoothDeviceInfo(device)); } NativeMethods.BluetoothFindDeviceClose(searchHandle); } return(devices.ToArray()); }
internal static extern IntPtr BluetoothFindFirstDevice(ref BLUETOOTH_DEVICE_SEARCH_PARAMS pbtsp, ref BLUETOOTH_DEVICE_INFO pbtdi);