DirectPlay8
От: Михаил Орлов  
Дата: 10.01.03 14:07
Оценка:
Создаю я сервер в полном согласии с SDK:
CoCreateInstance CLSID_DirectPlay8Server
сервер->Initialize();
CoCreateInstance CLSID_DirectPlay8Address
адрес->SetSP(&CLSID_DP8SP_TCPIP);
адрес->AddComponent(порт 27543);
сервер->Host(структура с параметрами, адрес);
адрес->GetURLa();

И получаю от последнего метода:
x-directplay:/provider=%7BEBFE7BA0-628D-11D2-AE0F-006097B01411%7D;port=27543

Два вопроса:
1) Почему эта строка не несёт в себе информации об моём IP адресе (числа в процентах -- GUID провайдера, в данном случае TCP/IP)?Нафиг нужен этот адрес, если клиент и так знает и порт, и провайдера (TCP/IP)?
2) В разных местах пробую делать сервер->SetServerInfo, но при любых параметрах выдаётся ошибка DPNERR_INVALIDFLAGS, хотя флаг стоит единственно допустимый -- DPNSETSERVERINFO_SYNC. Он, очевидно, может быть как-то связан с другим параметром функции -- phAsyncHandle, хотя ошибка случается и при передаче в качестве этого параметра NULL, и при передаче в качестве него требуемого определением функции указателя на DWORD (для возвращения значения хэндла асинхронного выполнения). Что делать? Почему в SDK написано, что без вызова SetServerInfo ничего работать не будет (Clients cannot сonnect to a server until this method has been called), а в их samples им и не пахнет?
Без DPNSETSERVERINFO_SYNC очень не приемлимо, я не пробовал.

12.01.03 06:18: Перенесено модератором из 'Мультимедиа, графика, звук' — H_D
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.