用TAPI为掌上电脑开发通讯应用程序

用TAPI为掌上电脑开发通讯应用程序,第1张

用TAPI为掌上电脑开发通讯应用程序,第2张

Palm PC (PPC,Palmsize PC)使用Windows CE作为其操作系统。Windows CE是一个模块化、开放、实时、抢占式、多任务的嵌入式操作系统,具有强大的通信能力。它具有高性能、高效率的OS特性,包括按需换页、共享存储、跨进程同步、支持大容量堆等。它支持文件系统、注册表和ObjectStore技术。UNICODE完全支持国际字符集。它具有灵活的电源管理,包括睡眠/唤醒模式。它拥有丰富的服务,支持特定的目标应用程序,如手写、流式视频等。

因为PDA有Windows图形用户界面,所以很容易操作。因为掌上电脑只有手掌大小,所以特别适合移动计算和移动通信领域。Windows CE提供了丰富的通信支持:拨号连接、局域网,以及与PC、intranet和Internet的连接。提供基本的通信基础设施,包括套接字、互联网TCP/IP、PPP、IrDA、远程访问、TAPI(telephone API)、Unimodem、WinInet、Win32串行、SLIP驱动程序和PC连接支持。并且支持广泛的通信硬件。

以两台掌上电脑通过MODEM进行远程通信为例,说明了掌上电脑通信程序设计的主要过程。通过MODEM设计两台掌上电脑之间的远程通信程序主要有两种方法。一种方法是直接使用串行通信功能而不是TAPI,另一种方法是使用TAPI和串行通信功能。因为TAPI可以简化使用MODEM的过程,而TAPI已经成为事实上的工业标准,所以本文介绍了TAPI的方法。

TAPI函数以lineXXXXX的形式命名...其主要功能的具体功能介绍如下。

1.long line getid (hline hline,dword dwaddress id,h call h call,dword dwselect,lpvarstring LP device id,lpctstr lpszdeviceclass):获取或指定与打开的线路、地址或调用相关联的设备标识符。它返回一个调制解调器句柄。。在进行调用之前,程序通常需要调制解调器句柄来检索调制解调器的配置和性能。程序可以通过调用GetCommProperties()读取COMMPROP和COMMCONFIG的结构,GetCommProperties()需要lineGetID()返回的调制解调器句柄。

2.long line initialize(lphlineApp lphlineApp,Hinstance Hinstance,line callback lpfn callback,lpctstr lpszappname,lpdword lpdwnumdevs):初始化TAPI线。用TAPI通过MODEM设计远程通信程序时,需要调用lineInitialize()函数来初始化TAPI。LineInitialize()分配支持使用逻辑线路设备所需的内部资源。它还注册了一个回调函数,操作系统通过这个函数向程序返回关于线路状态的消息。

3.3.lineShutDown(hTAPI API):关闭TAPI。它是与lineInitialize()对应的函数。当程序使用完线路设备时,它应该调用lineShutDown(hTAPI)来释放分配给线路设备的资源。

4.LineNegotiate API版本(HAPI,DW设备ID,DWLOWVersion,DWHighversion,& DWVersionTouse,& Extensions):协商TAPI版本号。TAPI是一个需要版本协商的Win32 API。版本协商保证了当安装新版本的TAPI驱动程序时,程序仍能安全正常运行。

5.LineGetDevCaps (hapi,dwline,dwversiontouse,dwextversion,& lineDevCaps):返回指定逻辑线路设备的能力。

6.Long LineGetDevConfig (DWORD DW设备ID,LPVARString LPDeviceConfig,LPCTSTR LPSZDeviceClass):返回指定逻辑线路设备的默认配置。

7.long LinesetDevConfig(dword dw device ID,lpvoid const lpdeviceConfig,dword dwsize,lpctstr lpszdeviceClass):设置指定的媒体流设备。

8.long LineConfigDialogEdit(DWORD DW设备ID,HWND HWND所有者,LPCTSTR LPSZDeviceClass,LPVoid Const LPDeviceConfigIn,DWORD DWSIZE,LPVARString LPDeviceConfigOut):显示一个对话框,允许用户更改逻辑线路设备的配置数据。

9.LONG lineOpen(HLINEAPP hLineApp,DWORD dwDeviceID,LPHLINE lphLine,DWORD dwAPIVersion,DWORD dwExtVersion,DWORD dwCallbackInstance,Ord dwprivileges,dword dwmediamodes,lplinecallparams const lpcallparams):开启指定的逻辑线路设备,提供对线路的后续监控功能。调用lineInitialize()函数初始化TAPI后,可以调用lineOpen()函数打开行。

10.10.LONG lineClose(HLINE hLine):关闭指定的逻辑线路设备。

11.long linemakecall (hline hline,lph call lph call,lpctstr lpszdestaddress,dword dw国家代码,lplinecallparams const lpcallparams):初始化输出拨号,发出呼叫,返回线路句柄进行数据传输。

12.长线路掉线(h call h call,lpctstr lpsuseruserinfo,dword dwsize):接收或断开呼叫。当程序结束调用时,需要调用lineDrop()函数来断开或中止调用。

13.long line deallocatcall(h call h call):释放系统为调用分配的内存。当程序结束调用时,除了调用lineDrop()函数断开或终止调用外,还调用lineDeallocateCall()函数释放系统分配的内存,调用lineClose()函数关闭线路,调用lineShutdown()函数断开程序与TAPI的连接。

总之,在设计通过MODEM的远程通信程序时,调用lineInitialize()函数初始化TAPI,lineOpen()函数打开线路,lineMakeCall()函数拨号是必不可少的。当程序拨号成功后,就可以使用lineMakeCall()函数返回的线路句柄进行数据传输了!另外,为了编写可靠的远程通信程序,还应该调用测试线路设备能力的函数、测试TAPI版本兼容性的函数、测试线路当前使用状态的函数,以适应各种情况。当程序结束调用时,需要调用lineDrop()函数断开并终止调用,lineDeallocateCall()函数释放系统为调用分配的内存,lineClose()函数关闭线路,lineShutdown()函数断开程序与TAPI的连接。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 用TAPI为掌上电脑开发通讯应用程序

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情