就上面的问题了,怎么实现,不知道各位有谁知道啊,提供有效的帮助将获得高分或者满分,开两版200分!!!
解决方案 »
- MFC 之 CFileDialog类
- 如何把文本文件的内容读到一个CString字符串中???急啊~!!!
- 串口句柄问题,怎么获取后台程序的串口句柄?
- 软件快作完了,大家来评评,先发个demo
- 主对话框关闭后,怎样才能不结束进程?
- ntwin32.mak在winme下对应的是什么呀? 我用的环境是:winme,vc6.0
- 如何把10进制的数据文件转换成二进制4个字节的浮点型数据,急!!!
- 有谁知道PIMAGE_IMPORT_DESCRIPORE和PIMAGE_THUNK_DATA结构体是如何定义的?
- Mobile模拟环境下无法调用VC++6.0环境下制作的DLL。。。。。。
- 小问题:如何去掉菜单?
- VC中能否显示GIF或JPG图像
- 为什么现在的书都这么贵?
2. LONG lineInitialize(LPHLINEAPP lphLineApp, HINSTANCE hInstance, LINECALLBACK lpfnCallback, LPCTSTR lpszAppName, LPDWORD lpdwNumDevs):初始化TAPI线路。在用TAPI通过MODEM进行远程通讯程序设计时,必不可少的是调用lineInitialize()函数以初始化TAPI。lineInitialize()分配为支持逻辑线路设备的使用而必须的内部资源。它还登记了一个回调函数,使操作系统通过该函数将有关线路状态的消息返回给程序。
3.lineShutDown(hTAPI):关闭TAPI。它是与lineInitialize()相对应的函数,当程序使用完线路设备后,应调用lineShutDown(hTAPI)以释放为线路设备分配的资源。
4.lineNegotiateAPIVersion(hAPI,dwDeviceID,dwLowVersion,dwHighVersion,&dwVersionToUse,&extensions):协商TAPI版本号。TAPI是需要版本协商的一种Win32 API。版本协商确保当安装了新版本的TAPI驱动程序时,程序仍能安全正常运行。
5.lineGetDevCaps(hAPI,dwLine,dwVersionToUse,dwExtVersion,&linedevcaps):返回指定逻辑线路设备的能力。
6.LONG lineGetDevConfig (DWORD dwDeviceID, LPVARSTRING lpDeviceConfig, LPCTSTR lpszDeviceClass):返回指定逻辑线路设备的缺省配置。
7.LONG lineSetDevConfig (DWORD dwDeviceID, LPVOID const lpDeviceConfig, DWORD dwSize, LPCTSTR lpszDeviceClass):设置指定媒体流设备。
8.LONG lineConfigDialogEdit (DWORD dwDeviceID, HWND hwndOwner, LPCTSTR lpszDeviceClass, LPVOID const lpDeviceConfigIn, DWORD dwSize, LPVARSTRING lpDeviceConfigOut):显示一个允许用户改变逻辑线路设备的配置数据的对话框。
9.LONG lineOpen(HLINEAPP hLineApp, DWORD dwDeviceID, LPHLINE lphLine, DWORD dwAPIVersion, DWORD dwExtVersion, DWORD dwCallbackInstance, DWORD dwPrivileges, DWORD dwMediaModes, LPLINECALLPARAMS const lpCallParams):打开指定逻辑线路设备,并提供后续监视和控制线路的功能。调用lineInitialize()函数初始化TAPI后,就可以调用lineOpen()函数以打开线路。
10.LONG lineClose(HLINE hLine):关闭指定逻辑线路设备。
11.LONG lineMakeCall(HLINE hLine, LPHCALL lphCall, LPCTSTR lpszDestAddress, DWORD dwCountryCode, LPLINECALLPARAMS const lpCallParams): 初始化输出拨号,进行呼叫,并返回线路句柄以进行数据传输。
12.LONG lineDrop(HCALL hCall, LPCTSTR lpsUserUserInfo, DWORD dwSize):收线或断开呼叫。当程序结束呼叫时,需要调用lineDrop()函数以断开或中止呼叫。
13.LONG lineDeallocateCall(HCALL hCall):释放系统为呼叫分配的内存。当程序结束呼叫时,除了需要调用lineDrop()函数以断开或中止呼叫外,还调用lineDeallocateCall()函数以释放系统为呼叫分配的内存,调用lineClose()函数以关闭线路,调用lineShutdown()函数以将程序与TAPI断开。
总之,在通过MODEM进行远程通讯程序设计时,必不可少的是要调用lineInitialize()函数以初始化TAPI,以及调用lineOpen()函数以打开线路,调用lineMakeCall()函数以进行拨号。当程序拨号成功后,就可以使用由lineMakeCall()函数返回的线路句柄进行数据传输了!除此之外,为了编写可靠的远程通讯程序,还应调用有关检测线路设备能力的函数,检测TAPI版本兼容性的函数,检测线路当前使用状态的函数等以适应各种情况。当程序结束呼叫时,需要调用lineDrop()函数以断开和中止呼叫,调用lineDeallocateCall()函数以释放系统为呼叫分配的内存,调用lineClose()函数以关闭线路,调用lineShutdown()函数以将程序与TAPI断开。