⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msrasapi.pas

📁 允许你控制Windows 95/98及Windows NT的拨号网络。使用TmsRas控件来建立与远程登录服务(RAS)的连接。功能没有限制。源代码:包含。适用语言:D2 D3 D4 D5
💻 PAS
字号:
unit msRasAPI;

interface

uses Windows, SysUtils;

const
  RasAPI32='rasapi32.dll';

//error codes
  RASBASE=600;
  SUCCESS=0;
  PENDING=RASBASE+0;
  ERROR_INVALID_PORT_HANDLE=RASBASE+1;
  ERROR_PORT_ALREADY_OPEN=RASBASE+2;
  ERROR_BUFFER_TOO_SMALL=RASBASE+3;
  ERROR_WRONG_INFO_SPECIFIED=RASBASE+4;
  ERROR_CANNOT_SET_PORT_INFO=RASBASE+5;
  ERROR_PORT_NOT_CONNECTED=RASBASE+6;
  ERROR_EVENT_INVALID=RASBASE+7;
  ERROR_DEVICE_DOES_NOT_EXIST=RASBASE+8;
  ERROR_DEVICETYPE_DOES_NOT_EXIST=RASBASE+9;
  ERROR_BUFFER_INVALID=RASBASE+10;
  ERROR_ROUTE_NOT_AVAILABLE=RASBASE+11;
  ERROR_ROUTE_NOT_ALLOCATED=RASBASE+12;
  ERROR_INVALID_COMPRESSION_SPECIFIED=RASBASE+13;
  ERROR_OUT_OF_BUFFERS=RASBASE+14;
  ERROR_PORT_NOT_FOUND=RASBASE+15;
  ERROR_ASYNC_REQUEST_PENDING=RASBASE+16;
  ERROR_ALREADY_DISCONNECTING=RASBASE+17;
  ERROR_PORT_NOT_OPEN=RASBASE+18;
  ERROR_PORT_DISCONNECTED=RASBASE+19;
  ERROR_NO_ENDPOINTS=RASBASE+20;
  ERROR_CANNOT_OPEN_PHONEBOOK=RASBASE+21;
  ERROR_CANNOT_LOAD_PHONEBOOK=RASBASE+22;
  ERROR_CANNOT_FIND_PHONEBOOK_ENTRY=RASBASE+23;
  ERROR_CANNOT_WRITE_PHONEBOOK=RASBASE+24;
  ERROR_CORRUPT_PHONEBOOK=RASBASE+25;
  ERROR_CANNOT_LOAD_STRING=RASBASE+26;
  ERROR_KEY_NOT_FOUND=RASBASE+27;
  ERROR_DISCONNECTION=RASBASE+28;
  ERROR_REMOTE_DISCONNECTION=RASBASE+29;
  ERROR_HARDWARE_FAILURE=RASBASE+30;
  ERROR_USER_DISCONNECTION=RASBASE+31;
  ERROR_INVALID_SIZE=RASBASE+32;
  ERROR_PORT_NOT_AVAILABLE=RASBASE+33;
  ERROR_CANNOT_PROJECT_CLIENT=RASBASE+34;
  ERROR_UNKNOWN=RASBASE+35;
  ERROR_WRONG_DEVICE_ATTACHED=RASBASE+36;
  ERROR_BAD_STRING=RASBASE+37;
  ERROR_REQUEST_TIMEOUT=RASBASE+38;
  ERROR_CANNOT_GET_LANA=RASBASE+39;
  ERROR_NETBIOS_ERROR=RASBASE+40;
  ERROR_SERVER_OUT_OF_RESOURCES=RASBASE+41;
  ERROR_NAME_EXISTS_ON_NET=RASBASE+42;
  ERROR_SERVER_GENERAL_NET_FAILURE=RASBASE+43;
  WARNING_MSG_ALIAS_NOT_ADDED=RASBASE+44;
  ERROR_AUTH_INTERNAL=RASBASE+45;
  ERROR_RESTRICTED_LOGON_HOURS=RASBASE+46;
  ERROR_ACCT_DISABLED=RASBASE+47;
  ERROR_PASSWD_EXPIRED=RASBASE+48;
  ERROR_NO_DIALIN_PERMISSION=RASBASE+49;
  ERROR_SERVER_NOT_RESPONDING=RASBASE+50;
  ERROR_FROM_DEVICE=RASBASE+51;
  ERROR_UNRECOGNIZED_RESPONSE=RASBASE+52;
  ERROR_MACRO_NOT_FOUND=RASBASE+53;
  ERROR_MACRO_NOT_DEFINED=RASBASE+54;
  ERROR_MESSAGE_MACRO_NOT_FOUND=RASBASE+55;
  ERROR_DEFAULTOFF_MACRO_NOT_FOUND=RASBASE+56;
  ERROR_FILE_COULD_NOT_BE_OPENED=RASBASE+57;
  ERROR_DEVICENAME_TOO_LONG=RASBASE+58;
  ERROR_DEVICENAME_NOT_FOUND=RASBASE+59;
  ERROR_NO_RESPONSES=RASBASE+60;
  ERROR_NO_COMMAND_FOUND=RASBASE+61;
  ERROR_WRONG_KEY_SPECIFIED=RASBASE+62;
  ERROR_UNKNOWN_DEVICE_TYPE=RASBASE+63;
  ERROR_ALLOCATING_MEMORY=RASBASE+64;
  ERROR_PORT_NOT_CONFIGURED=RASBASE+65;
  ERROR_DEVICE_NOT_READY=RASBASE+66;
  ERROR_READING_INI_FILE=RASBASE+67;
  ERROR_NO_CONNECTION=RASBASE+68;
  ERROR_BAD_USAGE_IN_INI_FILE=RASBASE+69;
  ERROR_READING_SECTIONNAME=RASBASE+70;
  ERROR_READING_DEVICETYPE=RASBASE+71;
  ERROR_READING_DEVICENAME=RASBASE+72;
  ERROR_READING_USAGE=RASBASE+73;
  ERROR_READING_MAXCONNECTBPS=RASBASE+74;
  ERROR_READING_MAXCARRIERBPS=RASBASE+75;
  ERROR_LINE_BUSY=RASBASE+76;
  ERROR_VOICE_ANSWER=RASBASE+77;
  ERROR_NO_ANSWER=RASBASE+78;
  ERROR_NO_CARRIER=RASBASE+79;
  ERROR_NO_DIALTONE=RASBASE+80;
  ERROR_IN_COMMAND=RASBASE+81;
  ERROR_WRITING_SECTIONNAME=RASBASE+82;
  ERROR_WRITING_DEVICETYPE=RASBASE+83;
  ERROR_WRITING_DEVICENAME=RASBASE+84;
  ERROR_WRITING_MAXCONNECTBPS=RASBASE+85;
  ERROR_WRITING_MAXCARRIERBPS=RASBASE+86;
  ERROR_WRITING_USAGE=RASBASE+87;
  ERROR_WRITING_DEFAULTOFF=RASBASE+88;
  ERROR_READING_DEFAULTOFF=RASBASE+89;
  ERROR_EMPTY_INI_FILE=RASBASE+90;
  ERROR_AUTHENTICATION_FAILURE=RASBASE+91;
  ERROR_PORT_OR_DEVICE=RASBASE+92;
  ERROR_NOT_BINARY_MACRO=RASBASE+93;
  ERROR_DCB_NOT_FOUND=RASBASE+94;
  ERROR_STATE_MACHINES_NOT_STARTED=RASBASE+95;
  ERROR_STATE_MACHINES_ALREADY_STARTED=RASBASE+96;
  ERROR_PARTIAL_RESPONSE_LOOPING=RASBASE+97;
  ERROR_UNKNOWN_RESPONSE_KEY=RASBASE+98;
  ERROR_RECV_BUF_FULL=RASBASE+99;
  ERROR_CMD_TOO_LONG=RASBASE+100;
  ERROR_UNSUPPORTED_BPS=RASBASE+101;
  ERROR_UNEXPECTED_RESPONSE=RASBASE+102;
  ERROR_INTERACTIVE_MODE=RASBASE+103;
  ERROR_BAD_CALLBACK_NUMBER=RASBASE+104;
  ERROR_INVALID_AUTH_STATE=RASBASE+105;
  ERROR_WRITING_INITBPS=RASBASE+106;
  ERROR_X25_DIAGNOSTIC=RASBASE+107;
  ERROR_ACCT_EXPIRED=RASBASE+108;
  ERROR_CHANGING_PASSWORD=RASBASE+109;
  ERROR_OVERRUN=RASBASE+110;
  ERROR_RASMAN_CANNOT_INITIALIZE=RASBASE+111;
  ERROR_BIPLEX_PORT_NOT_AVAILABLE=RASBASE+112;
  ERROR_NO_ACTIVE_ISDN_LINES=RASBASE+113;
  ERROR_NO_ISDN_CHANNELS_AVAILABLE=RASBASE+114;
  ERROR_TOO_MANY_LINE_ERRORS=RASBASE+115;
  ERROR_IP_CONFIGURATION=RASBASE+116;
  ERROR_NO_IP_ADDRESSES=RASBASE+117;
  ERROR_PPP_TIMEOUT=RASBASE+118;
  ERROR_PPP_REMOTE_TERMINATED=RASBASE+119;
  ERROR_PPP_NO_PROTOCOLS_CONFIGURED=RASBASE+120;
  ERROR_PPP_NO_RESPONSE=RASBASE+121;
  ERROR_PPP_INVALID_PACKET=RASBASE+122;
  ERROR_PHONE_NUMBER_TOO_LONG=RASBASE+123;
  ERROR_IPXCP_NO_DIALOUT_CONFIGURED=RASBASE+124;
  ERROR_IPXCP_NO_DIALIN_CONFIGURED=RASBASE+125;
  ERROR_IPXCP_DIALOUT_ALREADY_ACTIVE=RASBASE+126;
  ERROR_ACCESSING_TCPCFGDLL=RASBASE+127;
  ERROR_NO_IP_RAS_ADAPTER=RASBASE+128;
  ERROR_SLIP_REQUIRES_IP=RASBASE+129;
  ERROR_PROJECTION_NOT_COMPLETE=RASBASE+130;
  ERROR_PROTOCOL_NOT_CONFIGURED=RASBASE+131;
  ERROR_PPP_NOT_CONVERGING=RASBASE+132;
  ERROR_PPP_CP_REJECTED=RASBASE+133;
  ERROR_PPP_LCP_TERMINATED=RASBASE+134;
  ERROR_PPP_REQUIRED_ADDRESS_REJECTED=RASBASE+135;
  ERROR_PPP_NCP_TERMINATED=RASBASE+136;
  ERROR_PPP_LOOPBACK_DETECTED=RASBASE+137;
  ERROR_PPP_NO_ADDRESS_ASSIGNED=RASBASE+138;
  ERROR_CANNOT_USE_LOGON_CREDENTIALS=RASBASE+139;
  ERROR_TAPI_CONFIGURATION=RASBASE+140;
  ERROR_NO_LOCAL_ENCRYPTION=RASBASE+141;
  ERROR_NO_REMOTE_ENCRYPTION=RASBASE+142;
  ERROR_REMOTE_REQUIRES_ENCRYPTION=RASBASE+143;
  ERROR_IPXCP_NET_NUMBER_CONFLICT=RASBASE+144;
  ERROR_INVALID_SMM=RASBASE+145;
  ERROR_SMM_UNINITIALIZED=RASBASE+146;
  ERROR_NO_MAC_FOR_PORT=RASBASE+147;
  ERROR_SMM_TIMEOUT=RASBASE+148;
  ERROR_BAD_PHONE_NUMBER=RASBASE+149;
  ERROR_WRONG_MODULE=RASBASE+150;
  RASBASEEND=RASBASE+150;

