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

📄 adrasutl.pas

📁 测试用例
💻 PAS
📖 第 1 页 / 共 3 页
字号:
    dwFlags    : DWord;
    xDlg       : Longint;
    yDlg       : Longint;
    dwSubEntry : DWord;
    dwError    : DWord;
    reserved   : DWord;
    reserved2  : DWord;
  end;

type {RAS monitor dialog information - AdRasMonitorDlg}
  PRasMonitorDlgInfo = ^TRasMonitorDlgInfo;
  TRasMonitorDlgInfo = record
    dwSize      : DWord;
    hwndOwner   : HWnd;
    dwFlags     : DWord;
    dwStartPage : DWord;
    xDlg        : Longint;
    yDlg        : Longint;
    dwError     : DWord;
    reserved    : DWord;
    reserved2   : DWord;
  end;

type {RAS phonebook dialog information - AdRasPhonebookDlg}
  PRasPhonebookDlgInfo = ^TRasPhonebookDlgInfo;
  TRasPhonebookDlgInfo = record
    dwSize : DWord;
    hwndOwner : HWnd;
    dwFlags : DWord;
    xDlg : Longint;
    yDlg : Longint;
    dwCallbackId : DWord;
    pCallback : FARPROC;
    dwError : DWord;
    reserved : DWord;
    reserved2 : DWord;
  end;


{RASAPI32 DLL function prototypes}
type
  TRasDial = function (lpDialExtensions : PRasDialExtensions;
                       lszPhonebook : PChar;
                       lpDialParams : PRasDialParams;
                       dwNotifierType : DWord;
                       lpvNotifier : DWord;
                       lpConn : PHRasConn
                       ) : DWord; stdcall;

  TRasDialDlg = function (lpszPhonebook : PChar;
                          lpszEntry : PChar;
                          lpszPhoneNumber : PChar;
                          lpDialDlgInfo : PRasDialDlgInfo
                          ) : BOOL; stdcall;

  TRasMonitorDlg = function (lpszDeviceName : PChar;
                             lpMonitorDlgInfo : PRasMonitorDlgInfo
                             ) : BOOL; stdcall;

  TRasPhonebookDlg = function (lpszPhonebook : PChar;
                               lpszEntry : PChar;
                               lpPBDlgInfo: PRasPhonebookDlgInfo
                               ) : BOOL; stdcall;

  TRasEnumConnections = function (lpConn : PRasConn;
                                  var lpBufSize : DWord;
                                  var lpNumConnections : DWord
                                  ) : DWord; stdcall;

  TRasEnumEntries = function(lpReserved, lpszPhonebook : PChar;
                              lpEntryName : PRasEntryName;
                              var lpEntryNameSize : DWord;
                              var lpNumEntries : DWord
                              ) : DWord; stdcall;

  TRasClearConnectionStatistics = function(Conn : HRasConn               {!!.06}
                                           ) : DWORD; stdcall;           {!!.06}

  TRasGetConnectionStatistics = function(Conn : HRasConn;                {!!.06}
                                         lpStatistics : PRasStatistics   {!!.06}
                                         ) : DWord; stdcall;             {!!.06}

  TRasGetConnectStatus = function(Conn : HRasConn;
                                  lpConnStatus : PRasConnStatus
                                  ) : DWord; stdcall;

  TRasGetErrorString = function(ErrorCode : DWord;
                                lpszErrorString : PChar;
                                BufSize : DWord
                                ) : DWord; stdcall;

  TRasHangup = function(RasConn : HRasConn
                        ) : DWord; stdcall;

  TRasGetEntryDialParams = function(lpszPhonebook : PChar;
                                    lpDialParams : PRasDialParams;
                                    var Password : Bool
                                    ) : DWord; stdcall;

  TRasSetEntryDialParams = function(lpszPhonebook : PChar;
                                    lpDialParams : PRasDialParams;
                                    RemovePassword : Bool
                                    ) : DWord; stdcall;

  TRasCreatePhonebookEntry = function(HWnd : THandle;
                                      lpszPhoneBook : PChar
                                      ) : DWord; stdcall;

  TRasEditPhonebookEntry = function(HWnd : THandle;
                                    lpszPhonebook, lpszEntryName : PChar
                                    ) : DWord; stdcall;

  TRasDeleteEntry = function(lpszPhonebook : PChar;
                             lpszEntryName : PChar
                             ) : DWord; stdcall;

  TRasRenameEntry = function(lpszPhonebook : PChar;
                             lpszEntryOld : PChar;
                             lpszEntryNew : PChar
                             ) : DWord; stdcall;

  TRasEnumDevices = function(lpDeviceInfo: PRasDeviceInfo;
                             var lpDeviceInfoSize: DWord;
                             var lpNumDevices: DWord
                             ) : DWord; stdcall;

  TRasGetCountryInfo = function(lpCountryInfo: PRasCountryInfo;
                                var lpCountryInfoSize: DWord
                                ): DWord; stdcall;

  TRasGetEntryProperties = function(lpszPhonebook, lpszEntry: PChar;
                                    lpEntry: PRasEntry;
                                    var lpEntrySize : DWord;
                                    lpDeviceInfo : PTapiConfigRec;       {!!.06}
                                    var lpDeviceInfoSize : DWord
                                    ): DWord; stdcall;

  TRasSetEntryProperties = function(lpszPhonebook, lpszEntry: PChar;
                                    lpEntryInfo: PRasEntry;
                                    EntryInfoSize: DWord;
                                    lpDeviceInfo: PTapiConfigRec;        {!!.06}
                                    DeviceInfoSize: DWord
                                    ): DWord; stdcall;

  TRasValidateEntryName = function(lpszPhonebook, lpszEntry: PChar
                                   ): DWord; stdcall;


