Содержание материала

 

6. На этом все!

Напоследок опишем

Function GetStatusString(State: TRasConnState; Error: Integer): String

которая даст нам состояние соединения. Думаю, что переменные State и Error уже не требуют объяснения.

 

Code:

if Error <> 0 then

begin

RasGetErrorString(Error, C, 100);

Result := C;

end

else

begin

S := '';

case State of

   RASCS_OpenPort:

     S := 'Opening port';

     // .................................

     // вырезано ....

     // .................................

     RASCS_Disconnected:

     S := 'Disconnected';

end;

Result := S;

end;

 

Теперь уже совсем все с подключением "удаленного соединения" и получением его статуса!

 

3. Завершение удаленного соединения.

 

Самый распространенный вопрос по рассматриваемой нами теме это -

"как после .... завершить соединение по удаленному доступу?"

 

После того, что мы уже рассмотрели, ответ на этот вопрос покажется очень простым - надо вызвать библиотечную функцию RasHangUp с одной единственной уже описанной нами переменной hRas: ThRASConn.

  

RasHangUp(hRas)

   

Удачи!

 

Интерфейсный модуль RasUnit.pas и проект, использующий рассмотренные нами функции библиотеки rasapi32.dll, прилагается: Файлы проекта + RasUnit : RasAPI.zip (23 K)

 

Примечания:

 

* - В настоящей статье под "удаленным соединением" подразумевается подключение к интернет-провайдеру по телефонной сети с помощью модема.

 

** - Далее под "библиотечной функцией" будем понимать функцию библиотеки rasapi32.dll

 

*** - Для не посвященных в дебри программирования от Microsoft. CallBack-функция - это функция "обратного вызова". Служит для обработки некоторых функций и процедур созданных компанией Microsoft. В Pascal'е не применяется. С CallBack-функциями приходится часто сталкиваться при попытках программирования внутри Delphi на API (Application Programming Interface - интерфейс программирования приложений). К чему такие сложности? Не знаю. Возможно это такой стиль программирования от Microsoft. J Т.к. в нашем примере возвращать никаких "CallBack-данных" не требуется, поэтому вместо CallBack-функции определим CallBack-процедуру, да простит меня за это Билл Гейтс (кто не знает - это отец-основатель Microsoft). Библиотечная функция RasDial, вызывая эту процедуру помещает в переменную state код состояния соединения.

 

**** - Stdcall - это способ передачи данных через стек CPU (справа - налево). Зарезервированное слово stdcall необходимо применять при обращении к находящимся в DLL (Dynamic Link Library - динамически подключаемая библиотека) процедурам и функциям, написанных на другом языке программирования - это из Help'а. Я однажды забыл указать этот параметр при обращении к DLL написанной на Pascal и в результате "подвесил" компьютер. Поэтому, всегда при обращении к библиотекам указывайте - stdcall.

 

***** - Это для того, чтобы в процессе соединения с сервером наше приложение могло реагировать на сообщения Windows, например, на нажатие кнопок.

 

Автор: Александр Терехов

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить