Главная страница
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.029 c
2-1144856051
mfender
2006-04-12 19:34
2006.04.30
Запуск программы из внешней программы и перехват парметров первой


1-1143480673
mixa
2006-03-27 21:31
2006.04.30
Компоненты для работы с матрицами


3-1141629277
DancerMan
2006-03-06 10:14
2006.04.30
Как в процессе выполнения программы узнать кодировку dbf файла?


1-1143133889
Alex_C
2006-03-23 20:11
2006.04.30
Как изменить св-ва создвнного Automation Object?


15-1144392786
TUser
2006-04-07 10:53
2006.04.30
Выносить или нет?