{ RAS DLL routine wrappers and public routines }
function AdRasDial(PDialExtensions : PRasDialExtensions;
                   const Phonebook : string;
                   PDialParams : PRasDialParams;
                   NotifierType : DWord;
                   Notifier : DWord;
                   var HConn : HRasConn
                   ) : Integer;

function AdRasDialDlg(const Phonebook : string;
                      const EntryName : string;
                      const PhoneNumber : string;
                      PDialDlgInfo : PRasDialDlgInfo
                      ) : Integer;

function AdRasMonitorDlg(const DeviceName : string;
                         PMonitorDlgInfo : PRasMonitorDlgInfo
                         ) : Integer;

function AdRasPhonebookDlg(const Phonebook, EntryName : string;
                           PPhonebookDlgInfo: PRasPhonebookDlgInfo
                           ) : Integer;

function AdRasEnumConnections(PConn : PRasConn;
                              var ConnSize : DWord;
                              var NumConnections : DWord
                              ) : Integer;

function AdRasEnumEntries(const Phonebook : string;
                          PEntryName : PRasEntryName;
                          var EntryNameSize : DWord;
                          var NumEntries : DWord
                          ) : Integer;

function AdRasClearConnectionStatistics(HConn : THandle) : Integer;      {!!.06}

function AdRasGetConnectionStatistics(HConn : THandle;                   {!!.06}
                                      PStatistics : PRasStatistics       {!!.06}
                                      ) : Integer;                       {!!.06}

function AdRasGetConnectStatus(HConn : THandle;
                               PConnStatus : PRasConnStatus
                               ) : Integer;

function AdRasGetErrorString(ErrorCode : Integer
                             ) : string;

function AdRasHangup(HConn : THandle
                     ) : Integer;

function AdRasGetEntryDialParams(const Phonebook : string;
                                 PDialParams : PRasDialParams;
                                 var GotPassword : Boolean
                                 ) : Integer;

function AdRasSetEntryDialParams(const Phonebook : string;
                                 PDialParams : PRasDialParams;
                                 RemovePassword : Boolean
                                 ) : Integer;

function AdRasCreatePhonebookEntry(HWnd : THandle;
                                   const PhoneBook : string
                                   ) : Integer;

function AdRasEditPhonebookEntry(HWnd : THandle;
                                 const Phonebook, EntryName : string
                                 ) : Integer;

function AdRasDeleteEntry(const Phonebook, EntryName : string
                          ) : Integer;

function AdRasRenameEntry(const Phonebook, EntryOld, EntryNew : string
                          ) : Integer;

function AdRasEnumDevices(PDeviceInfo : PRasDeviceInfo;
                          var DeviceInfoSize : DWord;
                          var NumDevices : DWord
                          ) : Integer;

function AdRasGetCountryInfo(PCountryInfo : PRasCountryInfo;
                             var CountryInfoSize : DWord
                             ) : Integer;

function AdRasGetEntryProperties(const Phonebook, EntryName : string;
                                 PEntry : PRasEntry;
                                 var EntrySize : DWord;
                                 PDeviceInfo : PTapiConfigRec;           {!!.06}
                                 var DeviceInfoSize : DWord
                                 ) : Integer;

function AdRasSetEntryProperties(const Phonebook, EntryName : string;
                                 PEntry : PRasEntry;
                                 var EntrySize : DWord;
                                 PDeviceInfo : PTapiConfigRec;           {!!.06}
                                 var DeviceInfoSize : DWord
                                 ) : Integer;

function AdRasValidateEntryName(const Phonebook, EntryName : string
                                ) : Integer;


