如题,我在程序里加了拨号的操作,但是里面如
RasDial等都要用到Ras的单元文件,请问哪位有,
感激不尽!
即时给分!

解决方案 »

  1.   

    嘿嘿,我刚刚做过,有这个。
    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;
      

  2.   

    太长了,邮件吧!
    这里面还用了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.
      

  3.   

    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' 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;
    还有很多,抄不了这么多!
      

  4.   

    多谢,CSDN真不错,
    我的邮箱:
    [email protected]
      

  5.   

    {$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;
      

  6.   

    // 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.
      

  7.   

    这里原封不动的,具体是什么意思都不知道。
    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;
      

  8.   

    刚刚发完,请查收!
    你把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.'
      

  9.   

    你把Ras.pas,Lmerr.pas,LmCons.pas做成三个pas文件,就是
    Unit的那种,没有窗体的。
    再把Ras.ini文件与这三个文件放于同一个文件夹里面,我就是这么做的。绝对可以。
    虽然不知道里面是什么意思!
    ===============================================================================
    谢谢你在短消息里的提示!
    按照你说的,我的调试基本上已经通过,真是感激不尽。
    剩下的问题自已慢慢解决吧!!
    再次感谢
      

  10.   

    对了,有关拨号的你也可以参照microsoft的MSDN
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcedial/html/cerefrassetentryproperties.asp