const
  RAS_MaxEntryName=256;
  RAS_MaxPhoneNumber=128;
  RAS_MaxCallBackNumber=RAS_MAXPhoneNumber;
  RAS_MaxDeviceType=16;
  RAS_MaxDeviceName=128;
  RAS_MaxIPAddress=15;
  UNLEN=256;
  PWLEN=256;
  DNLEN=15;

  RASCS_PAUSED=$1000;
  RASCS_DONE=$2000;
  RASCS_OpenPort=0;
  RASCS_PortOpened=1;
  RASCS_ConnectDevice=2;
  RASCS_DeviceConnected=3;
  RASCS_AllDevicesConnected=4;
  RASCS_Authenticate=5;
  RASCS_AuthNotify=6;
  RASCS_AuthRetry=7;
  RASCS_AuthCallback=8;
  RASCS_AuthChangePassword=9;
  RASCS_AuthProject=10;
  RASCS_AuthLinkSpeed=11;
  RASCS_AuthAck=12;
  RASCS_ReAuthenticate=13;
  RASCS_Authenticated=14;
  RASCS_PrepareForCallback=15;
  RASCS_WaitForModemReset=16;
  RASCS_WaitForCallback=17;
  RASCS_Projected=18;
  RASCS_StartAuthentication=19;
  RASCS_CallbackComplete=20;
  RASCS_LogonNetwork=21;
  RASCS_Interactive=RASCS_PAUSED;
  RASCS_RetryAuthentication=RASCS_PAUSED + 1;
  RASCS_CallbackSetByCaller=RASCS_PAUSED + 2;
  RASCS_PasswordExpired=RASCS_PAUSED + 3;
  RASCS_CONNECTED=RASCS_DONE;
  RASCS_DISCONNECTED=RASCS_DONE + 1;

