📄 adrasutl.pas
字号:
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 + -