📄 adrasutl.pas
字号:
szAreaCode : array[0..RasMaxAreaCode] of char;
szLocalPhoneNumber : array[0..RasMaxPhoneNumber] of char;
dwAlternatesOffset : DWord;
IPAddr : TRasIPAddr;
IPAddrDns : TRasIPAddr;
IPAddrDnsAlt : TRasIPAddr;
IPAddrWins : TRasIPAddr;
IPAddrWinsAlt : TRasIPAddr;
dwFrameSize : DWord;
dwNetProtocols : DWord;
dwFramingProtocol : DWord;
szScript : array[0..Max_PATH-1] of char;
szAutodialDll : array[0..Max_PATH-1] of char;
szAutodialFunc : array[0..Max_PATH-1] of char;
szDeviceType : array[0..RasMaxDeviceType] of char;
szDeviceName : array[0..RasMaxDeviceName] of char;
szX25PadType : array[0..RasMaxPadType] of char;
szX25Address : array[0..RasMaxX25Address] of char;
szX25Facilities : array[0..RasMaxFacilities] of char;
szX25UserData : array[0..RasMaxUserData] of char;
dwChannels : DWord;
dwReserved1 : DWord;
dwReserved2 : DWord;
end;
type {RAS dial dialog information - AdRasDialDlg}
PRasDialDlgInfo = ^TRasDialDlgInfo;
TRasDialDlgInfo = record
dwSize : DWord;
hwndOwner : Hwnd;
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;
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 : PRasDeviceInfo;
var lpDeviceInfoSize : DWord
): DWord; stdcall;
TRasSetEntryProperties = function(lpszPhonebook, lpszEntry: PChar;
lpEntryInfo: PRasEntry;
EntryInfoSize: DWord;
lpDeviceInfo: PRasDeviceInfo;
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 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 : PRasDeviceInfo;
var DeviceInfoSize : DWord
) : Integer;
function AdRasSetEntryProperties(const Phonebook, EntryName : string;
PEntry : PRasEntry;
var EntrySize : DWord;
PDeviceInfo : PRasDeviceInfo;
var DeviceInfoSize : DWord
) : Integer;
function AdRasValidateEntryName(const Phonebook, EntryName : string
) : Integer;
procedure LoadRASDLL;
var
AdRasPlatformID : DWord;
implementation
uses
AdExcept,
OoMisc;
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;
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');
@RasGetConnectStatus := GetProcAddress(RASModule, 'RasGetConnectStatusA');
@RasGetErrorString := GetProcAddress(RASModule, 'RasGetErrorStringA');
@RasHangUp := GetProcAddress(RASModule, 'RasHangUpA');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -