而需要提供接受消息的方式和处理消息的函数.当其值为$FFFFFFFF时,则参数handle被 视为一个窗口的句柄,事件消息被发生该窗口处理;当其值为0时,handle被视为TRasDialFunc类型 的函数的指针;当其值为1时,handle被视为TRasDialFunc1类型的函数的指针.
参数handle表示消息处理函数指针,其类型可以THandle、TRasDialFunc、TRasDialFunc1.当该 参数不为NULL或NIL时,其代表的消息处理函数指针将接受拨号进度通知消息;为NIL时,拨号过程由异步方式变为同步方式,直到拨号过程成功或失败后RasDial函数才返回.详细可参见Delphi帮助文件中关于RasDial函数的帮助。
当拨号连接成功时,lphRasConn将表示其连接句柄.
函数返回值为0表示执行成功;否则为错误代码.
下面是一个应用例子,按指定的拨号参数拨号.
var
RASDIALPARAMSData : RASDIALPARAMS;
dwResult : DWord;
RasCon : DWord;
begin
//指定拨号连接的拨号参数
with RASDIALPARAMSData do
begin
dwSize := sizeof( RASDIALPARAMS );//结构大小
szEntryName := ''163'';//指定拨号连接的名称
szUserName := ''MyName'';//指定用户名称
szPassword := ''MyPassword'';//指定用户密码
szDomain := ''MyDomain'';//指定域名
szCallbackNumber := '''';//指定回叫号码
szPhoneNumber := '''';//指定拨号号码
end;
//用指定的拨号参数拨号,采用同步拨号方式
dwResult := RasDial( NIL
''''
@RASDIALPARAMSData
0
NIL
RasCon );
if dwResult <> 0 then //设置指定拨号连接的拨号参数失败
memo1.lines.add( ''用''+StrPAS(RASDIALPARAMSData.szEntryName )+''拨号失败:''
+ GetRasError( dwResult ))
else
memo1.lines.add( ''用''+StrPAS(RASDIALPARAMSData.szEntryName )+''拨号成功!'' );
end;
2、挂断指定的拨号连接
挂断拨号连接的RasAPI函数为RasHangUp,其函数原型为:
function RasHangUp(
hRasConn : DWORD//要挂断的拨号连接的句柄
) : DWORD; stdcall;
function RasHangUp;external RasApiDll name ''RasHangUpA'';
函数返回值为0表示执行成功;否则为错误代码.
下面是一个应用例子,挂断由RasDial建立的拨号连接.
//挂断由RasDial建立的拨号连接
dwResult := RasHangUp( RasCon );
if dwResult <> 0 then //挂断失败
memo1.lines.add( ''挂断失败:'' + GetRasError( dwResult ))
else
memo1.lines.add( ''挂断成功!'');
五、获取当前活动的连接及其连接状态
1、获取当前活动的连接
获取当前活动的连接的RasAPI函数为RasEnumConnections,其函数原型为:
DWORD RasEnumConnections(
LPRASCONN lprasconn, // buffer to receive connections
// data
LPDWORD lpcb, // size in bytes of buffer
LPDWORD lpcConnections // number of connections written
// to buffer
);