const {RAS Projection authentication protocols}
  RASP_Amb = $10000;
  RASP_PppNbf = $803F;
  RASP_PppIpx = $802B;
  RASP_PppIp = $8021;

type
  TRasConnState = RASCS_OpenPort..RASCS_DISCONNECTED;

  TRASErrorString = array[0..255] of char;

  TRasEntryName = record
    Size : DWORD;
    EntryName:  array[0..RAS_MaxEntryName] of Char;
  end;

  TRasConn = record
    Size : DWORD;
    Handle : THandle;
    EntryName : array[0..RAS_MaxEntryName] of Char;
    DeviceType : array[0..RAS_MaxDeviceType] of Char;
    DeviceName : array[0..RAS_MaxDeviceName] of Char;
  end;

  TRasDialParams = record
    Size : DWORD;
    EntryName : array[0..RAS_MaxEntryName] of Char;
    PhoneNumber : array[0..RAS_MaxPhoneNumber] of Char;
    CallBackNumber : array[0..RAS_MaxCallBackNumber] of Char;
    UserName : array[0..UNLEN] of Char;
    Password : array[0..PWLEN] of Char;
    Domain : array[0..DNLEN] of Char;
  end;

  TRasConnStatus = record
    Size : DWORD;
    RasConnState : TRasConnState;
    Error : DWORD;
    DeviceType : array[0..RAS_MaxDeviceType] of Char;
    DeviceName : array[0..RAS_MaxDeviceName] of Char;
  end;

  TRasPPPIP = record  {1.3}
    Size : DWORD;
    Error : DWORD;
    IPAddress : array[0..Ras_MaxIPAddress] of Char;
{Use older version, should be more compatible}
//  ServerIPAddress : array[0..Ras_MaxIPAddress] of Char;
  end;

