private ArrayList GetConnectedNetworks() { ArrayList networkConnections = new ArrayList(); WSAQUERYSET qsRestrictions; Int32 dwControlFlags; Int32 valHandle = 0; qsRestrictions = new WSAQUERYSET(); qsRestrictions.dwSize = 15 * 4 * 8;// Marshal.SizeOf(typeof(qsRestrictions)); qsRestrictions.dwNameSpace = NS_BTH;// 0; //NS_ALL; dwControlFlags = 0x0FF0; //LUP_RETURN_ALL; int result = SafeNativeMethods.WSALookupServiceBegin(qsRestrictions, dwControlFlags, ref valHandle); //CheckResult(result); while (0 == result) { Int32 dwBuffer = 0x10000; IntPtr pBuffer = Marshal.AllocHGlobal(dwBuffer); WSAQUERYSET qsResult = new WSAQUERYSET() ; result = SafeNativeMethods.WSALookupServiceNext(valHandle, dwControlFlags, ref dwBuffer, pBuffer); if (0==result) { Marshal.PtrToStructure(pBuffer, qsResult); networkConnections.Add( qsResult.szServiceInstanceName); } else { //CheckResult(result); } Marshal.FreeHGlobal(pBuffer); } result = SafeNativeMethods.WSALookupServiceEnd(valHandle); return networkConnections; }
private ArrayList GetConnectedNetworks() { ArrayList networkConnections = new ArrayList(); WSAQUERYSET qsRestrictions; Int32 dwControlFlags; Int32 valHandle = 0; qsRestrictions = new WSAQUERYSET(); qsRestrictions.dwSize = 15 * 4 * 8; // Marshal.SizeOf(typeof(qsRestrictions)); qsRestrictions.dwNameSpace = NS_BTH; // 0; //NS_ALL; dwControlFlags = 0x0FF0; //LUP_RETURN_ALL; int result = SafeNativeMethods.WSALookupServiceBegin(qsRestrictions, dwControlFlags, ref valHandle); //CheckResult(result); while (0 == result) { Int32 dwBuffer = 0x10000; IntPtr pBuffer = Marshal.AllocHGlobal(dwBuffer); WSAQUERYSET qsResult = new WSAQUERYSET(); result = SafeNativeMethods.WSALookupServiceNext(valHandle, dwControlFlags, ref dwBuffer, pBuffer); if (0 == result) { Marshal.PtrToStructure(pBuffer, qsResult); networkConnections.Add( qsResult.szServiceInstanceName); } else { //CheckResult(result); } Marshal.FreeHGlobal(pBuffer); } result = SafeNativeMethods.WSALookupServiceEnd(valHandle); return(networkConnections); }
public static extern int WSALookupServiceBegin(WSAQUERYSET qsRestrictions, int flags, ref int lookupHandle);