//---------- public List_IBluetoothDeviceInfo GetKnownRemoteDeviceEntries() { List <REM_DEV_INFO> list = new List <REM_DEV_INFO>(); REM_DEV_INFO info = new REM_DEV_INFO(); int cb = System.Runtime.InteropServices.Marshal.SizeOf(typeof(REM_DEV_INFO)); IntPtr pBuf = System.Runtime.InteropServices.Marshal.AllocHGlobal(cb); try { REM_DEV_INFO_RETURN_CODE ret = m_btIf.GetRemoteDeviceInfo(ref info, pBuf, cb); Utils.MiscUtils.Trace_WriteLine("GRDI: ret: {0}=0x{0:X}", ret); while (ret == REM_DEV_INFO_RETURN_CODE.SUCCESS) { list.Add(info); // COPY it into the list ret = m_btIf.GetNextRemoteDeviceInfo(ref info, pBuf, cb); Utils.MiscUtils.Trace_WriteLine("GnRDI: ret: {0}=0x{0:X}", ret); }//while if (ret != REM_DEV_INFO_RETURN_CODE.EOF) { throw WidcommSocketExceptions.Create(ret, "Get[Next]RemoteDeviceInfo"); } // List_IBluetoothDeviceInfo bdiList = new List_IBluetoothDeviceInfo(list.Count); foreach (REM_DEV_INFO cur in list) { IBluetoothDeviceInfo bdi = WidcommBluetoothDeviceInfo.CreateFromStoredRemoteDeviceInfo(cur, m_factory); bdiList.Add(bdi); } return(bdiList); } finally { System.Runtime.InteropServices.Marshal.FreeHGlobal(pBuf); } }
public REM_DEV_INFO_RETURN_CODE GetNextRemoteDeviceInfo(ref REM_DEV_INFO remDevInfo, IntPtr p_rem_dev_info, int cb) { Utils.MiscUtils.Trace_WriteLine("enter GetNextRemoteDeviceInfo, pBuf=0x{0:X}", p_rem_dev_info.ToInt64()); REM_DEV_INFO_RETURN_CODE ret = NativeMethods.BtIf_GetNextRemoteDeviceInfo(m_pBtIf, p_rem_dev_info, cb); Utils.MiscUtils.Trace_WriteLine("exit GetNextRemoteDeviceInfo"); remDevInfo = (REM_DEV_INFO)Marshal.PtrToStructure(p_rem_dev_info, typeof(REM_DEV_INFO)); return(ret); }
//------------- //------------- public REM_DEV_INFO_RETURN_CODE GetRemoteDeviceInfo(ref REM_DEV_INFO remDevInfo, IntPtr p_rem_dev_info, int cb) { #if NETCF // Not supported on my test device return(REM_DEV_INFO_RETURN_CODE.ERROR); #else Utils.MiscUtils.Trace_WriteLine("enter GetRemoteDeviceInfo, pBuf=0x{0:X}", p_rem_dev_info.ToInt64()); REM_DEV_INFO_RETURN_CODE ret = NativeMethods.BtIf_GetRemoteDeviceInfo(m_pBtIf, p_rem_dev_info, cb); Utils.MiscUtils.Trace_WriteLine("exit GetRemoteDeviceInfo"); remDevInfo = (REM_DEV_INFO)Marshal.PtrToStructure(p_rem_dev_info, typeof(REM_DEV_INFO)); return(ret); #endif }
// HACK HIDE_WIDCOMM_WIDCOMM_EXCEPTIONS Split into common and Widcomm parts #if !HIDE_WIDCOMM_WIDCOMM_EXCEPTIONS internal static SocketException Create(REM_DEV_INFO_RETURN_CODE err, string location) { int errorCode = 10000; return(new REM_DEV_INFO_RETURN_CODE_WidcommSocketException(errorCode, err, location)); }