TRasGetErrorString = function(ErrorValue : UINT; var RasErrorString : TRasErrorString;
         BufSize : DWORD) : DWORD; stdcall;
TRasEnumEntries =  function(Reserved : Pointer; PhoneBook : Pointer;
  RasEntryName : Pointer; var cb : DWORD; var Entries : DWORD) : DWORD; stdcall;
TRasEnumConnections = function(RasConn : Pointer; var cb : DWORD;
        var Connections : DWORD) : DWORD; stdcall;
TRasGetEntryDialParams = function(PhoneBook : Pointer; var RasDialParams : TRasDialParams;
           var PasswordOK : LongBool) : DWORD; stdcall;
TRasSetEntryDialParams = function(PhoneBook : Pointer; var RasDialParams : TrasDialParams;
           RemovePassword : LongBool) : DWORD; stdcall;
TRasDial =  function(RasDialExtensions : Pointer; PhoneBook : Pointer;
           var RasDialParams : TRasDialParams; NotifierType : DWORD;
           Notifier : Pointer; var RasConn : THandle) : DWORD; stdcall;
TRasHangUp =  function(RassCon : THandle) : DWORD; stdcall;
TRasGetProjectionInfo = function(RassCon : THandle;  RasProjection : DWORD;
           var RasPPPIP : TRasPPPIP; var cb : DWORD) : DWORD; stdcall;

implementation

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -