Написал следующий код для поиска бт-устройств в пространстве
WORD wVersionRequested = MAKEWORD(2, 2);
WSADATA wsaData;
if (WSAStartup(wVersionRequested, &wsaData) != 0)
{
ExitProcess(2);
}
int MAXDEVS = 16;
#ifdef PPC
BTHNS_INQUIRYBLOB inqblob;
ZeroMemory(&inqblob, sizeof(bool));
inqblob.LAP = BT_ADDR_GIAC;
inqblob.length = 4;
inqblob.num_responses = MAXDEVS;
BLOB blob;
blob.cbSize = sizeof(BTHNS_INQUIRYBLOB);
blob.pBlobData = reinterpret_cast<PBYTE>(&inqblob);
#endif
WSAQUERYSET qsBegin;
ZeroMemory(&qsBegin, sizeof(WSAQUERYSET));
qsBegin.dwSize = sizeof(WSAQUERYSET);
qsBegin.dwNameSpace = NS_BTH;
qsBegin.lpcsaBuffer = NULL;
#ifdef PPC
qsBegin.lpBlob = &blob;
#endif
HANDLE hLookUp;
DWORD flags = LUP_CONTAINERS;
int rc = WSALookupServiceBegin(&qsBegin, flags, &hLookUp);
... далее идёт не интересный код по поиску устройств
скомпилировал сначала для виндовс мобайл (#define PPC) — всё отлично пашет находит всё что можно и выдаёт, никаких недоразумений не возникает.
Подумал: о какой я крутой! освоил копипаст — пора для компа скомпилировать (без #define PPC), для этого пошёл в среднестатистический компьютерный магазин и купил там бт-адаптер, воткнул в компьютер, автоматически мне он установился, появилась иконка бт в трее, думаю — совсем хорошо, всё с первого раза получается, ан не тут-то было! при доходе до строки
int rc = WSALookupServiceBegin(&qsBegin, flags, &hLookUp);
в rc записывается -1, WSAGetLastError даёт 10108 (нет такого сервиса в данном пространстве имён). Подскажите пожалуйста где я что не доделал? Чем отличается программирование под мобильное устройство и компьютер в плане бт? Надо ли как-то специфически сначала бт-адаптер настроить?
Здравствуйте, Tails, Вы писали:
T>в rc записывается -1, WSAGetLastError даёт 10108 (нет такого сервиса в данном пространстве имён). Подскажите пожалуйста где я что не доделал? Чем отличается программирование под мобильное устройство и компьютер в плане бт? Надо ли как-то специфически сначала бт-адаптер настроить?
IMHO в PPC встроенный б-т девайс и программируется при помощи Microsoft SDK, а купленный скорее всего программируется с помощью других SDK, Wacom или BlueSoleil. Тут тусются вендоры б-т SDK, почему-то не спешат помочь

.
С уважением mansurv.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
А как определить какой стек активный и можно ли посмотреть какие вообще стеки установлены в системе?
Здравствуйте, Tails, Вы писали:
T>А как определить какой стек активный и можно ли посмотреть какие вообще стеки установлены в системе?
Ну например сделайте
devcon find *bt*
, или же пойдите в Device Manager и посмотрите производителя драйвера "который про блютус".
Для MS первый способ должен выдать одно или несколько уст-в, начинающихся с BTH, например:
BTH\MS_RFCOMM\8&E86BD13&4&0 : Bluetooth Device (RFCOMM Protocol TDI)
.