Exemple #1
0
        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());
        }
Exemple #3
0
 internal static extern IntPtr BluetoothFindFirstDevice(ref BLUETOOTH_DEVICE_SEARCH_PARAMS pbtsp, ref BLUETOOTH_DEVICE_INFO pbtdi);