Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.30;
Скачать: CL | DM;

Вниз

WSAAccept и условная функция lpfnCondition : LPCONDITIONPROC   Найти похожие ветки 

 
Spirit111   (2006-01-15 01:09) [0]

Доброй ночи!

Бьюсь над такой проблемой:

Есть Thread, в котором слушаю порт. Для принятия нового подключения использую WSAAccept.

 TListeningThread = class (TThread)
 private
   FServerSocket: TSocket;
   ...
 protected
   procedure Execute; override;
 public
   constructor Create(AOwner: TComponent; ASocket: TSocket);
   destructor Destroy; override;
 end;

 TOnSearchInBlackList = procedure (ip: cardinal; var InBlackList: boolean) of object;

 TMyTCPServer = class(TComponent)
 private
   FServerSocket: TSocket;
   FOnSearchInBlackList: TOnSearchInBlackList;
   ...
 published
   property OnSearchInBlackList: TOnSearchInBlackList read FOnSearchInBlackList write FOnSearchInBlackList;
   ...
 end;

function BeforeConnectionAccepted(lpCallerId: LPWSABUF; lpCallerData : LPWSABUF; lpSQOS,lpGQOS : LPQOS; lpCalleeId,lpCalleeData : LPWSABUF;
     g : GROUP; dwCallbackData : DWORD ) : Integer; stdcall;

TMyTCPServer является компонентом, в котором есть событие OnSearchInBlackList. Пользователь сам описывает это событие, результатом будет возвращение переменной InBlackList: boolean.
Функция WSAAccept вызывается из TListeningThread.Execute.

А теперь о проблеме:  Никак не могу из функции BeforeConnectionAccepted вызвать OnSearchInBlackList(...).

Точнее никак не могу через dwCallbackData передать указатели на эту функцию или объект TMyTCPServer, чтобы ее вызвать.

Буду очень благодарен за помощь!

P.S. Если что-то из моего объяснения неясно, задавайте вопросы - уточню проблему.


 
Rouse_ ©   (2006-01-15 19:14) [1]

Недостаточно кода... покажи код где описаны данные функции и как они примерно используються...


 
Digitman ©   (2006-01-16 09:10) [2]

function BeforeConnectionAccepted( ..) : Integer;
begin
 ..
   with TMyTCPServer(Pointer(dwCallbackData)) do
     if Assigned(OnSearchInBlackList) then
       OnSearchInBlackList(...)
 ..
end;



Страницы: 1 вся ветка

Текущий архив: 2006.04.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.041 c
15-1144665184
Vlad Oshin
2006-04-10 14:33
2006.04.30
Можно ли компонент из D5 вытащить и вставить в D7?


2-1144742032
Khim
2006-04-11 11:53
2006.04.30
Хендл меню


15-1144161185
Немой
2006-04-04 18:33
2006.04.30
Вот вам и высшее образование


15-1144412728
Boris Marchenko
2006-04-07 16:25
2006.04.30
И что мы тут собсна делаем? =)


3-1141901273
_kostet
2006-03-09 13:47
2006.04.30
Проблемы с ADOConnection