Click to See Complete Forum and Search --> : Bluetooth Code Help!


dunjamon
March 2nd, 2006, 07:00 AM
Hi, I have been trying to create a simple C++ porgram to scan for bluetooth devices and retrieve/store the MAC addresses from them. I found this code in an old book form the library, and want to know how and if I can use it.




void CredDlg::Discover()
{
devices.clear();

WSADATA data;

WSAStartup(MAKEWORD( 2, 2 ),&data);
DWORD error1 = GetLastError();

WSAQUERYSET querySet;

memset (&querySet,0,sizeof(querySet));

querySet.dwNameSpace = NS_BTH;

querySet.dwSize = sizeof(querySet);

HANDLE hLookup;

DWORD flags = LUP_RETURN_NAME | LUP_CONTAINERS | LUP_RETURN_ADDR | LUP_FLUSHCACHE | LUP_RETURN_TYPE | LUP_RETURN_BLOB | LUP_RES_SERVICE;

int rc = WSALookupServiceBegin(&querySet,flags,&hLookup);
error1 = WSAGetLastError();

PBYTE pOut = (PBYTE)LocalAlloc(LPTR,16384);

WSAQUERYSET *pQueryResult = (WSAQUERYSET *)pOut;
DWORD buffer = 16384;

while(true)
{
rc = WSALookupServiceNext(hLookup,flags,&buffer,pQueryResult);
if (rc == SOCKET_ERROR)
break;
SOCKADDR_BTH *pbta = 0;
pbta = (SOCKADDR_BTH*)pQueryResult->lpcsaBuffer->RemoteAddr.lpSockaddr;
long classOfDevice = pQueryResult->lpServiceClassId->Data1;
BTDevice device = BTDevice(pbta->btAddr, pQueryResult->lpszServiceInstanceName,classOfDevice);
devices.push_back (device);
}

WSALookupServiceEnd(hLookup);
LocalFree(pOut);
}

Thanx!

also...does anyone know how this bit of code works?