Welcome

首页 / 软件开发 / C++ / 不调用拨号网络在程序中拨号

不调用拨号网络在程序中拨号2010-06-02用拨号连接拨号的RasAPI函数为RasDial,其函数原型为:

function RasDial(pRasDialExtensions : LPRASDIALEXTENSIONS;//在WIN9X下无用,可设置为NIL

lpszPhonebook : PChar;//电话本名称,在Win9X下无作用,可为空字符串

lpRasDialParams : LPRASDIALPARAMS;//拨号参数

dwNotifierType : DWORD;//消息通知方式

handle : TRasDialFunc;//消息处理事件

var lphRasConn : DWORD//返回的成功连接的连接句柄

) : DWORD; stdcall;

function RasDial;external RasApiDll name "RasDialA";

参数pRASDIALPARAMS的说明同RasGetEntryDialParams.

参数dwNotifierType表示消息通知方式.在拨号过程中,系统发出拨号事件消息可以通知拨号进度,因而需要提供接受消息的方式和处理消息的函数.当其值为$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;