procedure LoadRASDLL;


var
  AdRasPlatformID : DWord;


implementation

{uses}                                                                   {!!.06}
  {AdExcept,}                                                            {!!.06}
  {OoMisc;}                                                              {!!.06}

var {Misc variables}
  RASModule               : THandle = 0;
  RASDlgModule            : THandle = 0;
  VersionInfo             : TOsVersionInfo;

var {RAS DLL functions}
  RasDial                 : TRasDial                 = nil;
  RasDialDlg              : TRasDialDlg              = nil;
  RasMonitorDlg           : TRasMonitorDlg           = nil;
  RasPhonebookDlg         : TRasPhonebookDlg         = nil;
  RasEnumConnections      : TRasEnumConnections      = nil;
  RasEnumEntries          : TRasEnumEntries          = nil;
  RasClearConnectionStatistics : TRasClearConnectionStatistics = nil;    {!!.06}
  RasGetConnectionStatistics : TRasGetConnectionStatistics = nil;        {!!.06}
  RasGetConnectStatus     : TRasGetConnectStatus     = nil;
  RasGetErrorString       : TRasGetErrorString       = nil;
  RasHangUp               : TRasHangUp               = nil;
  RasCreatePhoneBookEntry : TRasCreatePhoneBookEntry = nil;
  RasEditPhonebookEntry   : TRasEditPhonebookEntry   = nil;
  RasSetEntryDialParams   : TRasSetEntryDialParams   = nil;
  RasGetEntryDialParams   : TRasGetEntryDialParams   = nil;
  RasDeleteEntry          : TRasDeleteEntry          = nil;
  RasRenameEntry          : TRasRenameEntry          = nil;
  RasEnumDevices          : TRasEnumDevices          = nil;
  RasGetCountryInfo       : TRasGetCountryInfo       = nil;
  RasGetEntryProperties   : TRasGetEntryProperties   = nil;
  RasSetEntryProperties   : TRasSetEntryProperties   = nil;
  RasValidateEntryName    : TRasValidateEntryName    = nil;


{ Misc utilities }
procedure LoadRASDLL;
begin
  if (RASModule = 0) then begin
    RASModule := LoadLibrary(RASDLL);
    if (RASModule = 0) then
      raise ERas.Create(ecRasLoadFail, False);

    VersionInfo.dwOSVersionInfoSize := SizeOf(VersionInfo);
    if GetVersionEx(VersionInfo) then
      AdRasPlatformID := VersionInfo.dwPlatformId
    else
      AdRasPlatformID := VER_PLATFORM_WIN32s;

    @RasDial := GetProcAddress(RASModule, 'RasDialA');
    @RasEnumConnections := GetProcAddress(RASModule, 'RasEnumConnectionsA');
    @RasClearConnectionStatistics := GetProcAddress(RasModule,           {!!.06}   
      'RasClearConnectionStatistics');                                   {!!.06}
    @RasGetConnectionStatistics := GetProcAddress(RASModule,             {!!.06}
      'RasGetConnectionStatistics');                                     {!!.06}
    @RasGetConnectStatus := GetProcAddress(RASModule, 'RasGetConnectStatusA');
    @RasGetErrorString := GetProcAddress(RASModule, 'RasGetErrorStringA');
    @RasHangUp := GetProcAddress(RASModule, 'RasHangUpA');
    @RasCreatePhoneBookEntry := GetProcAddress(RASModule, 'RasCreatePhonebookEntryA');
    @RasEnumEntries := GetProcAddress(RASModule, 'RasEnumEntriesA');
    @RasGetEntryDialParams := GetProcAddress(RASModule, 'RasGetEntryDialParamsA');
    @RasSetEntryDialParams := GetProcAddress(RASModule, 'RasSetEntryDialParamsA');
    @RasEditPhonebookEntry := GetProcAddress(RASModule, 'RasEditPhonebookEntryA');
    @RasDeleteEntry := GetProcAddress(RASModule, 'RasDeleteEntryA');
    @RasRenameEntry := GetProcAddress(RASModule, 'RasRenameEntryA');

    @RasEnumDevices := GetProcAddress(RASModule, 'RasEnumDevicesA');
    @RasGetCountryInfo := GetProcAddress(RASModule, 'RasGetCountryInfoA');
    @RasGetEntryProperties := GetProcAddress(RASModule, 'RasGetEntryPropertiesA');
    @RasSetEntryProperties := GetProcAddress(RASModule, 'RasSetEntryPropertiesA');
    @RasValidateEntryName := GetProcAddress(RASModule, 'RasValidateEntryNameA');
  end;
end;

⌨️ 快捷键说明

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