100分求Ras.pass,有关拨号的资料! 如题,我在程序里加了拨号的操作,但是里面如RasDial等都要用到Ras的单元文件,请问哪位有,感激不尽!即时给分! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 嘿嘿,我刚刚做过,有这个。unit Ras;{$I RAS.INC}{$ALIGN ON}{$MINENUMSIZE 4}{$WEAKPACKAGEUNIT}interfaceuses Windows, LmCons;(*$HPPEMIT '#include <lmcons.h>'*)(*$HPPEMIT '#include <pshpack4.h>'*)(*$HPPEMIT '#include <ras.h>'*)const RAS_MaxDeviceType = 16; {$EXTERNALSYM RAS_MaxDeviceType} RAS_MaxPhoneNumber = 128; {$EXTERNALSYM RAS_MaxPhoneNumber} RAS_MaxIpAddress = 15; {$EXTERNALSYM RAS_MaxIpAddress} RAS_MaxIpxAddress = 21; {$EXTERNALSYM RAS_MaxIpxAddress}{$IFDEF WINVER_0x400_OR_GREATER} RAS_MaxEntryName = 256; {$EXTERNALSYM RAS_MaxEntryName} RAS_MaxDeviceName = 128; {$EXTERNALSYM RAS_MaxDeviceName} RAS_MaxCallbackNumber = RAS_MaxPhoneNumber; {$EXTERNALSYM RAS_MaxCallbackNumber}{$ELSE} RAS_MaxEntryName = 20; {$EXTERNALSYM RAS_MaxEntryName} RAS_MaxDeviceName = 32; {$EXTERNALSYM RAS_MaxDeviceName} RAS_MaxCallbackNumber = 48; {$EXTERNALSYM RAS_MaxCallbackNumber}{$ENDIF} RAS_MaxAreaCode = 10; {$EXTERNALSYM RAS_MaxAreaCode} RAS_MaxPadType = 32; {$EXTERNALSYM RAS_MaxPadType} RAS_MaxX25Address = 200; {$EXTERNALSYM RAS_MaxX25Address} RAS_MaxFacilities = 200; {$EXTERNALSYM RAS_MaxFacilities} RAS_MaxUserData = 200; {$EXTERNALSYM RAS_MaxUserData} RAS_MaxReplyMessage = 1024; {$EXTERNALSYM RAS_MaxReplyMessage}type PHRasConn = ^THRasConn; HRASCONN = THandle; {$EXTERNALSYM HRASCONN} THRasConn = HRASCONN;// Identifies an active RAS connection. (See RasEnumConnections) PRasConnA = ^TRasConnA; PRasConnW = ^TRasConnW; PRasConn = PRasConnA; tagRASCONNA = record dwSize: DWORD; hrasconn: THRasConn; szEntryName: packed array[0..RAS_MaxEntryName] of AnsiChar;{$IFDEF WINVER_0x400_OR_GREATER} szDeviceType: packed array[0..RAS_MaxDeviceType] of AnsiChar; szDeviceName: packed array[0..RAS_MaxDeviceName] of AnsiChar;{$ENDIF}{$IFDEF WINVER_0x401_OR_GREATER} szPhonebook: array[0..MAX_PATH-1] of AnsiChar; dwSubEntry: DWORD;{$ENDIF}{$IFDEF WINVER_0x500_OR_GREATER} guidEntry: TGUID;{$ENDIF} end; {$EXTERNALSYM tagRASCONNA} tagRASCONNW = record dwSize: DWORD; hrasconn: THRasConn; szEntryName: packed array[0..RAS_MaxEntryName] of WideChar;{$IFDEF WINVER_0x400_OR_GREATER} szDeviceType: packed array[0..RAS_MaxDeviceType] of WideChar; szDeviceName: packed array[0..RAS_MaxDeviceName] of WideChar;{$ENDIF}{$IFDEF WINVER_0x401_OR_GREATER} szPhonebook: array[0..MAX_PATH-1] of WideChar; dwSubEntry: DWORD;{$ENDIF}{$IFDEF WINVER_0x500_OR_GREATER} guidEntry: TGUID;{$ENDIF} end; {$EXTERNALSYM tagRASCONNW} tagRASCONN = tagRASCONNA; TRasConnA = tagRASCONNA; TRasConnW = tagRASCONNW; TRasConn = TRasConnA; RASCONNA = tagRASCONNA; {$EXTERNALSYM RASCONNA} RASCONNW = tagRASCONNW; {$EXTERNALSYM RASCONNW} RASCONN = RASCONNA;// Enumerates intermediate states to a connection. (See RasDial)const RASCS_PAUSED = $1000; {$EXTERNALSYM RASCS_PAUSED} RASCS_DONE = $2000; {$EXTERNALSYM RASCS_DONE}type PRasConnState = ^TRasConnState; RASCONNSTATE = DWORD; {$EXTERNALSYM RASCONNSTATE} TRasConnState = RASCONNSTATE;const RASCS_OpenPort = 0; {$EXTERNALSYM RASCS_OpenPort} RASCS_PortOpened = 1; {$EXTERNALSYM RASCS_PortOpened} RASCS_ConnectDevice = 2; {$EXTERNALSYM RASCS_ConnectDevice} RASCS_DeviceConnected = 3; {$EXTERNALSYM RASCS_DeviceConnected} RASCS_AllDevicesConnected = 4; {$EXTERNALSYM RASCS_AllDevicesConnected} RASCS_Authenticate = 5; {$EXTERNALSYM RASCS_Authenticate} RASCS_AuthNotify = 6; {$EXTERNALSYM RASCS_AuthNotify} RASCS_AuthRetry = 7; {$EXTERNALSYM RASCS_AuthRetry} RASCS_AuthCallback = 8; {$EXTERNALSYM RASCS_AuthCallback} RASCS_AuthChangePassword = 9; {$EXTERNALSYM RASCS_AuthChangePassword} RASCS_AuthProject = 10; {$EXTERNALSYM RASCS_AuthProject} RASCS_AuthLinkSpeed = 11; {$EXTERNALSYM RASCS_AuthLinkSpeed} RASCS_AuthAck = 12; {$EXTERNALSYM RASCS_AuthAck} RASCS_ReAuthenticate = 13; {$EXTERNALSYM RASCS_ReAuthenticate} RASCS_Authenticated = 14; {$EXTERNALSYM RASCS_Authenticated} RASCS_PrepareForCallback = 15; {$EXTERNALSYM RASCS_PrepareForCallback} RASCS_WaitForModemReset = 16; {$EXTERNALSYM RASCS_WaitForModemReset} RASCS_WaitForCallback = 17; {$EXTERNALSYM RASCS_WaitForCallback} RASCS_Projected = 18; {$EXTERNALSYM RASCS_Projected}{$IFDEF WINVER_0x400_OR_GREATER} RASCS_StartAuthentication = 19; {$EXTERNALSYM RASCS_StartAuthentication} RASCS_CallbackComplete = 20; {$EXTERNALSYM RASCS_CallbackComplete} RASCS_LogonNetwork = 21; {$EXTERNALSYM RASCS_LogonNetwork}{$ENDIF} RASCS_SubEntryConnected = 22; {$EXTERNALSYM RASCS_SubEntryConnected} RASCS_SubEntryDisconnected = 23; {$EXTERNALSYM RASCS_SubEntryDisconnected} RASCS_Interactive = RASCS_PAUSED; {$EXTERNALSYM RASCS_Interactive} RASCS_RetryAuthentication = RASCS_PAUSED + 1; {$EXTERNALSYM RASCS_RetryAuthentication} RASCS_CallbackSetByCaller = RASCS_PAUSED + 2; {$EXTERNALSYM RASCS_CallbackSetByCaller} RASCS_PasswordExpired = RASCS_PAUSED + 3; {$EXTERNALSYM RASCS_PasswordExpired}{$IFDEF WINVER_0x500_OR_GREATER} RASCS_InvokeEapUI = RASCS_PAUSED + 4; {$EXTERNALSYM RASCS_InvokeEapUI}{$ENDIF} RASCS_Connected = RASCS_DONE; {$EXTERNALSYM RASCS_Connected} RASCS_Disconnected = RASCS_DONE + 1; {$EXTERNALSYM RASCS_Disconnected}// Describes the status of a RAS connection. (See RasConnectionStatus)type PRasConnStatusA = ^TRasConnStatusA; PRasConnStatusW = ^TRasConnStatusW; PRasConnStatus = PRasConnStatusA; tagRASCONNSTATUSA = record dwSize: DWORD; rasconnstate: TRasConnState; dwError: DWORD; szDeviceType: packed array[0..RAS_MaxDeviceType] of AnsiChar; szDeviceName: packed array[0..RAS_MaxDeviceName] of AnsiChar;{$IFDEF WINVER_0x401_OR_GREATER} szPhoneNumber: packed array[0..RAS_MaxPhoneNumber] of AnsiChar;{$ENDIF} end; {$EXTERNALSYM tagRASCONNSTATUSA} tagRASCONNSTATUSW = record dwSize: DWORD; rasconnstate: TRasConnState; dwError: DWORD; szDeviceType: packed array[0..RAS_MaxDeviceType] of WideChar; szDeviceName: packed array[0..RAS_MaxDeviceName] of WideChar;{$IFDEF WINVER_0x401_OR_GREATER} szPhoneNumber: packed array[0..RAS_MaxPhoneNumber] of WideChar;{$ENDIF} end; {$EXTERNALSYM tagRASCONNSTATUSW} tagRASCONNSTATUS = tagRASCONNSTATUSA; TRasConnStatusA = tagRASCONNSTATUSA; TRasConnStatusW = tagRASCONNSTATUSW; TRasConnStatus = TRasConnStatusA; RASCONNSTATUSA = tagRASCONNSTATUSA; {$EXTERNALSYM RASCONNSTATUSA} RASCONNSTATUSW = tagRASCONNSTATUSW; {$EXTERNALSYM RASCONNSTATUSW} RASCONNSTATUS = RASCONNSTATUSA; 太长了,邮件吧!这里面还用了Ras.ini,Lmerr.pas,LmCons.pas这几个,而CSDN连续加复不能超过三次。/ Describes connection establishment parameters. (See RasDial) PRasDialParamsA = ^TRasDialParamsA; PRasDialParamsW = ^TRasDialParamsW; PRasDialParams = PRasDialParamsA; tagRASDIALPARAMSA = record dwSize: DWORD; szEntryName: packed array[0..RAS_MaxEntryName] of AnsiChar; szPhoneNumber: packed array[0..RAS_MaxPhoneNumber] of AnsiChar; szCallbackNumber: packed array[0..RAS_MaxCallbackNumber] of AnsiChar; szUserName: packed array[0..UNLEN] of AnsiChar; szPassword: packed array[0..PWLEN] of AnsiChar; szDomain: packed array[0..DNLEN] of AnsiChar;{$IFDEF WINVER_0x401_OR_GREATER} dwSubEntry: DWORD; dwCallbackId: DWORD;{$ENDIF} end; {$EXTERNALSYM tagRASDIALPARAMSA} tagRASDIALPARAMSW = record dwSize: DWORD; szEntryName: packed array[0..RAS_MaxEntryName] of WideChar; szPhoneNumber: packed array[0..RAS_MaxPhoneNumber] of WideChar; szCallbackNumber: packed array[0..RAS_MaxCallbackNumber] of WideChar; szUserName: packed array[0..UNLEN] of WideChar; szPassword: packed array[0..PWLEN] of WideChar; szDomain: packed array[0..DNLEN] of WideChar;{$IFDEF WINVER_0x401_OR_GREATER} dwSubEntry: DWORD; dwCallbackId: DWORD;{$ENDIF} end; {$EXTERNALSYM tagRASDIALPARAMSW} tagRASDIALPARAMS = tagRASDIALPARAMSA; TRasDialParamsA = tagRASDIALPARAMSA; TRasDialParamsW = tagRASDIALPARAMSW; TRasDialParams = TRasDialParamsA; RASDIALPARAMSA = tagRASDIALPARAMSA; {$EXTERNALSYM RASDIALPARAMSA} RASDIALPARAMSW = tagRASDIALPARAMSW; {$EXTERNALSYM RASDIALPARAMSW} RASDIALPARAMS = RASDIALPARAMSA;{$IFDEF WINVER_0x500_OR_GREATER} PRasEapInfo = ^TRasEapInfo; tagRASEAPINFO = record dwSizeofEapInfo: DWORD; pbEapInfo: Pointer; end; {$EXTERNALSYM tagRASEAPINFO} TRasEapInfo = tagRASEAPINFO; RASEAPINFO = tagRASEAPINFO; {$EXTERNALSYM RASEAPINFO}{$ENDIF}// Describes extended connection establishment options. (See RasDial) PRasDialExtensions = ^TRasDialExtensions; tagRASDIALEXTENSIONS = record dwSize: DWORD; dwfOptions: DWORD; hwndParent: HWND; reserved: DWORD;{$IFDEF WINVER_0x500_OR_GREATER} reserved1: DWORD; RasEapInfo: TRasEapInfo;{$ENDIF} end; {$EXTERNALSYM tagRASDIALEXTENSIONS} TRasDialExtensions = tagRASDIALEXTENSIONS; RASDIALEXTENSIONS = tagRASDIALEXTENSIONS; {$EXTERNALSYM RASDIALEXTENSIONS}// 'dwfOptions' bit flags.const RDEOPT_UsePrefixSuffix = $00000001; {$EXTERNALSYM RDEOPT_UsePrefixSuffix} RDEOPT_PausedStates = $00000002; {$EXTERNALSYM RDEOPT_PausedStates} RDEOPT_IgnoreModemSpeaker = $00000004; {$EXTERNALSYM RDEOPT_IgnoreModemSpeaker} RDEOPT_SetModemSpeaker = $00000008; {$EXTERNALSYM RDEOPT_SetModemSpeaker} RDEOPT_IgnoreSoftwareCompression = $00000010; {$EXTERNALSYM RDEOPT_IgnoreSoftwareCompression} RDEOPT_SetSoftwareCompression = $00000020; {$EXTERNALSYM RDEOPT_SetSoftwareCompression} RDEOPT_DisableConnectedUI = $00000040; {$EXTERNALSYM RDEOPT_DisableConnectedUI} RDEOPT_DisableReconnectUI = $00000080; {$EXTERNALSYM RDEOPT_DisableReconnectUI} RDEOPT_DisableReconnect = $00000100; {$EXTERNALSYM RDEOPT_DisableReconnect} RDEOPT_NoUser = $00000200; {$EXTERNALSYM RDEOPT_NoUser} RDEOPT_PauseOnScript = $00000400; {$EXTERNALSYM RDEOPT_PauseOnScript} RDEOPT_Router = $00000800; {$EXTERNALSYM RDEOPT_Router}{$IFDEF WINVER_0x500_OR_GREATER} RDEOPT_CustomDial = $00001000; {$EXTERNALSYM RDEOPT_CustomDial}{$ENDIF}// This flag when set in the RASENTRYNAME structure// indicates that the phonebook to which this entry// belongs is a system phonebook. REN_User = $00000000; {$EXTERNALSYM REN_User} REN_AllUsers = $00000001; {$EXTERNALSYM REN_AllUsers}// Describes an enumerated RAS phone book entry name. (See RasEntryEnum)type PRasEntryNameA = ^TRasEntryNameA; PRasEntryNameW = ^TRasEntryNameW; PRasEntryName = PRasEntryNameA; tagRASENTRYNAMEA = record dwSize: DWORD; szEntryName: packed array[0..RAS_MaxEntryName] of AnsiChar;{$IFDEF WINVER_0x500_OR_GREATER} dwFlags: DWORD; szPhonebookPath: packed array[0..MAX_PATH] of AnsiChar;{$ENDIF} end; {$EXTERNALSYM tagRASENTRYNAMEA} tagRASENTRYNAMEW = record dwSize: DWORD; szEntryName: packed array[0..RAS_MaxEntryName] of WideChar;{$IFDEF WINVER_0x500_OR_GREATER} dwFlags: DWORD; szPhonebookPath: packed array[0..MAX_PATH] of WideChar;{$ENDIF} end; {$EXTERNALSYM tagRASENTRYNAMEW} tagRASENTRYNAME = tagRASENTRYNAMEA; TRasEntryNameA = tagRASENTRYNAMEA; TRasEntryNameW = tagRASENTRYNAMEW; TRasEntryName = TRasEntryNameA; RASENTRYNAMEA = tagRASENTRYNAMEA; {$EXTERNALSYM RASENTRYNAMEA} RASENTRYNAMEW = tagRASENTRYNAMEW; {$EXTERNALSYM RASENTRYNAMEW} RASENTRYNAME = RASENTRYNAMEA;// Protocol code to projection data structure mapping. type PRasProjection = ^TRasProjection; TRasProjection = DWORD;const RASP_Amb = $10000; {$EXTERNALSYM RASP_Amb} RASP_PppNbf = $803F; {$EXTERNALSYM RASP_PppNbf} RASP_PppIpx = $802B; {$EXTERNALSYM RASP_PppIpx} RASP_PppIp = $8021; {$EXTERNALSYM RASP_PppIp}{$IFDEF WINVER_0x500_OR_GREATER} RASP_PppCcp = $80FD; {$EXTERNALSYM RASP_PppCcp}{$ENDIF} RASP_PppLcp = $C021; {$EXTERNALSYM RASP_PppLcp} RASP_Slip = $20000; {$EXTERNALSYM RASP_Slip}// Describes the result of a RAS AMB (Authentication Message Block)// projection. This protocol is used with NT 3.1 and OS/2 1.3 downlevel// RAS servers.type PRasAmbA = ^TRasAmbA; PRasAmbW = ^TRasAmbW; PRasAmb = PRasAmbA; tagRASAMBA = record dwSize: DWORD; dwError: DWORD; szNetBiosError: packed array[0..NETBIOS_NAME_LEN] of AnsiChar; bLana: Byte; end; {$EXTERNALSYM tagRASAMBA} tagRASAMBW = record dwSize: DWORD; dwError: DWORD; szNetBiosError: packed array[0..NETBIOS_NAME_LEN] of WideChar; bLana: Byte; end; {$EXTERNALSYM tagRASAMBW} tagRASAMB = tagRASAMBA; TRasAmbA = tagRASAMBA; TRasAmbW = tagRASAMBW; TRasAmb = TRasAmbA; RASAMBA = tagRASAMBA; {$EXTERNALSYM RASAMBA} RASAMBW = tagRASAMBW; {$EXTERNALSYM RASAMBW} RASAMB = RASAMBA;// Describes the result of a PPP NBF (NetBEUI) projection. PRasPppNBFA = ^TRasPppNBFA; PRasPppNBFW = ^TRasPppNBFW; PRasPppNBF = PRasPppNBFA; tagRASPPPNBFA = record dwSize: DWORD; dwError: DWORD; dwNetBiosError: DWORD; szNetBiosError: packed array[0..NETBIOS_NAME_LEN] of AnsiChar; szWorkstationName: packed array[0..NETBIOS_NAME_LEN] of AnsiChar; bLana: Byte; end; {$EXTERNALSYM tagRASPPPNBFA} tagRASPPPNBFW = record dwSize: DWORD; dwError: DWORD; dwNetBiosError: DWORD; szNetBiosError: packed array[0..NETBIOS_NAME_LEN] of WideChar; szWorkstationName: packed array[0..NETBIOS_NAME_LEN] of WideChar; bLana: Byte; end; {$EXTERNALSYM tagRASPPPNBFW} tagRASPPPNBF = tagRASPPPNBFA; TRasPppNBFA = tagRASPPPNBFA; TRasPppNBFW = tagRASPPPNBFW; TRasPppNBF = TRasPppNBFA; RASPPPNBFA = tagRASPPPNBFA; {$EXTERNALSYM tagRASPPPNBFA} RASPPPNBFW = tagRASPPPNBFW; {$EXTERNALSYM tagRASPPPNBFW} RASPPPNBF = RASPPPNBFA;// Describes the results of a PPP IPX (Internetwork Packet Exchange) projection. PRasPppIPXA = ^TRasPppIPXA; PRasPppIPXW = ^TRasPppIPXW; PRasPppIPX = PRasPppIPXA; tagRASPPPIPXA = record dwSize: DWORD; dwError: DWORD; szIpxAddress: packed array[0..RAS_MaxIpxAddress] of AnsiChar; end; {$EXTERNALSYM tagRASPPPIPXA} tagRASPPPIPXW = record dwSize: DWORD; dwError: DWORD; szIpxAddress: packed array[0..RAS_MaxIpxAddress] of WideChar; end; {$EXTERNALSYM tagRASPPPIPXW} tagRASPPPIPX = tagRASPPPIPXA; TRasPppIPXA = tagRASPPPIPXA; TRasPppIPXW = tagRASPPPIPXW; TRasPppIPX = TRasPppIPXA; RASPPPIPXA = tagRASPPPIPXA; {$EXTERNALSYM RASPPPIPXA} RASPPPIPXW = tagRASPPPIPXW; {$EXTERNALSYM RASPPPIPXW} RASPPPIPX = RASPPPIPXA;// Describes the results of a PPP IP (Internet) projection{$IFDEF WINVER_0x500_OR_GREATER}// RASPPPIP 'dwOptions' and 'dwServerOptions' flagsconst RASIPO_VJ = $00000001; {$EXTERNALSYM RASIPO_VJ}{$ENDIF}type PRasPppIPA = ^TPRasPppIPA; PRasPppIPW = ^TPRasPppIPW; PRasPppIP = PRasPppIPA; tagRASIPA = record dwSize: DWORD; dwError: DWORD; szIpAddress: packed array[0..RAS_MaxIpAddress] of AnsiChar; end; {$EXTERNALSYM tagRASIPA} tagRASIPW = record dwSize: DWORD; dwError: DWORD; szIpAddress: packed array[0..RAS_MaxIpAddress] of WideChar; end; {$EXTERNALSYM tagRASIPW} tagRASIP = tagRASIPA; TPRasPppIPA = tagRASIPA; TPRasPppIPW = tagRASIPW; TPRasPppIP = TPRasPppIPA; RASIPA = tagRASIPA; {$EXTERNALSYM RASIPA} RASIPW = tagRASIPW; {$EXTERNALSYM RASIPW} RASIP = RASIPA;还有很多,抄不了这么多! 多谢,CSDN真不错,我的邮箱:[email protected] {$IFDEF WINVER_0x500_OR_GREATER}const// RASPPPLCP 'dwAuthenticatonProtocol' values. RASLCPAP_PAP = $C023; {$EXTERNALSYM RASLCPAP_PAP} RASLCPAP_SPAP = $C027; {$EXTERNALSYM RASLCPAP_SPAP} RASLCPAP_CHAP = $C223; {$EXTERNALSYM RASLCPAP_CHAP} RASLCPAP_EAP = $C227; {$EXTERNALSYM RASLCPAP_EAP}// RASPPPLCP 'dwAuthenticatonData' values. RASLCPAD_CHAP_MD5 = $05; {$EXTERNALSYM RASLCPAD_CHAP_MD5} RASLCPAD_CHAP_MS = $80; {$EXTERNALSYM RASLCPAD_CHAP_MS} RASLCPAD_CHAP_MSV2 = $81; {$EXTERNALSYM RASLCPAD_CHAP_MSV2}// RASPPPLCP 'dwOptions' and 'dwServerOptions' flags. RASLCPO_PFC = $00000001; {$EXTERNALSYM RASLCPO_PFC} RASLCPO_ACFC = $00000002; {$EXTERNALSYM RASLCPO_ACFC} RASLCPO_SSHF = $00000004; {$EXTERNALSYM RASLCPO_SSHF} RASLCPO_DES_56 = $00000008; {$EXTERNALSYM RASLCPO_DES_56} RASLCPO_3_DES = $00000010; {$EXTERNALSYM RASLCPO_3_DES}{$ENDIF}// Describes the results of a PPP LCP/multi-link negotiation.type PRasPppLCPA = ^TRasPppLCPA; PRasPppLCPW = ^TRasPppLCPW; PRasPppLCP = PRasPppLCPA; tagRASPPPLCPA = record dwSize: DWORD; fBundled: BOOL;{$IFDEF WINVER_0x500_OR_GREATER} dwError: DWORD; dwAuthenticationProtocol: DWORD; dwAuthenticationData: DWORD; dwEapTypeId: DWORD; dwServerAuthenticationProtocol: DWORD; dwServerAuthenticationData: DWORD; dwServerEapTypeId: DWORD; fMultilink: BOOL; dwTerminateReason: DWORD; dwServerTerminateReason: DWORD; szReplyMessage: array[0..RAS_MaxReplyMessage - 1] of WideChar; dwOptions: DWORD; dwServerOptions: DWORD;{$ENDIF} end; {$EXTERNALSYM tagRASPPPLCPA} tagRASPPPLCPW = record dwSize: DWORD; fBundled: BOOL;{$IFDEF WINVER_0x500_OR_GREATER} dwError: DWORD; dwAuthenticationProtocol: DWORD; dwAuthenticationData: DWORD; dwEapTypeId: DWORD; dwServerAuthenticationProtocol: DWORD; dwServerAuthenticationData: DWORD; dwServerEapTypeId: DWORD; fMultilink: BOOL; dwTerminateReason: DWORD; dwServerTerminateReason: DWORD; szReplyMessage: array[0..RAS_MaxReplyMessage - 1] of WideChar; dwOptions: DWORD; dwServerOptions: DWORD;{$ENDIF} end; {$EXTERNALSYM tagRASPPPLCPW} tagRASPPPLCP = tagRASPPPLCPA; TRasPppLCPA = tagRASPPPLCPA; TRasPppLCPW = tagRASPPPLCPW; TRasPppLCP = TRasPppLCPA; RASPPPLCPA = tagRASPPPLCPA; {$EXTERNALSYM RASPPPLCPA} RASPPPLCPW = tagRASPPPLCPW; {$EXTERNALSYM RASPPPLCPW} RASPPPLCP = RASPPPLCPA; // Describes the results of a SLIP (Serial Line IP) projection. PRasSlipA = ^TRasSlipA; PRasSlipW = ^TRasSlipW; PRasSlip = PRasSlipA; tagRASSLIPA = record dwSize: DWORD; dwError: DWORD; szIpAddress: packed array[0..RAS_MaxIpAddress] of AnsiChar; end; {$EXTERNALSYM tagRASSLIPA} tagRASSLIPW = record dwSize: DWORD; dwError: DWORD; szIpAddress: packed array[0..RAS_MaxIpAddress] of WideChar; end; {$EXTERNALSYM tagRASSLIPW} tagRASSLIP = tagRASSLIPA; TRasSlipA = tagRASSLIPA; TRasSlipW = tagRASSLIPW; TRasSlip = TRasSlipA; RASSLIPA = tagRASSLIPA; {$EXTERNALSYM RASSLIPA} RASSLIPW = tagRASSLIPW; {$EXTERNALSYM RASSLIPW} RASSLIP = RASSLIPA;{$IFDEF WINVER_0x500_OR_GREATER}// Describes the results of a PPP CCP (Compression Control Protocol)const// RASPPPCCP 'dwCompressionAlgorithm' values. RASCCPCA_MPPC = $00000006; {$EXTERNALSYM RASCCPCA_MPPC} RASCCPCA_STAC = $00000005; {$EXTERNALSYM RASCCPCA_STAC}// RASPPPCCP 'dwOptions' values. RASCCPO_Compression = $00000001; {$EXTERNALSYM RASCCPO_Compression} RASCCPO_HistoryLess = $00000002; {$EXTERNALSYM RASCCPO_HistoryLess} RASCCPO_Encryption56bit = $00000010; {$EXTERNALSYM RASCCPO_Encryption56bit} RASCCPO_Encryption40bit = $00000020; {$EXTERNALSYM RASCCPO_Encryption40bit} RASCCPO_Encryption128bit = $00000040; {$EXTERNALSYM RASCCPO_Encryption128bit}type PRasPppCcp = ^TRasPppCcp; tagRASPPPCCP = record dwSize: DWORD; dwError: DWORD; dwCompressionAlgorithm: DWORD; dwOptions: DWORD; dwServerCompressionAlgorithm: DWORD; dwServerOptions: DWORD; end; {$EXTERNALSYM tagRASPPPCCP} TRasPppCcp = tagRASPPPCCP; RASPPPCCP = tagRASPPPCCP; {$EXTERNALSYM RASPPPCCP}{$ENDIF}// If using RasDial message notifications, get the notification message code// by passing this string to the RegisterWindowMessageA() API.// WM_RASDIALEVENT is used only if a unique message cannot be registered.const RASDIALEVENT = 'RasDialEvent'; {$EXTERNALSYM RASDIALEVENT} WM_RASDIALEVENT = $CCCD; {$EXTERNALSYM WM_RASDIALEVENT}// Prototypes for caller's RasDial callback handler. Arguments are the// message ID (currently always WM_RASDIALEVENT), the current RASCONNSTATE and// the error that has occurred (or 0 if none). Extended arguments are the// handle of the RAS connection and an extended error code.//// For RASDIALFUNC2, subsequent callback notifications for all// subentries can be cancelled by returning FALSE.type TRasDialFunc = procedure (unMsg: UINT; rasconnstate: TRasConnState; dwError: DWORD); stdcall; {$EXTERNALSYM TRasDialFunc} TRasDialFunc1 = procedure (hrasconn: THRasConn; unMsg: UINT; rascs: TRasConnState; dwError: DWORD; dwExtendedError: DWORD); stdcall; {$EXTERNALSYM TRasDialFunc1} TRasDialFunc2 = function (dwCallbackId: DWORD; dwSubEntry: DWORD; hrasconn: THRasConn; unMsg: UINT; rascs: TRasConnState; dwError: DWORD; dwExtendedError: DWORD): DWORD; stdcall; {$EXTERNALSYM TRasDialFunc2}// Information describing a RAS-capable device. PRasDevInfoA = ^TRasDevInfoA; PRasDevInfoW = ^TRasDevInfoW; PRasDevInfo = PRasDevInfoA; tagRASDEVINFOA = record dwSize: DWORD; szDeviceType: packed array[0..RAS_MaxDeviceType] of AnsiChar; szDeviceName: packed array[0..RAS_MaxDeviceName] of AnsiChar; end; {$EXTERNALSYM tagRASDEVINFOA} tagRASDEVINFOW = record dwSize: DWORD; szDeviceType: packed array[0..RAS_MaxDeviceType] of WideChar; szDeviceName: packed array[0..RAS_MaxDeviceName] of WideChar; end; {$EXTERNALSYM tagRASDEVINFOW} tagRASDEVINFO = tagRASDEVINFOA; TRasDevInfoA = tagRASDEVINFOA; TRasDevInfoW = tagRASDEVINFOW; TRasDevInfo = TRasDevInfoA; RASDEVINFOA = tagRASDEVINFOA; {$EXTERNALSYM RASDEVINFOA} RASDEVINFOW = tagRASDEVINFOW; {$EXTERNALSYM RASDEVINFOW} RASDEVINFO = RASDEVINFOA;// RAS country information (currently retrieved from TAPI). PRasCtryInfoA = ^TRasCtryInfoA; PRasCtryInfoW = ^TRasCtryInfoW; PRasCtryInfo = PRasCtryInfoA; RASCTRYINFOA = record dwSize: DWORD; dwCountryID: DWORD; dwNextCountryID: DWORD; dwCountryCode: DWORD; dwCountryNameOffset: DWORD; end; {$EXTERNALSYM RASCTRYINFOA} RASCTRYINFOW = record dwSize: DWORD; dwCountryID: DWORD; dwNextCountryID: DWORD; dwCountryCode: DWORD; dwCountryNameOffset: DWORD; end; {$EXTERNALSYM RASCTRYINFOW} RASCTRYINFO = RASCTRYINFOA; TRasCtryInfoA = RASCTRYINFOA; TRasCtryInfoW = RASCTRYINFOW; TRasCtryInfo = TRasCtryInfoA; CTRYINFOA = RASCTRYINFOA; {$EXTERNALSYM CTRYINFOA} CTRYINFOW = RASCTRYINFOW; {$EXTERNALSYM CTRYINFOW} CTRYINFO = CTRYINFOA;// There is currently no difference between RASCTRYINFOA and RASCTRYINFOW.// This may change in the future. 这里原封不动的,具体是什么意思都不知道。const{$IFDEF WINVER_0x500_OR_GREATER} ET_40Bit = 1; {$EXTERNALSYM ET_40Bit} ET_128Bit = 2; {$EXTERNALSYM ET_128Bit} ET_None = 0; // No encryption {$EXTERNALSYM ET_None} ET_Require = 1; // Require Encryption {$EXTERNALSYM ET_Require} ET_RequireMax = 2; // Require max encryption {$EXTERNALSYM ET_RequireMax} ET_Optional = 3; // Do encryption if possible. None Ok. {$EXTERNALSYM ET_Optional}{$ENDIF} VS_Default = 0; // default (PPTP for now) {$EXTERNALSYM VS_Default} VS_PptpOnly = 1; // Only PPTP is attempted. {$EXTERNALSYM VS_PptpOnly} VS_PptpFirst = 2; // PPTP is tried first. {$EXTERNALSYM VS_PptpFirst} VS_L2tpOnly = 3; // Only L2TP is attempted. {$EXTERNALSYM VS_L2tpOnly} VS_L2tpFirst = 4; // L2TP is tried first. {$EXTERNALSYM VS_L2tpFirst}type TRasIPAddr = record a, b, c, d: Byte; end; RASIPADDR = TRasIPAddr; {$EXTERNALSYM RASIPADDR}// A RAS phone book entry. PRasEntryA = ^TRasEntryA; PRasEntryW = ^TRasEntryW; PRasEntry = PRasEntryA; tagRASENTRYA = record dwSize: DWORD; dwfOptions: DWORD; // Location/phone number. dwCountryID: DWORD; dwCountryCode: DWORD; szAreaCode: packed array[0..RAS_MaxAreaCode] of AnsiChar; szLocalPhoneNumber: packed array[0..RAS_MaxPhoneNumber] of AnsiChar; dwAlternateOffset: DWORD; // PPP/Ip ipaddr: RASIPADDR; ipaddrDns: RASIPADDR; ipaddrDnsAlt: RASIPADDR; ipaddrWins: RASIPADDR; ipaddrWinsAlt: RASIPADDR; // Framing dwFrameSize: DWORD; dwfNetProtocols: DWORD; dwFramingProtocol: DWORD; // Scripting szScript: packed array[0..MAX_PATH-1] of AnsiChar; // AutoDial szAutodialDll: packed array[0..MAX_PATH-1] of AnsiChar; szAutodialFunc: packed array[0..MAX_PATH-1] of AnsiChar; // Device szDeviceType: packed array[0..RAS_MaxDeviceType] of AnsiChar; szDeviceName: packed array[0..RAS_MaxDeviceName] of AnsiChar; // X.25 szX25PadType: packed array[0..RAS_MaxPadType] of AnsiChar; szX25Address: packed array[0..RAS_MaxX25Address] of AnsiChar; szX25Facilities: packed array[0..RAS_MaxFacilities] of AnsiChar; szX25UserData: packed array[0..RAS_MaxUserData] of AnsiChar; dwChannels: DWORD; // Reserved dwReserved1: DWORD; dwReserved2: DWORD;{$IFDEF WINVER_0x401_OR_GREATER} // Multilink dwSubEntries: DWORD; dwDialMode: DWORD; dwDialExtraPercent: DWORD; dwDialExtraSampleSeconds: DWORD; dwHangUpExtraPercent: DWORD; dwHangUpExtraSampleSeconds: DWORD; // Idle timeout dwIdleDisconnectSeconds: DWORD;{$ENDIF}{$IFDEF WINVER_0x500_OR_GREATER} dwType: DWORD; dwEncryptionType: DWORD; dwCustomAuthKey: DWORD; guidId: TGUID; szCustomDialDll: packed array[0..MAX_PATH-1] of AnsiChar; dwVpnStrategy: DWORD;{$ENDIF} end; {$EXTERNALSYM tagRASENTRYA} tagRASENTRYW = record dwSize: DWORD; dwfOptions: DWORD; // Location/phone number. dwCountryID: DWORD; dwCountryCode: DWORD; szAreaCode: packed array[0..RAS_MaxAreaCode] of WideChar; szLocalPhoneNumber: packed array[0..RAS_MaxPhoneNumber] of WideChar; dwAlternateOffset: DWORD; // PPP/Ip ipaddr: RASIPADDR; ipaddrDns: RASIPADDR; ipaddrDnsAlt: RASIPADDR; ipaddrWins: RASIPADDR; ipaddrWinsAlt: RASIPADDR; // Framing dwFrameSize: DWORD; dwfNetProtocols: DWORD; dwFramingProtocol: DWORD; // Scripting szScript: packed array[0..MAX_PATH-1] of WideChar; // AutoDial szAutodialDll: packed array[0..MAX_PATH-1] of WideChar; szAutodialFunc: packed array[0..MAX_PATH-1] of WideChar; // Device szDeviceType: packed array[0..RAS_MaxDeviceType] of WideChar; szDeviceName: packed array[0..RAS_MaxDeviceName] of WideChar; // X.25 szX25PadType: packed array[0..RAS_MaxPadType] of WideChar; szX25Address: packed array[0..RAS_MaxX25Address] of WideChar; szX25Facilities: packed array[0..RAS_MaxFacilities] of WideChar; szX25UserData: packed array[0..RAS_MaxUserData] of WideChar; dwChannels: DWORD; // Reserved dwReserved1: DWORD; dwReserved2: DWORD;{$IFDEF WINVER_0x401_OR_GREATER} // Multilink dwSubEntries: DWORD; dwDialMode: DWORD; dwDialExtraPercent: DWORD; dwDialExtraSampleSeconds: DWORD; dwHangUpExtraPercent: DWORD; dwHangUpExtraSampleSeconds: DWORD; // Idle timeout dwIdleDisconnectSeconds: DWORD;{$ENDIF}{$IFDEF WINVER_0x500_OR_GREATER} dwType: DWORD; dwEncryptionType: DWORD; dwCustomAuthKey: DWORD; guidId: TGUID; szCustomDialDll: packed array[0..MAX_PATH-1] of WideChar; dwVpnStrategy: DWORD;{$ENDIF} end; {$EXTERNALSYM tagRASENTRYW} tagRASENTRY = tagRASENTRYA; TRasEntryA = tagRASENTRYA; TRasEntryW = tagRASENTRYW; TRasEntry = TRasEntryA; RASENTRYA = tagRASENTRYA; {$EXTERNALSYM RASENTRYA} RASENTRYW = tagRASENTRYW; {$EXTERNALSYM RASENTRYW} RASENTRY = RASENTRYA; 刚刚发完,请查收!你把Ras.pas,Lmerr.pas,LmCons.pas做成三个pas文件,就是Unit的那种,没有窗体的。再把Ras.ini文件与这三个文件放于同一个文件夹里面,我就是这么做的。绝对可以。虽然不知道里面是什么意思!把下Ras.pas抄完吧!// RASENTRY 'dwfOptions' bit flags.const RASEO_UseCountryAndAreaCodes = $00000001; {$EXTERNALSYM RASEO_UseCountryAndAreaCodes} RASEO_SpecificIpAddr = $00000002; {$EXTERNALSYM RASEO_SpecificIpAddr} RASEO_SpecificNameServers = $00000004; {$EXTERNALSYM RASEO_SpecificNameServers} RASEO_IpHeaderCompression = $00000008; {$EXTERNALSYM RASEO_IpHeaderCompression} RASEO_RemoteDefaultGateway = $00000010; {$EXTERNALSYM RASEO_RemoteDefaultGateway} RASEO_DisableLcpExtensions = $00000020; {$EXTERNALSYM RASEO_DisableLcpExtensions} RASEO_TerminalBeforeDial = $00000040; {$EXTERNALSYM RASEO_TerminalBeforeDial} RASEO_TerminalAfterDial = $00000080; {$EXTERNALSYM RASEO_TerminalAfterDial} RASEO_ModemLights = $00000100; {$EXTERNALSYM RASEO_ModemLights} RASEO_SwCompression = $00000200; {$EXTERNALSYM RASEO_SwCompression} RASEO_RequireEncryptedPw = $00000400; {$EXTERNALSYM RASEO_RequireEncryptedPw} RASEO_RequireMsEncryptedPw = $00000800; {$EXTERNALSYM RASEO_RequireMsEncryptedPw} RASEO_RequireDataEncryption = $00001000; {$EXTERNALSYM RASEO_RequireDataEncryption} RASEO_NetworkLogon = $00002000; {$EXTERNALSYM RASEO_NetworkLogon} RASEO_UseLogonCredentials = $00004000; {$EXTERNALSYM RASEO_UseLogonCredentials} RASEO_PromoteAlternates = $00008000; {$EXTERNALSYM RASEO_PromoteAlternates}{$IFDEF WINVER_0x401_OR_GREATER} RASEO_SecureLocalFiles = $00010000; {$EXTERNALSYM RASEO_SecureLocalFiles}{$ENDIF}{$IFDEF WINVER_0x500_OR_GREATER} RASEO_RequireEAP = $00020000; {$EXTERNALSYM RASEO_RequireEAP} RASEO_RequirePAP = $00040000; {$EXTERNALSYM RASEO_RequirePAP} RASEO_RequireSPAP = $00080000; {$EXTERNALSYM RASEO_RequireSPAP} RASEO_Custom = $00100000; {$EXTERNALSYM RASEO_Custom} RASEO_PreviewPhoneNumber = $00200000; {$EXTERNALSYM RASEO_PreviewPhoneNumber} RASEO_SharedPhoneNumbers = $00800000; {$EXTERNALSYM RASEO_SharedPhoneNumbers} RASEO_PreviewUserPw = $01000000; {$EXTERNALSYM RASEO_PreviewUserPw} RASEO_PreviewDomain = $02000000; {$EXTERNALSYM RASEO_PreviewDomain} RASEO_ShowDialingProgress = $04000000; {$EXTERNALSYM RASEO_ShowDialingProgress} RASEO_RequireCHAP = $08000000; {$EXTERNALSYM RASEO_RequireCHAP} RASEO_RequireMsCHAP = $10000000; {$EXTERNALSYM RASEO_RequireMsCHAP} RASEO_RequireMsCHAP2 = $20000000; {$EXTERNALSYM RASEO_RequireMsCHAP2} RASEO_RequireW95MSCHAP = $40000000; {$EXTERNALSYM RASEO_RequireW95MSCHAP} RASEO_CustomScript = $80000000; {$EXTERNALSYM RASEO_CustomScript}{$ENDIF}// RASENTRY 'dwProtocols' bit flags. RASNP_NetBEUI = $00000001; {$EXTERNALSYM RASNP_NetBEUI} RASNP_Ipx = $00000002; {$EXTERNALSYM RASNP_Ipx} RASNP_Ip = $00000004; {$EXTERNALSYM RASNP_Ip}// RASENTRY 'dwFramingProtocols' bit flags. RASFP_Ppp = $00000001; {$EXTERNALSYM RASFP_Ppp} RASFP_Slip = $00000002; {$EXTERNALSYM RASFP_Slip} RASFP_Ras = $00000004; {$EXTERNALSYM RASFP_Ras}// RASENTRY 'szDeviceType' default strings. RASDT_Modem = 'modem'; {$EXTERNALSYM RASDT_Modem} RASDT_Isdn = 'isdn'; {$EXTERNALSYM RASDT_Isdn} RASDT_X25 = 'x25'; {$EXTERNALSYM RASDT_X25} RASDT_Vpn = 'vpn'; {$EXTERNALSYM RASDT_Vpn} RASDT_Pad = 'pad'; {$EXTERNALSYM RASDT_Pad} RASDT_Generic = 'GENERIC'; {$EXTERNALSYM RASDT_Generic} RASDT_Serial = 'SERIAL'; {$EXTERNALSYM RASDT_Serial} RASDT_FrameRelay = 'FRAMERELAY'; {$EXTERNALSYM RASDT_FrameRelay} RASDT_Atm = 'ATM'; {$EXTERNALSYM RASDT_Atm} RASDT_Sonet = 'SONET'; {$EXTERNALSYM RASDT_Sonet} RASDT_SW56 = 'SW56'; {$EXTERNALSYM RASDT_SW56} RASDT_Irda = 'IRDA'; {$EXTERNALSYM RASDT_Irda} RASDT_Parallel = 'PARALLEL'; {$EXTERNALSYM RASDT_Parallel}// The entry type used to determine which UI properties// are to be presented to user. This generally corresponds// to a Connections "add" wizard selection. RASET_Phone = 1; // Phone lines: modem, ISDN, X.25, etc {$EXTERNALSYM RASET_Phone} RASET_Vpn = 2; // Virtual private network {$EXTERNALSYM RASET_Vpn} RASET_Direct = 3; // Direct connect: serial, parallel {$EXTERNALSYM RASET_Direct} RASET_Internet = 4; // BaseCamp internet {$EXTERNALSYM RASET_Internet}// Old AutoDial DLL function prototype.//// This prototype is documented for backward-compatibility// purposes only. It is superceded by the RASADFUNCA// and RASADFUNCW definitions below. DO NOT USE THIS// PROTOTYPE IN NEW CODE. SUPPORT FOR IT MAY BE REMOVED// IN FUTURE VERSIONS OF RAS.type TORASADFunc = function(hwndOwner: HWND; lpszEntry: LPSTR; dwFlags: DWORD; var lpdwRetCode: DWORD): BOOL; stdcall; {$EXTERNALSYM TORASADFunc}{$IFDEF WINVER_0x401_OR_GREATER}const// Flags for RasConnectionNotification(). RASCN_Connection = $00000001; {$EXTERNALSYM RASCN_Connection} RASCN_Disconnection = $00000002; {$EXTERNALSYM RASCN_Disconnection} RASCN_BandwidthAdded = $00000004; {$EXTERNALSYM RASCN_BandwidthAdded} RASCN_BandwidthRemoved = $00000008; {$EXTERNALSYM RASCN_BandwidthRemoved}// RASENTRY 'dwDialMode' values. RASEDM_DialAll = 1; {$EXTERNALSYM RASEDM_DialAll} RASEDM_DialAsNeeded = 2; {$EXTERNALSYM RASEDM_DialAsNeeded}// RASENTRY 'dwIdleDisconnectSeconds' constants. RASIDS_Disabled = $ffffffff; {$EXTERNALSYM RASIDS_Disabled} RASIDS_UseGlobalValue = $0; {$EXTERNALSYM RASIDS_UseGlobalValue}// AutoDial DLL function parameter block.type PRasAdParams = ^TRasAdParams; tagRASADPARAMS = record dwSize: DWORD; hwndOwner: HWND; dwFlags: DWORD; xDlg: LongInt; yDlg: LongInt; end; {$EXTERNALSYM tagRASADPARAMS} TRasAdParams = tagRASADPARAMS; RASADPARAMS = tagRASADPARAMS; {$EXTERNALSYM RASADPARAMS}// AutoDial DLL function parameter block 'dwFlags.' 你把Ras.pas,Lmerr.pas,LmCons.pas做成三个pas文件,就是Unit的那种,没有窗体的。再把Ras.ini文件与这三个文件放于同一个文件夹里面,我就是这么做的。绝对可以。虽然不知道里面是什么意思!===============================================================================谢谢你在短消息里的提示!按照你说的,我的调试基本上已经通过,真是感激不尽。剩下的问题自已慢慢解决吧!!再次感谢 对了,有关拨号的你也可以参照microsoft的MSDNhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcedial/html/cerefrassetentryproperties.asp 大量数据采集及存储问题 如果combobox1选择了相同itemindex,怎么让它不激发onclick事件! 关于释放的问题 很着急! MDI多分档窗口问题,请多多指教 用delphi编程:怎样在代码中调用一个EXE可执行文件, 两个不同的数据库中如何倒入数据?在线等待!! UP给分 传真系统 内存问题 delphi中,怎样实现向access中的ole字段中添加,修改照片,最好有元码,我在其他数据库中可以实现这个功能,但access好像不一样 关于dbgrid现实的问题 谁做过RadiusClient编程?
unit Ras;{$I RAS.INC}{$ALIGN ON}
{$MINENUMSIZE 4}
{$WEAKPACKAGEUNIT}interfaceuses
Windows, LmCons;(*$HPPEMIT '#include <lmcons.h>'*)
(*$HPPEMIT '#include <pshpack4.h>'*)
(*$HPPEMIT '#include <ras.h>'*)const
RAS_MaxDeviceType = 16;
{$EXTERNALSYM RAS_MaxDeviceType}
RAS_MaxPhoneNumber = 128;
{$EXTERNALSYM RAS_MaxPhoneNumber}
RAS_MaxIpAddress = 15;
{$EXTERNALSYM RAS_MaxIpAddress}
RAS_MaxIpxAddress = 21;
{$EXTERNALSYM RAS_MaxIpxAddress}{$IFDEF WINVER_0x400_OR_GREATER}
RAS_MaxEntryName = 256;
{$EXTERNALSYM RAS_MaxEntryName}
RAS_MaxDeviceName = 128;
{$EXTERNALSYM RAS_MaxDeviceName}
RAS_MaxCallbackNumber = RAS_MaxPhoneNumber;
{$EXTERNALSYM RAS_MaxCallbackNumber}
{$ELSE}
RAS_MaxEntryName = 20;
{$EXTERNALSYM RAS_MaxEntryName}
RAS_MaxDeviceName = 32;
{$EXTERNALSYM RAS_MaxDeviceName}
RAS_MaxCallbackNumber = 48;
{$EXTERNALSYM RAS_MaxCallbackNumber}
{$ENDIF} RAS_MaxAreaCode = 10;
{$EXTERNALSYM RAS_MaxAreaCode}
RAS_MaxPadType = 32;
{$EXTERNALSYM RAS_MaxPadType}
RAS_MaxX25Address = 200;
{$EXTERNALSYM RAS_MaxX25Address}
RAS_MaxFacilities = 200;
{$EXTERNALSYM RAS_MaxFacilities}
RAS_MaxUserData = 200;
{$EXTERNALSYM RAS_MaxUserData}
RAS_MaxReplyMessage = 1024;
{$EXTERNALSYM RAS_MaxReplyMessage}type
PHRasConn = ^THRasConn;
HRASCONN = THandle;
{$EXTERNALSYM HRASCONN}
THRasConn = HRASCONN;// Identifies an active RAS connection. (See RasEnumConnections) PRasConnA = ^TRasConnA;
PRasConnW = ^TRasConnW;
PRasConn = PRasConnA;
tagRASCONNA = record
dwSize: DWORD;
hrasconn: THRasConn;
szEntryName: packed array[0..RAS_MaxEntryName] of AnsiChar;
{$IFDEF WINVER_0x400_OR_GREATER}
szDeviceType: packed array[0..RAS_MaxDeviceType] of AnsiChar;
szDeviceName: packed array[0..RAS_MaxDeviceName] of AnsiChar;
{$ENDIF}
{$IFDEF WINVER_0x401_OR_GREATER}
szPhonebook: array[0..MAX_PATH-1] of AnsiChar;
dwSubEntry: DWORD;
{$ENDIF}
{$IFDEF WINVER_0x500_OR_GREATER}
guidEntry: TGUID;
{$ENDIF}
end;
{$EXTERNALSYM tagRASCONNA}
tagRASCONNW = record
dwSize: DWORD;
hrasconn: THRasConn;
szEntryName: packed array[0..RAS_MaxEntryName] of WideChar;
{$IFDEF WINVER_0x400_OR_GREATER}
szDeviceType: packed array[0..RAS_MaxDeviceType] of WideChar;
szDeviceName: packed array[0..RAS_MaxDeviceName] of WideChar;
{$ENDIF}
{$IFDEF WINVER_0x401_OR_GREATER}
szPhonebook: array[0..MAX_PATH-1] of WideChar;
dwSubEntry: DWORD;
{$ENDIF}
{$IFDEF WINVER_0x500_OR_GREATER}
guidEntry: TGUID;
{$ENDIF}
end;
{$EXTERNALSYM tagRASCONNW}
tagRASCONN = tagRASCONNA;
TRasConnA = tagRASCONNA;
TRasConnW = tagRASCONNW;
TRasConn = TRasConnA;
RASCONNA = tagRASCONNA;
{$EXTERNALSYM RASCONNA}
RASCONNW = tagRASCONNW;
{$EXTERNALSYM RASCONNW}
RASCONN = RASCONNA;// Enumerates intermediate states to a connection. (See RasDial)const
RASCS_PAUSED = $1000;
{$EXTERNALSYM RASCS_PAUSED}
RASCS_DONE = $2000;
{$EXTERNALSYM RASCS_DONE}type
PRasConnState = ^TRasConnState;
RASCONNSTATE = DWORD;
{$EXTERNALSYM RASCONNSTATE}
TRasConnState = RASCONNSTATE;const
RASCS_OpenPort = 0;
{$EXTERNALSYM RASCS_OpenPort}
RASCS_PortOpened = 1;
{$EXTERNALSYM RASCS_PortOpened}
RASCS_ConnectDevice = 2;
{$EXTERNALSYM RASCS_ConnectDevice}
RASCS_DeviceConnected = 3;
{$EXTERNALSYM RASCS_DeviceConnected}
RASCS_AllDevicesConnected = 4;
{$EXTERNALSYM RASCS_AllDevicesConnected}
RASCS_Authenticate = 5;
{$EXTERNALSYM RASCS_Authenticate}
RASCS_AuthNotify = 6;
{$EXTERNALSYM RASCS_AuthNotify}
RASCS_AuthRetry = 7;
{$EXTERNALSYM RASCS_AuthRetry}
RASCS_AuthCallback = 8;
{$EXTERNALSYM RASCS_AuthCallback}
RASCS_AuthChangePassword = 9;
{$EXTERNALSYM RASCS_AuthChangePassword}
RASCS_AuthProject = 10;
{$EXTERNALSYM RASCS_AuthProject}
RASCS_AuthLinkSpeed = 11;
{$EXTERNALSYM RASCS_AuthLinkSpeed}
RASCS_AuthAck = 12;
{$EXTERNALSYM RASCS_AuthAck}
RASCS_ReAuthenticate = 13;
{$EXTERNALSYM RASCS_ReAuthenticate}
RASCS_Authenticated = 14;
{$EXTERNALSYM RASCS_Authenticated}
RASCS_PrepareForCallback = 15;
{$EXTERNALSYM RASCS_PrepareForCallback}
RASCS_WaitForModemReset = 16;
{$EXTERNALSYM RASCS_WaitForModemReset}
RASCS_WaitForCallback = 17;
{$EXTERNALSYM RASCS_WaitForCallback}
RASCS_Projected = 18;
{$EXTERNALSYM RASCS_Projected}
{$IFDEF WINVER_0x400_OR_GREATER}
RASCS_StartAuthentication = 19;
{$EXTERNALSYM RASCS_StartAuthentication}
RASCS_CallbackComplete = 20;
{$EXTERNALSYM RASCS_CallbackComplete}
RASCS_LogonNetwork = 21;
{$EXTERNALSYM RASCS_LogonNetwork}
{$ENDIF}
RASCS_SubEntryConnected = 22;
{$EXTERNALSYM RASCS_SubEntryConnected}
RASCS_SubEntryDisconnected = 23;
{$EXTERNALSYM RASCS_SubEntryDisconnected}
RASCS_Interactive = RASCS_PAUSED;
{$EXTERNALSYM RASCS_Interactive}
RASCS_RetryAuthentication = RASCS_PAUSED + 1;
{$EXTERNALSYM RASCS_RetryAuthentication}
RASCS_CallbackSetByCaller = RASCS_PAUSED + 2;
{$EXTERNALSYM RASCS_CallbackSetByCaller}
RASCS_PasswordExpired = RASCS_PAUSED + 3;
{$EXTERNALSYM RASCS_PasswordExpired}
{$IFDEF WINVER_0x500_OR_GREATER}
RASCS_InvokeEapUI = RASCS_PAUSED + 4;
{$EXTERNALSYM RASCS_InvokeEapUI}
{$ENDIF}
RASCS_Connected = RASCS_DONE;
{$EXTERNALSYM RASCS_Connected}
RASCS_Disconnected = RASCS_DONE + 1;
{$EXTERNALSYM RASCS_Disconnected}// Describes the status of a RAS connection. (See RasConnectionStatus)type
PRasConnStatusA = ^TRasConnStatusA;
PRasConnStatusW = ^TRasConnStatusW;
PRasConnStatus = PRasConnStatusA;
tagRASCONNSTATUSA = record
dwSize: DWORD;
rasconnstate: TRasConnState;
dwError: DWORD;
szDeviceType: packed array[0..RAS_MaxDeviceType] of AnsiChar;
szDeviceName: packed array[0..RAS_MaxDeviceName] of AnsiChar;
{$IFDEF WINVER_0x401_OR_GREATER}
szPhoneNumber: packed array[0..RAS_MaxPhoneNumber] of AnsiChar;
{$ENDIF}
end;
{$EXTERNALSYM tagRASCONNSTATUSA}
tagRASCONNSTATUSW = record
dwSize: DWORD;
rasconnstate: TRasConnState;
dwError: DWORD;
szDeviceType: packed array[0..RAS_MaxDeviceType] of WideChar;
szDeviceName: packed array[0..RAS_MaxDeviceName] of WideChar;
{$IFDEF WINVER_0x401_OR_GREATER}
szPhoneNumber: packed array[0..RAS_MaxPhoneNumber] of WideChar;
{$ENDIF}
end;
{$EXTERNALSYM tagRASCONNSTATUSW}
tagRASCONNSTATUS = tagRASCONNSTATUSA;
TRasConnStatusA = tagRASCONNSTATUSA;
TRasConnStatusW = tagRASCONNSTATUSW;
TRasConnStatus = TRasConnStatusA;
RASCONNSTATUSA = tagRASCONNSTATUSA;
{$EXTERNALSYM RASCONNSTATUSA}
RASCONNSTATUSW = tagRASCONNSTATUSW;
{$EXTERNALSYM RASCONNSTATUSW}
RASCONNSTATUS = RASCONNSTATUSA;
这里面还用了Ras.ini,Lmerr.pas,LmCons.pas这几个,而CSDN连续加复不能超过三次。/ Describes connection establishment parameters. (See RasDial)
PRasDialParamsA = ^TRasDialParamsA;
PRasDialParamsW = ^TRasDialParamsW;
PRasDialParams = PRasDialParamsA;
tagRASDIALPARAMSA = record
dwSize: DWORD;
szEntryName: packed array[0..RAS_MaxEntryName] of AnsiChar;
szPhoneNumber: packed array[0..RAS_MaxPhoneNumber] of AnsiChar;
szCallbackNumber: packed array[0..RAS_MaxCallbackNumber] of AnsiChar;
szUserName: packed array[0..UNLEN] of AnsiChar;
szPassword: packed array[0..PWLEN] of AnsiChar;
szDomain: packed array[0..DNLEN] of AnsiChar;
{$IFDEF WINVER_0x401_OR_GREATER}
dwSubEntry: DWORD;
dwCallbackId: DWORD;
{$ENDIF}
end;
{$EXTERNALSYM tagRASDIALPARAMSA}
tagRASDIALPARAMSW = record
dwSize: DWORD;
szEntryName: packed array[0..RAS_MaxEntryName] of WideChar;
szPhoneNumber: packed array[0..RAS_MaxPhoneNumber] of WideChar;
szCallbackNumber: packed array[0..RAS_MaxCallbackNumber] of WideChar;
szUserName: packed array[0..UNLEN] of WideChar;
szPassword: packed array[0..PWLEN] of WideChar;
szDomain: packed array[0..DNLEN] of WideChar;
{$IFDEF WINVER_0x401_OR_GREATER}
dwSubEntry: DWORD;
dwCallbackId: DWORD;
{$ENDIF}
end;
{$EXTERNALSYM tagRASDIALPARAMSW}
tagRASDIALPARAMS = tagRASDIALPARAMSA;
TRasDialParamsA = tagRASDIALPARAMSA;
TRasDialParamsW = tagRASDIALPARAMSW;
TRasDialParams = TRasDialParamsA;
RASDIALPARAMSA = tagRASDIALPARAMSA;
{$EXTERNALSYM RASDIALPARAMSA}
RASDIALPARAMSW = tagRASDIALPARAMSW;
{$EXTERNALSYM RASDIALPARAMSW}
RASDIALPARAMS = RASDIALPARAMSA;{$IFDEF WINVER_0x500_OR_GREATER}
PRasEapInfo = ^TRasEapInfo;
tagRASEAPINFO = record
dwSizeofEapInfo: DWORD;
pbEapInfo: Pointer;
end;
{$EXTERNALSYM tagRASEAPINFO}
TRasEapInfo = tagRASEAPINFO;
RASEAPINFO = tagRASEAPINFO;
{$EXTERNALSYM RASEAPINFO}
{$ENDIF}// Describes extended connection establishment options. (See RasDial) PRasDialExtensions = ^TRasDialExtensions;
tagRASDIALEXTENSIONS = record
dwSize: DWORD;
dwfOptions: DWORD;
hwndParent: HWND;
reserved: DWORD;
{$IFDEF WINVER_0x500_OR_GREATER}
reserved1: DWORD;
RasEapInfo: TRasEapInfo;
{$ENDIF}
end;
{$EXTERNALSYM tagRASDIALEXTENSIONS}
TRasDialExtensions = tagRASDIALEXTENSIONS;
RASDIALEXTENSIONS = tagRASDIALEXTENSIONS;
{$EXTERNALSYM RASDIALEXTENSIONS}// 'dwfOptions' bit flags.const
RDEOPT_UsePrefixSuffix = $00000001;
{$EXTERNALSYM RDEOPT_UsePrefixSuffix}
RDEOPT_PausedStates = $00000002;
{$EXTERNALSYM RDEOPT_PausedStates}
RDEOPT_IgnoreModemSpeaker = $00000004;
{$EXTERNALSYM RDEOPT_IgnoreModemSpeaker}
RDEOPT_SetModemSpeaker = $00000008;
{$EXTERNALSYM RDEOPT_SetModemSpeaker}
RDEOPT_IgnoreSoftwareCompression = $00000010;
{$EXTERNALSYM RDEOPT_IgnoreSoftwareCompression}
RDEOPT_SetSoftwareCompression = $00000020;
{$EXTERNALSYM RDEOPT_SetSoftwareCompression}
RDEOPT_DisableConnectedUI = $00000040;
{$EXTERNALSYM RDEOPT_DisableConnectedUI}
RDEOPT_DisableReconnectUI = $00000080;
{$EXTERNALSYM RDEOPT_DisableReconnectUI}
RDEOPT_DisableReconnect = $00000100;
{$EXTERNALSYM RDEOPT_DisableReconnect}
RDEOPT_NoUser = $00000200;
{$EXTERNALSYM RDEOPT_NoUser}
RDEOPT_PauseOnScript = $00000400;
{$EXTERNALSYM RDEOPT_PauseOnScript}
RDEOPT_Router = $00000800;
{$EXTERNALSYM RDEOPT_Router}
{$IFDEF WINVER_0x500_OR_GREATER}
RDEOPT_CustomDial = $00001000;
{$EXTERNALSYM RDEOPT_CustomDial}
{$ENDIF}// This flag when set in the RASENTRYNAME structure
// indicates that the phonebook to which this entry
// belongs is a system phonebook. REN_User = $00000000;
{$EXTERNALSYM REN_User}
REN_AllUsers = $00000001;
{$EXTERNALSYM REN_AllUsers}// Describes an enumerated RAS phone book entry name. (See RasEntryEnum)type
PRasEntryNameA = ^TRasEntryNameA;
PRasEntryNameW = ^TRasEntryNameW;
PRasEntryName = PRasEntryNameA;
tagRASENTRYNAMEA = record
dwSize: DWORD;
szEntryName: packed array[0..RAS_MaxEntryName] of AnsiChar;
{$IFDEF WINVER_0x500_OR_GREATER}
dwFlags: DWORD;
szPhonebookPath: packed array[0..MAX_PATH] of AnsiChar;
{$ENDIF}
end;
{$EXTERNALSYM tagRASENTRYNAMEA}
tagRASENTRYNAMEW = record
dwSize: DWORD;
szEntryName: packed array[0..RAS_MaxEntryName] of WideChar;
{$IFDEF WINVER_0x500_OR_GREATER}
dwFlags: DWORD;
szPhonebookPath: packed array[0..MAX_PATH] of WideChar;
{$ENDIF}
end;
{$EXTERNALSYM tagRASENTRYNAMEW}
tagRASENTRYNAME = tagRASENTRYNAMEA;
TRasEntryNameA = tagRASENTRYNAMEA;
TRasEntryNameW = tagRASENTRYNAMEW;
TRasEntryName = TRasEntryNameA;
RASENTRYNAMEA = tagRASENTRYNAMEA;
{$EXTERNALSYM RASENTRYNAMEA}
RASENTRYNAMEW = tagRASENTRYNAMEW;
{$EXTERNALSYM RASENTRYNAMEW}
RASENTRYNAME = RASENTRYNAMEA;// Protocol code to projection data structure mapping.
PRasProjection = ^TRasProjection;
TRasProjection = DWORD;const
RASP_Amb = $10000;
{$EXTERNALSYM RASP_Amb}
RASP_PppNbf = $803F;
{$EXTERNALSYM RASP_PppNbf}
RASP_PppIpx = $802B;
{$EXTERNALSYM RASP_PppIpx}
RASP_PppIp = $8021;
{$EXTERNALSYM RASP_PppIp}
{$IFDEF WINVER_0x500_OR_GREATER}
RASP_PppCcp = $80FD;
{$EXTERNALSYM RASP_PppCcp}
{$ENDIF}
RASP_PppLcp = $C021;
{$EXTERNALSYM RASP_PppLcp}
RASP_Slip = $20000;
{$EXTERNALSYM RASP_Slip}// Describes the result of a RAS AMB (Authentication Message Block)
// projection. This protocol is used with NT 3.1 and OS/2 1.3 downlevel
// RAS servers.type
PRasAmbA = ^TRasAmbA;
PRasAmbW = ^TRasAmbW;
PRasAmb = PRasAmbA;
tagRASAMBA = record
dwSize: DWORD;
dwError: DWORD;
szNetBiosError: packed array[0..NETBIOS_NAME_LEN] of AnsiChar;
bLana: Byte;
end;
{$EXTERNALSYM tagRASAMBA}
tagRASAMBW = record
dwSize: DWORD;
dwError: DWORD;
szNetBiosError: packed array[0..NETBIOS_NAME_LEN] of WideChar;
bLana: Byte;
end;
{$EXTERNALSYM tagRASAMBW}
tagRASAMB = tagRASAMBA;
TRasAmbA = tagRASAMBA;
TRasAmbW = tagRASAMBW;
TRasAmb = TRasAmbA;
RASAMBA = tagRASAMBA;
{$EXTERNALSYM RASAMBA}
RASAMBW = tagRASAMBW;
{$EXTERNALSYM RASAMBW}
RASAMB = RASAMBA;// Describes the result of a PPP NBF (NetBEUI) projection. PRasPppNBFA = ^TRasPppNBFA;
PRasPppNBFW = ^TRasPppNBFW;
PRasPppNBF = PRasPppNBFA;
tagRASPPPNBFA = record
dwSize: DWORD;
dwError: DWORD;
dwNetBiosError: DWORD;
szNetBiosError: packed array[0..NETBIOS_NAME_LEN] of AnsiChar;
szWorkstationName: packed array[0..NETBIOS_NAME_LEN] of AnsiChar;
bLana: Byte;
end;
{$EXTERNALSYM tagRASPPPNBFA}
tagRASPPPNBFW = record
dwSize: DWORD;
dwError: DWORD;
dwNetBiosError: DWORD;
szNetBiosError: packed array[0..NETBIOS_NAME_LEN] of WideChar;
szWorkstationName: packed array[0..NETBIOS_NAME_LEN] of WideChar;
bLana: Byte;
end;
{$EXTERNALSYM tagRASPPPNBFW}
tagRASPPPNBF = tagRASPPPNBFA;
TRasPppNBFA = tagRASPPPNBFA;
TRasPppNBFW = tagRASPPPNBFW;
TRasPppNBF = TRasPppNBFA;
RASPPPNBFA = tagRASPPPNBFA;
{$EXTERNALSYM tagRASPPPNBFA}
RASPPPNBFW = tagRASPPPNBFW;
{$EXTERNALSYM tagRASPPPNBFW}
RASPPPNBF = RASPPPNBFA;// Describes the results of a PPP IPX (Internetwork Packet Exchange) projection. PRasPppIPXA = ^TRasPppIPXA;
PRasPppIPXW = ^TRasPppIPXW;
PRasPppIPX = PRasPppIPXA;
tagRASPPPIPXA = record
dwSize: DWORD;
dwError: DWORD;
szIpxAddress: packed array[0..RAS_MaxIpxAddress] of AnsiChar;
end;
{$EXTERNALSYM tagRASPPPIPXA}
tagRASPPPIPXW = record
dwSize: DWORD;
dwError: DWORD;
szIpxAddress: packed array[0..RAS_MaxIpxAddress] of WideChar;
end;
{$EXTERNALSYM tagRASPPPIPXW}
tagRASPPPIPX = tagRASPPPIPXA;
TRasPppIPXA = tagRASPPPIPXA;
TRasPppIPXW = tagRASPPPIPXW;
TRasPppIPX = TRasPppIPXA;
RASPPPIPXA = tagRASPPPIPXA;
{$EXTERNALSYM RASPPPIPXA}
RASPPPIPXW = tagRASPPPIPXW;
{$EXTERNALSYM RASPPPIPXW}
RASPPPIPX = RASPPPIPXA;// Describes the results of a PPP IP (Internet) projection{$IFDEF WINVER_0x500_OR_GREATER}
// RASPPPIP 'dwOptions' and 'dwServerOptions' flags
const
RASIPO_VJ = $00000001;
{$EXTERNALSYM RASIPO_VJ}
{$ENDIF}type
PRasPppIPA = ^TPRasPppIPA;
PRasPppIPW = ^TPRasPppIPW;
PRasPppIP = PRasPppIPA;
tagRASIPA = record
dwSize: DWORD;
dwError: DWORD;
szIpAddress: packed array[0..RAS_MaxIpAddress] of AnsiChar;
end;
{$EXTERNALSYM tagRASIPA}
tagRASIPW = record
dwSize: DWORD;
dwError: DWORD;
szIpAddress: packed array[0..RAS_MaxIpAddress] of WideChar;
end;
{$EXTERNALSYM tagRASIPW}
tagRASIP = tagRASIPA;
TPRasPppIPA = tagRASIPA;
TPRasPppIPW = tagRASIPW;
TPRasPppIP = TPRasPppIPA;
RASIPA = tagRASIPA;
{$EXTERNALSYM RASIPA}
RASIPW = tagRASIPW;
{$EXTERNALSYM RASIPW}
RASIP = RASIPA;
还有很多,抄不了这么多!
我的邮箱:
[email protected]
const
// RASPPPLCP 'dwAuthenticatonProtocol' values.
RASLCPAP_PAP = $C023;
{$EXTERNALSYM RASLCPAP_PAP}
RASLCPAP_SPAP = $C027;
{$EXTERNALSYM RASLCPAP_SPAP}
RASLCPAP_CHAP = $C223;
{$EXTERNALSYM RASLCPAP_CHAP}
RASLCPAP_EAP = $C227;
{$EXTERNALSYM RASLCPAP_EAP}// RASPPPLCP 'dwAuthenticatonData' values.
RASLCPAD_CHAP_MD5 = $05;
{$EXTERNALSYM RASLCPAD_CHAP_MD5}
RASLCPAD_CHAP_MS = $80;
{$EXTERNALSYM RASLCPAD_CHAP_MS}
RASLCPAD_CHAP_MSV2 = $81;
{$EXTERNALSYM RASLCPAD_CHAP_MSV2}// RASPPPLCP 'dwOptions' and 'dwServerOptions' flags.
RASLCPO_PFC = $00000001;
{$EXTERNALSYM RASLCPO_PFC}
RASLCPO_ACFC = $00000002;
{$EXTERNALSYM RASLCPO_ACFC}
RASLCPO_SSHF = $00000004;
{$EXTERNALSYM RASLCPO_SSHF}
RASLCPO_DES_56 = $00000008;
{$EXTERNALSYM RASLCPO_DES_56}
RASLCPO_3_DES = $00000010;
{$EXTERNALSYM RASLCPO_3_DES}
{$ENDIF}// Describes the results of a PPP LCP/multi-link negotiation.type
PRasPppLCPA = ^TRasPppLCPA;
PRasPppLCPW = ^TRasPppLCPW;
PRasPppLCP = PRasPppLCPA;
tagRASPPPLCPA = record
dwSize: DWORD;
fBundled: BOOL;
{$IFDEF WINVER_0x500_OR_GREATER}
dwError: DWORD;
dwAuthenticationProtocol: DWORD;
dwAuthenticationData: DWORD;
dwEapTypeId: DWORD;
dwServerAuthenticationProtocol: DWORD;
dwServerAuthenticationData: DWORD;
dwServerEapTypeId: DWORD;
fMultilink: BOOL;
dwTerminateReason: DWORD;
dwServerTerminateReason: DWORD;
szReplyMessage: array[0..RAS_MaxReplyMessage - 1] of WideChar;
dwOptions: DWORD;
dwServerOptions: DWORD;
{$ENDIF}
end;
{$EXTERNALSYM tagRASPPPLCPA}
tagRASPPPLCPW = record
dwSize: DWORD;
fBundled: BOOL;
{$IFDEF WINVER_0x500_OR_GREATER}
dwError: DWORD;
dwAuthenticationProtocol: DWORD;
dwAuthenticationData: DWORD;
dwEapTypeId: DWORD;
dwServerAuthenticationProtocol: DWORD;
dwServerAuthenticationData: DWORD;
dwServerEapTypeId: DWORD;
fMultilink: BOOL;
dwTerminateReason: DWORD;
dwServerTerminateReason: DWORD;
szReplyMessage: array[0..RAS_MaxReplyMessage - 1] of WideChar;
dwOptions: DWORD;
dwServerOptions: DWORD;
{$ENDIF}
end;
{$EXTERNALSYM tagRASPPPLCPW}
tagRASPPPLCP = tagRASPPPLCPA;
TRasPppLCPA = tagRASPPPLCPA;
TRasPppLCPW = tagRASPPPLCPW;
TRasPppLCP = TRasPppLCPA;
RASPPPLCPA = tagRASPPPLCPA;
{$EXTERNALSYM RASPPPLCPA}
RASPPPLCPW = tagRASPPPLCPW;
{$EXTERNALSYM RASPPPLCPW}
RASPPPLCP = RASPPPLCPA;
PRasSlipW = ^TRasSlipW;
PRasSlip = PRasSlipA;
tagRASSLIPA = record
dwSize: DWORD;
dwError: DWORD;
szIpAddress: packed array[0..RAS_MaxIpAddress] of AnsiChar;
end;
{$EXTERNALSYM tagRASSLIPA}
tagRASSLIPW = record
dwSize: DWORD;
dwError: DWORD;
szIpAddress: packed array[0..RAS_MaxIpAddress] of WideChar;
end;
{$EXTERNALSYM tagRASSLIPW}
tagRASSLIP = tagRASSLIPA;
TRasSlipA = tagRASSLIPA;
TRasSlipW = tagRASSLIPW;
TRasSlip = TRasSlipA;
RASSLIPA = tagRASSLIPA;
{$EXTERNALSYM RASSLIPA}
RASSLIPW = tagRASSLIPW;
{$EXTERNALSYM RASSLIPW}
RASSLIP = RASSLIPA;{$IFDEF WINVER_0x500_OR_GREATER}// Describes the results of a PPP CCP (Compression Control Protocol)const// RASPPPCCP 'dwCompressionAlgorithm' values.
RASCCPCA_MPPC = $00000006;
{$EXTERNALSYM RASCCPCA_MPPC}
RASCCPCA_STAC = $00000005;
{$EXTERNALSYM RASCCPCA_STAC}// RASPPPCCP 'dwOptions' values.
RASCCPO_Compression = $00000001;
{$EXTERNALSYM RASCCPO_Compression}
RASCCPO_HistoryLess = $00000002;
{$EXTERNALSYM RASCCPO_HistoryLess}
RASCCPO_Encryption56bit = $00000010;
{$EXTERNALSYM RASCCPO_Encryption56bit}
RASCCPO_Encryption40bit = $00000020;
{$EXTERNALSYM RASCCPO_Encryption40bit}
RASCCPO_Encryption128bit = $00000040;
{$EXTERNALSYM RASCCPO_Encryption128bit}type
PRasPppCcp = ^TRasPppCcp;
tagRASPPPCCP = record
dwSize: DWORD;
dwError: DWORD;
dwCompressionAlgorithm: DWORD;
dwOptions: DWORD;
dwServerCompressionAlgorithm: DWORD;
dwServerOptions: DWORD;
end;
{$EXTERNALSYM tagRASPPPCCP}
TRasPppCcp = tagRASPPPCCP;
RASPPPCCP = tagRASPPPCCP;
{$EXTERNALSYM RASPPPCCP}{$ENDIF}
// If using RasDial message notifications, get the notification message code
// by passing this string to the RegisterWindowMessageA() API.
// WM_RASDIALEVENT is used only if a unique message cannot be registered.const
RASDIALEVENT = 'RasDialEvent';
{$EXTERNALSYM RASDIALEVENT}
WM_RASDIALEVENT = $CCCD;
{$EXTERNALSYM WM_RASDIALEVENT}// Prototypes for caller's RasDial callback handler. Arguments are the
// message ID (currently always WM_RASDIALEVENT), the current RASCONNSTATE and
// the error that has occurred (or 0 if none). Extended arguments are the
// handle of the RAS connection and an extended error code.
//
// For RASDIALFUNC2, subsequent callback notifications for all
// subentries can be cancelled by returning FALSE.type
TRasDialFunc = procedure (unMsg: UINT; rasconnstate: TRasConnState; dwError: DWORD); stdcall;
{$EXTERNALSYM TRasDialFunc}
TRasDialFunc1 = procedure (hrasconn: THRasConn; unMsg: UINT; rascs: TRasConnState;
dwError: DWORD; dwExtendedError: DWORD); stdcall;
{$EXTERNALSYM TRasDialFunc1}
TRasDialFunc2 = function (dwCallbackId: DWORD; dwSubEntry: DWORD;
hrasconn: THRasConn; unMsg: UINT; rascs: TRasConnState; dwError: DWORD;
dwExtendedError: DWORD): DWORD; stdcall;
{$EXTERNALSYM TRasDialFunc2}// Information describing a RAS-capable device. PRasDevInfoA = ^TRasDevInfoA;
PRasDevInfoW = ^TRasDevInfoW;
PRasDevInfo = PRasDevInfoA;
tagRASDEVINFOA = record
dwSize: DWORD;
szDeviceType: packed array[0..RAS_MaxDeviceType] of AnsiChar;
szDeviceName: packed array[0..RAS_MaxDeviceName] of AnsiChar;
end;
{$EXTERNALSYM tagRASDEVINFOA}
tagRASDEVINFOW = record
dwSize: DWORD;
szDeviceType: packed array[0..RAS_MaxDeviceType] of WideChar;
szDeviceName: packed array[0..RAS_MaxDeviceName] of WideChar;
end;
{$EXTERNALSYM tagRASDEVINFOW}
tagRASDEVINFO = tagRASDEVINFOA;
TRasDevInfoA = tagRASDEVINFOA;
TRasDevInfoW = tagRASDEVINFOW;
TRasDevInfo = TRasDevInfoA;
RASDEVINFOA = tagRASDEVINFOA;
{$EXTERNALSYM RASDEVINFOA}
RASDEVINFOW = tagRASDEVINFOW;
{$EXTERNALSYM RASDEVINFOW}
RASDEVINFO = RASDEVINFOA;// RAS country information (currently retrieved from TAPI). PRasCtryInfoA = ^TRasCtryInfoA;
PRasCtryInfoW = ^TRasCtryInfoW;
PRasCtryInfo = PRasCtryInfoA;
RASCTRYINFOA = record
dwSize: DWORD;
dwCountryID: DWORD;
dwNextCountryID: DWORD;
dwCountryCode: DWORD;
dwCountryNameOffset: DWORD;
end;
{$EXTERNALSYM RASCTRYINFOA}
RASCTRYINFOW = record
dwSize: DWORD;
dwCountryID: DWORD;
dwNextCountryID: DWORD;
dwCountryCode: DWORD;
dwCountryNameOffset: DWORD;
end;
{$EXTERNALSYM RASCTRYINFOW}
RASCTRYINFO = RASCTRYINFOA;
TRasCtryInfoA = RASCTRYINFOA;
TRasCtryInfoW = RASCTRYINFOW;
TRasCtryInfo = TRasCtryInfoA;
CTRYINFOA = RASCTRYINFOA;
{$EXTERNALSYM CTRYINFOA}
CTRYINFOW = RASCTRYINFOW;
{$EXTERNALSYM CTRYINFOW}
CTRYINFO = CTRYINFOA;// There is currently no difference between RASCTRYINFOA and RASCTRYINFOW.
// This may change in the future.
const
{$IFDEF WINVER_0x500_OR_GREATER}
ET_40Bit = 1;
{$EXTERNALSYM ET_40Bit}
ET_128Bit = 2;
{$EXTERNALSYM ET_128Bit} ET_None = 0; // No encryption
{$EXTERNALSYM ET_None}
ET_Require = 1; // Require Encryption
{$EXTERNALSYM ET_Require}
ET_RequireMax = 2; // Require max encryption
{$EXTERNALSYM ET_RequireMax}
ET_Optional = 3; // Do encryption if possible. None Ok.
{$EXTERNALSYM ET_Optional}
{$ENDIF} VS_Default = 0; // default (PPTP for now)
{$EXTERNALSYM VS_Default}
VS_PptpOnly = 1; // Only PPTP is attempted.
{$EXTERNALSYM VS_PptpOnly}
VS_PptpFirst = 2; // PPTP is tried first.
{$EXTERNALSYM VS_PptpFirst}
VS_L2tpOnly = 3; // Only L2TP is attempted.
{$EXTERNALSYM VS_L2tpOnly}
VS_L2tpFirst = 4; // L2TP is tried first.
{$EXTERNALSYM VS_L2tpFirst}type
TRasIPAddr = record
a, b, c, d: Byte;
end;
RASIPADDR = TRasIPAddr;
{$EXTERNALSYM RASIPADDR}// A RAS phone book entry. PRasEntryA = ^TRasEntryA;
PRasEntryW = ^TRasEntryW;
PRasEntry = PRasEntryA;
tagRASENTRYA = record
dwSize: DWORD;
dwfOptions: DWORD;
// Location/phone number.
dwCountryID: DWORD;
dwCountryCode: DWORD;
szAreaCode: packed array[0..RAS_MaxAreaCode] of AnsiChar;
szLocalPhoneNumber: packed array[0..RAS_MaxPhoneNumber] of AnsiChar;
dwAlternateOffset: DWORD;
// PPP/Ip
ipaddr: RASIPADDR;
ipaddrDns: RASIPADDR;
ipaddrDnsAlt: RASIPADDR;
ipaddrWins: RASIPADDR;
ipaddrWinsAlt: RASIPADDR;
// Framing
dwFrameSize: DWORD;
dwfNetProtocols: DWORD;
dwFramingProtocol: DWORD;
// Scripting
szScript: packed array[0..MAX_PATH-1] of AnsiChar;
// AutoDial
szAutodialDll: packed array[0..MAX_PATH-1] of AnsiChar;
szAutodialFunc: packed array[0..MAX_PATH-1] of AnsiChar;
// Device
szDeviceType: packed array[0..RAS_MaxDeviceType] of AnsiChar;
szDeviceName: packed array[0..RAS_MaxDeviceName] of AnsiChar;
// X.25
szX25PadType: packed array[0..RAS_MaxPadType] of AnsiChar;
szX25Address: packed array[0..RAS_MaxX25Address] of AnsiChar;
szX25Facilities: packed array[0..RAS_MaxFacilities] of AnsiChar;
szX25UserData: packed array[0..RAS_MaxUserData] of AnsiChar;
dwChannels: DWORD;
// Reserved
dwReserved1: DWORD;
dwReserved2: DWORD;
{$IFDEF WINVER_0x401_OR_GREATER}
// Multilink
dwSubEntries: DWORD;
dwDialMode: DWORD;
dwDialExtraPercent: DWORD;
dwDialExtraSampleSeconds: DWORD;
dwHangUpExtraPercent: DWORD;
dwHangUpExtraSampleSeconds: DWORD;
// Idle timeout
dwIdleDisconnectSeconds: DWORD;
{$ENDIF}
{$IFDEF WINVER_0x500_OR_GREATER}
dwType: DWORD;
dwEncryptionType: DWORD;
dwCustomAuthKey: DWORD;
guidId: TGUID;
szCustomDialDll: packed array[0..MAX_PATH-1] of AnsiChar;
dwVpnStrategy: DWORD;
{$ENDIF}
end;
{$EXTERNALSYM tagRASENTRYA}
tagRASENTRYW = record
dwSize: DWORD;
dwfOptions: DWORD;
// Location/phone number.
dwCountryID: DWORD;
dwCountryCode: DWORD;
szAreaCode: packed array[0..RAS_MaxAreaCode] of WideChar;
szLocalPhoneNumber: packed array[0..RAS_MaxPhoneNumber] of WideChar;
dwAlternateOffset: DWORD;
// PPP/Ip
ipaddr: RASIPADDR;
ipaddrDns: RASIPADDR;
ipaddrDnsAlt: RASIPADDR;
ipaddrWins: RASIPADDR;
ipaddrWinsAlt: RASIPADDR;
// Framing
dwFrameSize: DWORD;
dwfNetProtocols: DWORD;
dwFramingProtocol: DWORD;
// Scripting
szScript: packed array[0..MAX_PATH-1] of WideChar;
// AutoDial
szAutodialDll: packed array[0..MAX_PATH-1] of WideChar;
szAutodialFunc: packed array[0..MAX_PATH-1] of WideChar;
// Device
szDeviceType: packed array[0..RAS_MaxDeviceType] of WideChar;
szDeviceName: packed array[0..RAS_MaxDeviceName] of WideChar;
// X.25
szX25PadType: packed array[0..RAS_MaxPadType] of WideChar;
szX25Address: packed array[0..RAS_MaxX25Address] of WideChar;
szX25Facilities: packed array[0..RAS_MaxFacilities] of WideChar;
szX25UserData: packed array[0..RAS_MaxUserData] of WideChar;
dwChannels: DWORD;
// Reserved
dwReserved1: DWORD;
dwReserved2: DWORD;
{$IFDEF WINVER_0x401_OR_GREATER}
// Multilink
dwSubEntries: DWORD;
dwDialMode: DWORD;
dwDialExtraPercent: DWORD;
dwDialExtraSampleSeconds: DWORD;
dwHangUpExtraPercent: DWORD;
dwHangUpExtraSampleSeconds: DWORD;
// Idle timeout
dwIdleDisconnectSeconds: DWORD;
{$ENDIF}
{$IFDEF WINVER_0x500_OR_GREATER}
dwType: DWORD;
dwEncryptionType: DWORD;
dwCustomAuthKey: DWORD;
guidId: TGUID;
szCustomDialDll: packed array[0..MAX_PATH-1] of WideChar;
dwVpnStrategy: DWORD;
{$ENDIF}
end;
{$EXTERNALSYM tagRASENTRYW}
tagRASENTRY = tagRASENTRYA;
TRasEntryA = tagRASENTRYA;
TRasEntryW = tagRASENTRYW;
TRasEntry = TRasEntryA;
RASENTRYA = tagRASENTRYA;
{$EXTERNALSYM RASENTRYA}
RASENTRYW = tagRASENTRYW;
{$EXTERNALSYM RASENTRYW}
RASENTRY = RASENTRYA;
你把Ras.pas,Lmerr.pas,LmCons.pas做成三个pas文件,就是
Unit的那种,没有窗体的。
再把Ras.ini文件与这三个文件放于同一个文件夹里面,我就是这么做的。绝对可以。
虽然不知道里面是什么意思!把下Ras.pas抄完吧!
// RASENTRY 'dwfOptions' bit flags.const
RASEO_UseCountryAndAreaCodes = $00000001;
{$EXTERNALSYM RASEO_UseCountryAndAreaCodes}
RASEO_SpecificIpAddr = $00000002;
{$EXTERNALSYM RASEO_SpecificIpAddr}
RASEO_SpecificNameServers = $00000004;
{$EXTERNALSYM RASEO_SpecificNameServers}
RASEO_IpHeaderCompression = $00000008;
{$EXTERNALSYM RASEO_IpHeaderCompression}
RASEO_RemoteDefaultGateway = $00000010;
{$EXTERNALSYM RASEO_RemoteDefaultGateway}
RASEO_DisableLcpExtensions = $00000020;
{$EXTERNALSYM RASEO_DisableLcpExtensions}
RASEO_TerminalBeforeDial = $00000040;
{$EXTERNALSYM RASEO_TerminalBeforeDial}
RASEO_TerminalAfterDial = $00000080;
{$EXTERNALSYM RASEO_TerminalAfterDial}
RASEO_ModemLights = $00000100;
{$EXTERNALSYM RASEO_ModemLights}
RASEO_SwCompression = $00000200;
{$EXTERNALSYM RASEO_SwCompression}
RASEO_RequireEncryptedPw = $00000400;
{$EXTERNALSYM RASEO_RequireEncryptedPw}
RASEO_RequireMsEncryptedPw = $00000800;
{$EXTERNALSYM RASEO_RequireMsEncryptedPw}
RASEO_RequireDataEncryption = $00001000;
{$EXTERNALSYM RASEO_RequireDataEncryption}
RASEO_NetworkLogon = $00002000;
{$EXTERNALSYM RASEO_NetworkLogon}
RASEO_UseLogonCredentials = $00004000;
{$EXTERNALSYM RASEO_UseLogonCredentials}
RASEO_PromoteAlternates = $00008000;
{$EXTERNALSYM RASEO_PromoteAlternates}
{$IFDEF WINVER_0x401_OR_GREATER}
RASEO_SecureLocalFiles = $00010000;
{$EXTERNALSYM RASEO_SecureLocalFiles}
{$ENDIF}
{$IFDEF WINVER_0x500_OR_GREATER}
RASEO_RequireEAP = $00020000;
{$EXTERNALSYM RASEO_RequireEAP}
RASEO_RequirePAP = $00040000;
{$EXTERNALSYM RASEO_RequirePAP}
RASEO_RequireSPAP = $00080000;
{$EXTERNALSYM RASEO_RequireSPAP}
RASEO_Custom = $00100000;
{$EXTERNALSYM RASEO_Custom}
RASEO_PreviewPhoneNumber = $00200000;
{$EXTERNALSYM RASEO_PreviewPhoneNumber}
RASEO_SharedPhoneNumbers = $00800000;
{$EXTERNALSYM RASEO_SharedPhoneNumbers}
RASEO_PreviewUserPw = $01000000;
{$EXTERNALSYM RASEO_PreviewUserPw}
RASEO_PreviewDomain = $02000000;
{$EXTERNALSYM RASEO_PreviewDomain}
RASEO_ShowDialingProgress = $04000000;
{$EXTERNALSYM RASEO_ShowDialingProgress}
RASEO_RequireCHAP = $08000000;
{$EXTERNALSYM RASEO_RequireCHAP}
RASEO_RequireMsCHAP = $10000000;
{$EXTERNALSYM RASEO_RequireMsCHAP}
RASEO_RequireMsCHAP2 = $20000000;
{$EXTERNALSYM RASEO_RequireMsCHAP2}
RASEO_RequireW95MSCHAP = $40000000;
{$EXTERNALSYM RASEO_RequireW95MSCHAP}
RASEO_CustomScript = $80000000;
{$EXTERNALSYM RASEO_CustomScript}
{$ENDIF}
// RASENTRY 'dwProtocols' bit flags.
RASNP_NetBEUI = $00000001;
{$EXTERNALSYM RASNP_NetBEUI}
RASNP_Ipx = $00000002;
{$EXTERNALSYM RASNP_Ipx}
RASNP_Ip = $00000004;
{$EXTERNALSYM RASNP_Ip}// RASENTRY 'dwFramingProtocols' bit flags.
RASFP_Ppp = $00000001;
{$EXTERNALSYM RASFP_Ppp}
RASFP_Slip = $00000002;
{$EXTERNALSYM RASFP_Slip}
RASFP_Ras = $00000004;
{$EXTERNALSYM RASFP_Ras}// RASENTRY 'szDeviceType' default strings.
RASDT_Modem = 'modem';
{$EXTERNALSYM RASDT_Modem}
RASDT_Isdn = 'isdn';
{$EXTERNALSYM RASDT_Isdn}
RASDT_X25 = 'x25';
{$EXTERNALSYM RASDT_X25}
RASDT_Vpn = 'vpn';
{$EXTERNALSYM RASDT_Vpn}
RASDT_Pad = 'pad';
{$EXTERNALSYM RASDT_Pad}
RASDT_Generic = 'GENERIC';
{$EXTERNALSYM RASDT_Generic}
RASDT_Serial = 'SERIAL';
{$EXTERNALSYM RASDT_Serial}
RASDT_FrameRelay = 'FRAMERELAY';
{$EXTERNALSYM RASDT_FrameRelay}
RASDT_Atm = 'ATM';
{$EXTERNALSYM RASDT_Atm}
RASDT_Sonet = 'SONET';
{$EXTERNALSYM RASDT_Sonet}
RASDT_SW56 = 'SW56';
{$EXTERNALSYM RASDT_SW56}
RASDT_Irda = 'IRDA';
{$EXTERNALSYM RASDT_Irda}
RASDT_Parallel = 'PARALLEL';
{$EXTERNALSYM RASDT_Parallel}// The entry type used to determine which UI properties
// are to be presented to user. This generally corresponds
// to a Connections "add" wizard selection. RASET_Phone = 1; // Phone lines: modem, ISDN, X.25, etc
{$EXTERNALSYM RASET_Phone}
RASET_Vpn = 2; // Virtual private network
{$EXTERNALSYM RASET_Vpn}
RASET_Direct = 3; // Direct connect: serial, parallel
{$EXTERNALSYM RASET_Direct}
RASET_Internet = 4; // BaseCamp internet
{$EXTERNALSYM RASET_Internet}
// Old AutoDial DLL function prototype.
//
// This prototype is documented for backward-compatibility
// purposes only. It is superceded by the RASADFUNCA
// and RASADFUNCW definitions below. DO NOT USE THIS
// PROTOTYPE IN NEW CODE. SUPPORT FOR IT MAY BE REMOVED
// IN FUTURE VERSIONS OF RAS.type
TORASADFunc = function(hwndOwner: HWND; lpszEntry: LPSTR; dwFlags: DWORD;
var lpdwRetCode: DWORD): BOOL; stdcall;
{$EXTERNALSYM TORASADFunc}{$IFDEF WINVER_0x401_OR_GREATER}
const
// Flags for RasConnectionNotification().
RASCN_Connection = $00000001;
{$EXTERNALSYM RASCN_Connection}
RASCN_Disconnection = $00000002;
{$EXTERNALSYM RASCN_Disconnection}
RASCN_BandwidthAdded = $00000004;
{$EXTERNALSYM RASCN_BandwidthAdded}
RASCN_BandwidthRemoved = $00000008;
{$EXTERNALSYM RASCN_BandwidthRemoved}// RASENTRY 'dwDialMode' values.
RASEDM_DialAll = 1;
{$EXTERNALSYM RASEDM_DialAll}
RASEDM_DialAsNeeded = 2;
{$EXTERNALSYM RASEDM_DialAsNeeded}// RASENTRY 'dwIdleDisconnectSeconds' constants.
RASIDS_Disabled = $ffffffff;
{$EXTERNALSYM RASIDS_Disabled}
RASIDS_UseGlobalValue = $0;
{$EXTERNALSYM RASIDS_UseGlobalValue}// AutoDial DLL function parameter block.
type
PRasAdParams = ^TRasAdParams;
tagRASADPARAMS = record
dwSize: DWORD;
hwndOwner: HWND;
dwFlags: DWORD;
xDlg: LongInt;
yDlg: LongInt;
end;
{$EXTERNALSYM tagRASADPARAMS}
TRasAdParams = tagRASADPARAMS;
RASADPARAMS = tagRASADPARAMS;
{$EXTERNALSYM RASADPARAMS}// AutoDial DLL function parameter block 'dwFlags.'
Unit的那种,没有窗体的。
再把Ras.ini文件与这三个文件放于同一个文件夹里面,我就是这么做的。绝对可以。
虽然不知道里面是什么意思!
===============================================================================
谢谢你在短消息里的提示!
按照你说的,我的调试基本上已经通过,真是感激不尽。
剩下的问题自已慢慢解决吧!!
再次感谢
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcedial/html/cerefrassetentryproperties.asp