Главная страница
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.032 c
2-1144910210
OlegOren
2006-04-13 10:36
2006.04.30
Создание не одной папки,а целого пути.


8-1133281092
hgd
2005-11-29 19:18
2006.04.30
Чистка изображения


15-1144412299
xayam
2006-04-07 16:18
2006.04.30
Посоветуйте редактор


4-1139414502
AllDer
2006-02-08 19:01
2006.04.30
много форм несделать


2-1144836032
Neo Trinitron
2006-04-12 14:00
2006.04.30
Перетаскивание узлов в TTreeView