*********************************
* Звонилка. (c) Andrey Shishkin *
*********************************
*------------------ тестовая программа -----------------------*
LOCAL lResult && хранит результат соединения
RAS = CREATEOBJECT('ConnRAS') && создает обьект и передает ссылку на объект в переменной RAS
RAS.ConnName = "111" && Имя удаленного соединения (соединение создается вручную)
RAS.UserName = "OOOLORIA" && Имя пользователя
RAS.PassWord = "096410" && Пароль пользователя
RAS.Domain = "rasdom" && Имя домена
lResult = RAS.Connect()&& Соединение
IF EMPTY(lResult)
WAIT 'Соединение ['+RAS.ConnName+'] установлено' WINDOW && выводит сообщение об
установленном соединении
RAS.DisConnect() && Разрыв соединения
ELSE
MESSAGEBOX(RAS.RasGetError(lResult), ; && выводит строку ошибки
48, 'Ошибка удаленного соединения ['+RAS.ConnName+']')
ENDIF
RELEASE RAS && удаляет объект по ссылке в переменной RAS
*------------------ CLASS ConnRAS ----------------------------*
DEFINE CLASS ConnRAS AS CUSTOM
ConnName = '' && Имя удаленного соединения
UserName = '' && Имя пользователя
PassWord = '' && Пароль пользователя
Domain = '' && Имя домена
PROTECTED ConnHandle
ConnHandle = 0 && хранит код установленного соединения
PROCEDURE INIT
ConnName = ''
UserName = ''
PassWord = ''
Domain = ''
ConnHandle = 0
RETURN THIS.LoadRASAPI()
ENDPROC
FUNCTION Connect
LOCAL cParam, nConnHandle, nResult
cParam = chr(28)+chr(4)+chr(0)+chr(0)+;
padr(THIS.ConnName+chr(0), 256+1)+;
padr(chr(0), 128+1)+;
padr(chr(0), 128+1)+;
padr(THIS.UserName+chr(0), 256+1)+;
padr(THIS.Password+chr(0), 256+1)+;
padr(THIS.Domain+chr(0), 15+1)+" "
nConnHandle = 0
nResult = RasDial(NULL, NULL, @cParam, 0, NULL, @nConnHandle)
WAIT '' TIMEOUT 1
IF EMPTY(nResult)
THIS.ConnHandle = nConnHandle
ELSE
RasHangUp(nConnHandle) && Нет соединения. Закрываем порт.
THIS.ConnHandle = 0
ENDIF
RETURN nResult
ENDFUNC
FUNCTION DisConnect
LOCAL nConnHandle, nResult
nConnHandle = 0
IF EMPTY(THIS.ConnHandle)
nResult = 0
ELSE
nConnHandle = THIS.ConnHandle
nResult = RasHangUp(nConnHandle)
THIS.ConnHandle = 0
WAIT '' TIMEOUT 1
ENDIF
RETURN nResult
ENDFUNC
FUNCTION RasGetError
LPARAMETERS nResult
LOCAL MessageBuffer
MessageBuffer = SPACE(256) && Создание буфера для строки ошибки
IF NOT EMPTY(RasGetErrorString(nResult, @MessageBuffer, LEN(MessageBuffer)))
MessageBuffer = 'Неизвестная ошибка'
ENDIF
RETURN MessageBuffer
ENDFUNC
PROTECTED FUNCTION LoadRASAPI
DECLARE INTEGER RasDial IN RASAPI32 ;
STRING DialExtetions, ;
STRING cPhoneboolfile, ;
STRING @cParameters, ;
INTEGER nCallBack, ;
STRING cCallBack, ;
INTEGER @nConnHandle
DECLARE INTEGER RasGetErrorString IN RASAPI32 ;
INTEGER nReturnValue, ;
STRING @cMessageBuffer , ;
INTEGER nLenMessageBuffer
DECLARE INTEGER RasHangUp IN RASAPI32 ;
INTEGER nConnHandle
RETURN .T.
ENDFUNC
ENDDEFINE
Автор публикации
2
Комментарии: 5Публикации: 200Регистрация: 25-06-2000