当尝试连接到网络地址失败,因为无法访问主机时,系统会在AutoDial映射数据库中搜索该地址。如果地址在数据库中,则系统启动与本地TAPI拨号位置相对应的RASAUTODIALENTRY(如果有)的自动拨号操作。
Win32 API提供了使您能够设置和查询控制自动拨号连接的AutoDial参数的功能。您可以调用RasSetAutodialEnable功能来启用或禁用指定TAPI拨号位置的自动拨号功能。RasGetAutodialEnable功能指示是否为指定的TAPI拨号位置启用了自动拨号功能。有关TAPI拨号位置的更多信息,请参阅TAPI文档。您可以调用RasSetAutodialParam功能来设置其他自动拨号连接参数。例如,您可以禁用当前登录会话的自动拨号连接。调用RasGetAutodialParam函数来确定自动拨号连接参数的当前值。
系统为自动拨号操作提供默认用户界面。但是,您可以创建一个自动拨号动态链接库(DLL),为涉及指定电话簿条目的自动拨号操作提供自定义用户界面。您的AutoDial DLL必须导出一个ANSI和Unicode版本的RASADFunc AutoDial处理程序。
要启用电话簿条目的自定义AutoDial处理程序,请调用RasSetEntryProperties函数来设置该条目的属性。传递给RasSetEntryProperties的RASENTRY结构的szAutodialDll和szAutodialFunc成员指定了自动拨号DLL的名称和RASADFunc功能的名称,不包括“A”或“W”后缀。
当系统启动具有自定义AutoDial处理程序的电话簿条目的自动拨号操作时,它会调用指定的RASADFunc.RASADFunc函数接收一个指向RASADPARAMS结构的指针,指示用户界面窗口的位置和父窗口。您的RASADFunc可以启动线程来执行自定义拨号操作。RASADFunc函数返回TRUE,表示它接管拨号,或FALSE允许系统执行拨号。您的自定义拨号操作必须使用RasDial功能进行实际拨号。拨号操作完成后,通过设置传递给RASADFunc的【lpdwRetCode】参数指向的变量,自定义拨号操作指示成功或失败。