Главная страница
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.031 c
15-1144306042
Knight
2006-04-06 10:47
2006.04.30
Excel


15-1144312669
DelphiN!
2006-04-06 12:37
2006.04.30
Автоматический BackUp базы Firebird 1.5


2-1145076883
Дева
2006-04-15 08:54
2006.04.30
Перенос по строчкам


2-1144831112
RomanH
2006-04-12 12:38
2006.04.30
IBDataSet на сервере приложений


2-1145010184
_Iton_
2006-04-14 14:23
2006.04.30
TreeView