Code is taken from here, and translated to Lazarus.
Dialing:
uses ras
...
var
rasDialParam:RASDIALPARAMS;
pRasConn:HRASCONN;
dwResult: DWORD;
begin
pRasConn := null;
FillChar(rasDialParam, SizeOf(RASDIALPARAMS), 0);
rasDialParam.dwSize:=SizeOf(RASDIALPARAMS);
rasDialParam.szCallbackNumber[0]:=#0;
rasDialParam.szDomain[0]:=#0;
rasDialParam.szEntryName:='ConnName'; //important, name of the connection which I want to use
rasDialParam.szPassword:='pass'; //important, if pass or user is wrong, then I will receive error code 619
rasDialParam.szPhoneNumber[0]:=#0;
rasDialParam.szUserName:='user'; //important
dwResult := RasDial(nil, nil, @rasDialParam, null, nil, @pRasConn);
if dwResult = ERROR_SUCCESS then
ShowMesage('It is working')
else
ShowMesage('Error: ' + IntToStr(dwResult))
Get connection status:
...
var
dwResult: DWORD;
MyRasconnstatus: RASCONNSTATUS;
...
dwResult := RasGetConnectStatus(VRasConn, @MyRasconnstatus);
if dwResult = ERROR_SUCCESS then
begin
if MyRasconnstatus.rasconnstate = RASCS_Connected then
begin
ShowMessage('Connected')
end
else
begin
ShowMessage('Not connected')
end;
end;
Hang up:
RasHangUp(VRasConn)