Windows传真服务开发.docx_第1页
Windows传真服务开发.docx_第2页
Windows传真服务开发.docx_第3页
Windows传真服务开发.docx_第4页
Windows传真服务开发.docx_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Windows传真服务开发Windows传真服务开发Windows传真服务开发(一)2009-09-23 17:20第1章 微软传真服务简介微软传真服务是使网络用户可以从应用程序中收发传真的一种兼容TAPI(电话应用程序接口)的系统服务,此服务可在微软Windows 2000及以后版本获得并具有以下特点:传送传真灵活的接收传真存档已发送的传真文件服务器和设备配置管理下表详细列出了可用来开发传真客户程序和扩展传真服务的应用程序接口(API)。 传真服务客户API 软件开发者能在客户应用程序里合并基本的传真函数,包括输出传真服务、查询和管理传真作业及传真设备。传真路由扩展API 第三方的软件供应商通过定义输入传真路由扩展来扩展传真服务。此扩展提供了一种灵活的方法以连接接收传真的应用程序,如:打印、保存传真,变换传真图形图像到文本文件等。传真服务供应商API 传真设备制造商提供符合国际电信联盟(ITU)T.30 规范的非调制解调器电话设备支持的传真服务供应商。(微软调制解调器传真服务供应商提供 的T.30传真协议支持带有传真服务调制解调器设备。)下图显示了传真服务的基本结构传真服务供应商和传真路由扩展动态链接库(DLLs)由微软或设备制造商(OEM)提供。第2章 传真服务客户应用程序接口( API )传真服务客户API允许客户在其应用程序中合并基本传真功能。此项技术适用于运行windows 2000及更高版本的计算机。API包括win32函数和COM双重接口实现。本章第一部分构画使用传真服务客户 API可以实现的任务及支持该功能所需的组件,同时也描述了传真服务的安全性,最后对传真端口、传送传真、传真封面和传真路由方法进行了简洁讨论。第二部分讨论win32和COM实现环境下传真程序的差别。还讨论了传真客户函数、COM双重接口以及下列有关的编程任务。连接到传真服务器传真服务器配置管理传真设备管理管理传真路由数据发送传真管理传真作业释放传真资源断开与传真服务器的连接注:在阅读本篇之前,应该对电话应用编程接口( TAPI )和微软电话服务供应商( TSPI ) 有所熟悉,如果计划使用传真客户的COM实现,也应该熟悉COM (部件对象模型)和自动化编程概念。2.1、传真服务客户 API 简介 微软的传真服务为在本地网(LAN)上的客户提供传真服务。传真服务客户 API 允许开发者在其应用程序里合并服务并激活基本传真功能。传真服务客户API 包括Win32 函数接口和 COM 接口。Win32 环境Win32 函数作为动态链接库 WinFax.dll文件被实现。这是一种客户机/服务器实现模式,允许远程计算机上的传真客户与使用 RPC 的传真服务器进行通讯。客户机可以使用共享网络传真打印机访问输出传真服务,或者应用程序可以调用传真服务客户 API中的函数连接一台远程传真服务器进行传真传送。 COM 实现环境COM 接口作为双重接口被VB和C/C+程序员接纳与实现。本文为两种编程语言均提供参考资料。 下图显示了传真客户应用程序的概貌:要实现传真服务,必须在原代码文件中包含WinFax.h 头文件,而要使用微软支持的传真客户COM实现则必须包含 FaxCom.h头文件。 2.1.1、传真服务客户API功能 传真服务客户 API使传真客户应用程序可以执行下列任务: 传送一个存储于计算机中的文档。应用程序能把文档作为一份传真传送到一个或广播到多个程序定义的接受者。 传送一张封面页。用户可以用传真传送一张封面页,该封面可为服务器上的公用封面页,也可以是一张个人的封面页。 通过将打印文档为设备上下文来传送活动文档。基于文档的应用程序可以阻止传真发送向导的显示。程序能够直接为传真客户图形设备接口(GDI)提供传送信息,并且将它打印到一个传真设备上下文来传送一份活动文档。传送一份传真文档到活动调用。使用已经存在的输入链接线路来传送文档可以节约发送传真的费用,这就是所谓的“Faxback服务”。使用传真发送向导发送活动文档。用户可以通过把文档打印到传真打印机来传送该文档。传真发送向导会收集用户的传送信息,而开发者则只需使用打印功能即可。改变传真设备和传真服务器的配置。应用程序可提供配置管理或可使用微软管理控制台( MMC ) 插件组件中的传真配置服务管理应用程序来进行配置。2.1.2、传真服务客户 API 软件要求下列组件被要求支持传真服务客户API的功能 : 传真服务( FaxSvc.exe )。支持传真服务的应用程序可以管理传真设备、配置数据、提供打印服务并收发传真文件。通过传真路由扩展传真服务也可以初始化和重发输出传真路由方法。winFax.lab。包含传真服务客户 API功能的静态链接库。winFax.dll。包含传真服务客户 API 功能的动态链接库。此外,必须在源代码文件中包括 WinFax.h 头文件;而使用微软支持的传真客户 COM 实现,则须包括 FaxCOM.h头文件。传真服务可以与使用 RPC 的网络客户机进行通讯。尽管不需要在每台客户计算机上安装传真服务,但服务一定要可以由 RPC访问到客户计算机。2.1.3、传真服务可执行文件和相关文件下列表格描述了与传真服务相关的可执行文件、 DLL和头文件。文件名 描述FaxSvr.exe 管理传真设备、配置数据、提供打印服务和收发传真文件的传真服务支持应用程序, FaxAdmin.dll 微软管理控制台( MMC )插件组件之一的传真服务管理应用程序,提供配置管理功能。 FaxMon.dll 包含传真打印监视器的动态链接库WinFax.dll 包含传真服务客户API功能的动态链接库WinFax.lib 包含传真服务客户API功能的静态链接库 FaxCom.dll 传真服务客户API的COM接口FaxCover.exe 传真封面页编辑应用程序FaxExt32.dll 包含 MAPI用户接口扩展的动态链接库FaxXp32.dll 包含传真邮件传送功能的动态链接库。 FaxRoute.dll 包含微软传真路由扩展的动态链接库。FaxDev.h 包含传真服务供应商 API 原型的头文件。FaxRoute.h 包含传真路由扩展API 原型的头文件WinFax.h 包含传真客户服务 API Win32环境原型的头文件FaxT30.dll 包含微软调制解调器传真服务提供商的动态链接库FaxDrv.dll 传真打印机驱动程序动态链接库FaxUi.dll 传真打印机驱动程序动态链接库2.1.4、设备和配置管理传真服务提供的传真服务管理应用程序是微软管理控制台( MMC )插件组件之一,传真客户程序可以进行配置管理或使用管理程序进行下列配置管理任务:指定收发传真的器件指定可在端口上执行的路由方法配置全局服务数据2.1.5、传真端口本章中,传真端口始终被看作是一台传真设备以及与设备相联系的配置和与输入信息路由,传真服务为用户提供一个或多个传真端口作为传真传送的终点。传真虚拟设备也存在传真端口,这就意味着传真可以输出到连接至传真服务器的非严格物理设备终端。支持互联网传送传真的传真服务供应商即是使用虚拟传真设备的供应商的例子。2.1.6、传真端口的访问级别传真服务客户 API 允许应用程序查询和修改传真端口的配置数据。Win32环境为了使用户能访问个端口的配置数据, 传真客户应用程序在调用 FaxOpenPort函数时,必须指定正确的传真端口访问级别。FaxOpenPort 返回传真端口句柄并根据指定的访问级别打开端口。应用程序根据用户的需求和许可,可查询下列值:值 意义PORT_OPEN_QUERY 调用FaxGetPort、 FaxEnumPort和FaxGetDeviceStatus 函数查询传真端口信息的端口访问级别PORT_OPEN_MODIFY 调用FaxSetPort 函数修改传真端口配置的端口访问级别,默认为是与PORT_OPEN_QUERY访问级别联系的访问权限。除了要求端口用恰当的访问级别打开之外,传真服务也要求用户查询并且修改端口数据时,要有恰当的访问权限。要获得传真端口句柄和查询端口数据,用户必须获得FAX_PORT_QUERY许可;要修改端口数据,用户必须获得 FAX_PORT_SET 许可。传真客户应用程序可以调用 FaxAccessCheck函数查询用户的访问权限。也可使用微软管理控制台( MMC )插件组件之一的传真服务管理应用程序来修改用户端口访问权限。COM实现环境在应用程序调用修改FaxPort属性的方法之前,须调用 IFaxPort:get CanModiFy方法(检索 V B 中FaxPort对象的CanModify 属性)以确保客户有权修改端口的配置。2.1.7、传真客户程序的用户访问权限传真服务是一种安全的服务。在 Win32 环境下,用户必须拥有访问权限以成功调用某一传真客户程序函数,每次客户程序调用传真客户程序函数前服务均进行访问权限检查。应用程序可以由调用 FaxAccessCheck 函数来检查用户的访问权限,。如果使用微软的 COM 实现,则此时传真客户应用程序无法获得该项功能。若客户没有执行特定任务的访问权限,则方法或函数失败且返回HRESULT_FROM_WIN32 ( ERROR_ACCESS_DENIED )。微软管理控制台( MMC )插件组件之一传真服务管理应用程序,为用户提供查询和修改作业访问权限、端口访问权限和全局配置数据访问权限。下面就详细叙述传真访问权限的内容。 、特定传真访问权限如果使用微软 COM 实现,则此时传真客户应用程序无法利用此项功能。传真服务客户API 定义下列特定访问权限,为用户查询和管理传真作业、传真设备和传真文档提供安全保障。 值 意义FAX_CONFIG_QUERY 允许在传真服务器级查询配置和路由方法数据FAX_CONFIG_SET 允许在传真服务器级修改配置和路由方法数据FAX_JOB_MANAGE 允许在程序中终止传真作业或改变传真作业队列的状态FAX_JOB_QUERY 允许查询队列中和活动传真作业FAX_JOB_SUBMIT 允许发送传真到一个或多个接收者FAX_PORT_QUERY 允许在端口级查询配置、状态和路由算法数据;此访问权限有获取和关闭传真端口句柄的能力FAX_PORT_SET 允许在端口级修改配置和路由方法数据;此权限有启用或屏蔽传真路由算法的能力、通用传真访问权限如果使用微软 COM 实现,则此时传真客户应用程序无法利用此项功能。传真服务客户API 定义下列通用传真访问权限,公共权限默认用户有特定传真访问权限:值 意义FAX_READ 包含由由特定访问权限FAX_JOB_QUERY、FAX_CONFIG_QUERY 和 FAX_PORT_QUERY认可的只读权限FAX_WRITE 此访问等同于FAX_JOB_SUBMIT特定访问权限认可的许可。注意此权限不包括在端口或服务器级修改数据许可。FAX_ALL_ACCESS 包括由下列特定访问权限认可的所有的读写许可: FAX_CONFIG_QUERY、 FAX_CONFIG_SET、FAX_JOB_MANAGE、FAX_JOB_QUERY、FAX_JOB_SUBMIT、FAX_PORT_QUERY和FAX_PORT_SET、函数要求的传真访问权下列表格列出了win32环境下,用户成功地调用某个传真客户函数后可获得的访问权限。访问权限 函数FAX_CONFIG_QUERY(传真配置查询) FaxEnumGlobalRoutingInFo FaxGetConFigurationFaxGetLoggingCategoriesFAX_CONFIG_SET(传真配置设置) FaxSetConFiguration FaxSetGlobalRoutingInFo FaxSetLoggingCategoriesFAX_JOB_QUERY(传真作业查询) FaxEnumJobsFaxGetJobFaxGetPageDataFAX_JOB_SET(传真作业设置) FaxAbortFaxSetJobFAX_JOB_SUBMIT(传真作业提交) FaxSendDocumentFaxSendDocumentForBroadcast FAX_PORT_QUERY(传真端口查询) FaxCloseFaxEnumPorts*FaxEnumRoutingMethodsFaxEnumRoutingMethodsFaxGetDeviceStatus*FaxGetPort*FaxGetRoutingInFoFaxOpenPortFAX_PORT_SET(传真端口设置) FaxEnableRoutingMethod FaxSetPort* FaxSetRoutingInFo*此函数要求特定传真端口访问级。 注意:FAX_JOB_MANAGE 访问级别允许用户调用FaxAbort 函数和FaxSetJob 函数。 2.1.8、传送传真传送输出传真有以下要点:文档文件。传真服务转换数据为传真的标签图象文件格式F类格式(TIFF 6.0 F类)。发送信息。该信息包括传真序号、发送者和接收者数据、可选的账单编码方式以及作业安排信息。在 Win32 环境下,如果将应用程序打印到设备上下文,则FAX_PRINT_INFO结构会包含此信息否则由FAX_JOB_PARAM 结构包含信息。如果使用微软COM 实现方式,可以设置 FaxJob对象的多重属性来指定发传信息。可选封面页文件。在 Win32 环境下,FAX_COVERPAGE_INFO 结构包含此数据,该结构提供封面页模板文件名 (.cov)及用户自定义的模板信息。如果使用微软COM 实现,可设置FaxDoc对象的多重属性来指定封面页息。2.1.9、封面页封面页是一个封面页模板文件( .cov )和传真传送时提供给模板的用户自定义信息。传真服务客户 API 支持封面页打印。封面页可为存储在本地计算机上的个人封面页文件,或为存储在传真服务器上存储的公共封面页。要获取封面页,用户必须提供应封面页文件的完整合法路径或公共封面页文件的相对路径。典型情况下,管理器将公共封面页文件存储在如下的位置:CoverpgSERVERNAMEFAX$Coverpg 在个人计算机系统上,公共封面页文件存储于:CSIDL_APPDATAMicrosoFtWindows NTMSFaxcoverpg用户能够通过使用传真控制面板应用程序来添加个人封面页文件,但此文件必须存储于用户“我的文档”标准文件夹的如下位置:CSIDL_PERSONALFaxPersonal Coverpages此外,在 Win32 环境下,如果用户要指定一个公共封面页文件,就必须设置 FAX_COVERPAGE_INFO结构的UseServerCoverPage 成员为真。而在COM 实现环境下,则须设置FaxDoc对象的ServerCoverpage属性为真。一个传真客户应用程序可以调用 FaxPrintCoverPage 函数将封面页打印到传真打印机设备上下文。2.1.10、传真路由方法传真路由方法是由传真路由扩展动态链接库(DLL)定义的一种程序。当传真端口收到输入传真时,按照优先级顺序执行传真路由方法。由于以下原因,我们需要使用GUID来确定传真路由方法:一个传真路由扩展DLL可以支持多个路由方法。一个传真路由扩展DLL 可以为每个路由方法和传真设备提供唯一的配置数据。多重传真路由扩展 DLLs可用相同的名字输出路由方法。2.1.11、传真客户API编程任务下面我们就具体描述在传真客户应用程序中,要求合并传真服务客户 API功能的典型任务。、win32传真客户编程任务以下步骤总结了在win32编程环境下,编写一份传真客户应用程序需要合并传真服务客户API功能的典型编程任务。 调用FaxconnectFaxsever函数连接到传真服务器。注意除非服务器是本地计算机,否则应用程序必须提供服务器名。必要时,可调用一个或多个传真服务枚举函数。这些函数允许用户查看与传真服务器相连的传真端口和与端口相连的路由信息,也允许用户查看活动传真作业列表。这些枚举函数包括FaxEnumGlobalRoutingInFo、 FaxEnumJobs、 FaxEnumPorts和FaxEnumRoutingMethods函数。调用FaxOpenPort函数获取传真端口句柄。必要时,可调用FaxGetRoutingInFo、FaxSetRoutingInFo和FaxEnableRoutingMethod函数之一或多个来查询和修改传真端口的路由信息。可以调用FaxSendDocument或 FaxSendDocumentForBroadcast 函数来传送传真文件。注意应用程序必须提供诸如传真序号和接收者数据之类的传送信息。调用FaxFreebuFFer函数来释放应用程序调用FaxCOMpletejobparams函数以及Faxenum或Faxget开始的函数时所分配的资源。分两次调用FaxClose 函数。第一次调用断开应用程序与传真端口的连接,第二次调用则断开应用程序与传真服务器的连接。此外,应用程序需要调用其它函数来查询设备或服务器配置数据、管理传真作业以及打印传真。、在C/C+程序中使用 COM 实现以下步骤总结了COM实现环境下,用C/C+编写一份传真客户应用程序需要合并传真服务客户API功能的典型编程任务。调用CoCreateInstance函数创建一个FaxServer对象实例,然后调用IFaxServer:Connect 接口方法连接到活动传真服务器。调用下列iFaxsever接口方法中的一个或多个来创建所需对象:a.调用IFaxServer:GetJobs 方法创建一个 FaxJobs对象,然后使用此对象创造 FaxJob 对象并枚举与所连结传真服务器的相关传真作业。b.调用IFaxServer:Getports方法创建一个 Faxports对象,然后使用此对象创造 Faxport 对象并枚举与所连结传真服务器的相关传真端口配置信息。c.调用IFaxServer:CreateDocument方法创建一个Faxdoc对象,然后使用此对象来发送传真以及检索和设置Faxdoc对象属性。在为特定端口创建FaxPort对象实例之后,即可调用 IFaxPort:GetRoutingMethods 接口方法创建FaxRoutingMethod对象,当然也可调用IFaxRoutingMethods:get_Item 接口方法创建FaxRoutingMethod对象。FaxRoutingMethod对象允许程序员查询和修改传真端口的传真路由信息。调用IFaxPort:GetStatus接口方法即可创建Faxstatus对象,该对象允许程序员提供关于端口的实时状态信息。在创建好Faxdoc对象实例之后,就可以调用IFaxDoc:Send 接口方法来发送一份传真文件。注意,应用程序必须提供诸如传真序号和将发送文件的名称之类的信息。用户也能通过设置Faxdoc对象的多种属性来提供其它需要显示在封面页上的数据。调用sysFreestring函数即可释放以get_PropertyName结束的所有接口方法分配的资源。 调用IFaxServer:Disconnect 接口方法终止与传真服务器的连接,然后调用IUnknown:Release 方法释放FaxServer 对象自身。此外, 要查询设备或服务器配置数据、管理传真作业和销毁附加接口指针应用程序需要调用其它接口方法,而用户若要检索传真服务已发送或接收的文件信息则需创建一个FaxTiFF 对象实例及调用IFaxTiFF接口方法。注意客户应用程序必须调用CoCreateInstance函数来创建FaxServer 或 FaxTiFF对象的实例。但是,不能调用CoCreateInstance函数来创建 FaxDoc 、 FaxJobs 、 FaxJob 、 FaxPorts 、 FaxPort 、 FaxStatus 、FaxRoutingMethods或FaxRoutingMethod对象。 、在VB程序中使用 COM 实现以下步骤总结了COM实现环境下,用VB编写一份传真客户应用程序需要合并传真服务客户API功能的典型编程任务。调用VB的CreateObject函数创建一个FaxServer对象实例,然后调用对象的Connect方法连接到活动传真服务器。可调用下面FaxServer对象方法的一个或多个来创建所需的其它对象:a.调用GetJobs方法创造一个 FaxJobs对象后,即可使用该对象创建FaxJob对象和枚举与所连接传真服务器相关的传真作业。b.调用GetPorts方法创建一个 FaxPorts对象后,即可使用该对象创建 FaxPort对象和枚举所连接传真服务器的传真端口配置信息。c.调用CreateDocument后方法创建一个 FaxDoc对象,即可使用该对象来传送传真以及检索和设置 FaxDoc对象属性。为特定端口创建一个FaxPort对象实例后,调用该对象的GetRoutingMethods方法即可创建FaxRoutingMethods对象。调用 FaxRoutingMethods 对象的Item方法即可创建FaxRoutingMethod对象,该对象允许用户查询和修改传真端口的传真路由信息。调用FaxPort对象的 GetStatus方法可以创建FaxStatus对象,该对象允许用户提供实时的传真端口状态信息。创建好FaxDoc对象的实例后,即可调用对象的Send方法传送一份传真文件。注意应用程序必须提供诸如传真序号和传送文件名之类的信息。客户也可以通过设置 FaxDoc 对象的不同属性,提供在封面页上出现的其它数据。调用FaxServer对象的Disconnect方法可终止与服务器的连接。此外,要查询服务器和设备配置参数以及管理传真作业应用程序就需要设置其它的属性和调用其它方法,而用户若要检索有关传真服务已经收发文件的信息则需创建一个FaxtiFF对象实例来完成该任务。2.1.12、连接到传真服务器大多数情况下,传真客户应用程序在使用传真特性前必须连接到传真服务器。 win32环境要连接到传真服务器,传真客户应用程序在调用其它任何传真客户函数前,必须首先成功调用 FaxConnectFaxServer 函数。该函数返回调用其它传真客户函数所要求的传真服务器句柄。注意,到传真服务器的连接并不要求把传真文档打印到传真打印机设备上下文。程序能直接给传真客户图形设备接口( GDI )函数提供传送信息,并通过打印到打印机设备上下文来传送活动文档。传真客户GDI函数包括FaxStartPrintJob和FaxPrintCoverpage函数。调用FaxClose函数断开到传真服务器的连接并释放FaxConnectFaxServer函数返回的句柄。COM实现环境在C/C+应用程序中,开发者须调用CoCreateInstance函数来检索指向IFaxServer接口的指针并创建一个FaxServer对象实例。随后调用IFaxServer:Connect方法初始化与活动传真服务器的连接。在应用程序可以访问以iFax开始的大多数接口之前,要求其必须连接到服务器。(若访问iFaxtiFF接口则不必连接到传真服务器。)在vb应用程序中,开发者则须调用vbCreateObject函数创建一个 FaxServer 对象实例,然后调用FaxServer对象的Connect方法初始化与活动传真服务器的连接。在应用程序可以访问以Fax开始的大多数对象之前,要求其必须连接到服务器。(若访问FaxtiFF接口则不必连接到传真服务器。) 2.1.12、传真服务器配置管理传真服务客户 API支持对传真服务器配置数据进行改变,并提供服务器级别的配置选项。、管理全局配置数据必须与活动传真服务器连接才能检索和改变其配置信息,这些信息包括对传送、标记、存档和封面页的设置以及贴现率周期和传真服务器状态队列。. Win32环境下FaxGetConFiguration 函数允许传真客户应用程序查询传真服务器的全局配置设置。函数在FAX_CONFIGURATION 结构中返回查询信息。FaxGetConFiguration函数分配FAX_CONFIGURATION 结构所要求的内存,因此应用程序必须调用FaxFreeBuFFer函数来释放已分配的资源。应用程序可调用 FaxSetConFiguration 函数,来修改传真服务器的全局配置设置。注意;应用程序在调用 FaxGetConFiguration函数和FaxSetConFiguration函数前,须先调用 FaxConnectFaxServer函数以获取传真服务器的句柄。.COM实现环境在检索和设置有关FaxServer 对象的信息前,须先连接到活动的传真服务器。C/C+应用程序中,可使用 IFaxServer 接口的属性方法检索和设置 FaxServer对象的全局信息;vb应用程序中,可直接检索和设置 FaxServer对象的属性。、管理日志分类当前此功能仅在Win32 环境下可用;对 COM 实现环境则不可用。日志分类决定错误类型或传真服务器记载在应用程序事件记录文件中的其它事件类型。日志等级描述传真服务器记载的事件严重性的轻重。FaxGetLoggingCategories函数允许传真客户程序查询传真服务器的当前日志分类。函数会在一个或多个的FAX_LOG_CATEGORY结构中返回查询信息,每个结构描述一个当前日志分类。数据包括记日志分类的描述名、分类序号和当前日志级别。由FaxGetLoggingCategories 函数分配 FAX_LOG_CATEGORY结构所要求的内存,因此应用程序必须调用FaxFreeBuFFer函数来释放这些资源。应用程序可通过调用 FaxSetLoggingCategories函数,来修改传真服务器的全局配置设置。注意:在调用 FaxGetConFiguration函数和 FaxSetConFiguration函数前,应用程序必须先调用 FaxConnectFaxServer函数以获得传真服务器句柄。2.1.13、传真设备管理传真服务客户 API 支持对传真路由和设备配置数据进行改变,并提供端口级别的配置选项信息。、查询传真端口数据(Win32 环境)传真客户应用程序调用FaxEnumPorts函数即可显示目前所有与传真服务器相连接的传真设备,而若要查询单独的传真设备,则须调用FaxGetPort 函数。两函数通过FAX_PORT_INFO 结构返回详细的设备信息,一台设备对应一个结构。数据包括永久线路标识符、当前端口的状态和兼容性。注意:应用程序在调用 FaxGetPort函数之前须先调用 FaxOpenPort函数并指定PORT_OPEN_QUERY端口的访问级,。可以调用 FaxGetDeviceStatus 函数,来显示与当前传真服务器连接的某台传真设备的状态,函数在 FAX_DEVICE_STATUS 结构中返回数据。结构包括当前设备状态标志位、设备及其位置标识符、发送和接收者名以及传真路由信息。注意应用程序在调用 FaxEnumPorts 函数前,必须先调用 FaxConnectFaxServer 函数以获得传真服务器句柄;而应用程序在调用FaxGetDeviceStatus函数和FaxGetPort 函数前,须先调用 FaxOpenPort 函数指定 PORT_OPEN_QUERY端口的访问级别并获得传真端口句柄。因为以FaxGet 和 FaxEnum 开始的函数会分配数据缓冲区所要求的内存,故应用程序必须调用 FaxFreeBuFFer 函数以释放这些资源。应用程序可以调用 FaxSetPort 函数来修改一台传真设备的配置设置。、查询传真端口数据(COM实现)FaxPort对象为传真客户应用程序提供查询端口和端口当前状态的永久线路标识符,也可以检索分配到端口的优先传送权。在端口响应调用前,输入传真调用的响铃处于等待状态,而不论当前端口是否启用传送和接受传真。创建FaxPort对象实例后,即可调用 IFaxPort:GetStatus方法(VB 中用 FaxPort 对象的Status方法)创建FaxStatus 对象。使用 FaxStatus 对象检索父FaxPort对象的实时状态信息。调用FaxPort:GetRoutingMethods方法创建FaxRoutingMethods 对象。(VB中用FaxPort对象的GetRoutingMethods方法)然后能使用此对象创建一个 FaxRoutingMethod对象实例。使用FaxRoutingMethod对象可为连结到传真服务器上的传真端口检索传真路由配置信息。在C/C+应用程序中,在为指定的传真创建FaxPort对象以后,可以调用IFaxPort接口方法来检索端口的属性;而VB应用程序中,为指定的传真端口创建FaxPort对象以后,即可检索端口的多个属性。、修改传真端口数据传真客户应用程序能修改传真端口的某个配置数据,这些数据包括分配到端口的传送优先权和端口响应调用前输入传真调用须等待的振铃次数,还包括端口的当前状态和功能以及传送和调用位置的标识符。WIN32环境下传真客户应用程序可以调用 FaxSetPort 函数来改变与传真服务器相连接的传真端口的配置。注意;应用程序在调用 FaxSetPort函数之前,须先调用 FaxOpenPort以指定 PORT_OPEN_MODIFY端口访问级别来获得传真端口句柄。.COM实现环境创建FaxPort对象的实例后,可调用IFaxPort:GetRoutingMethods方法(VB 中可调用 FaxPort对象的GetRoutingMethods方法)来创建FaxRoutingMethod对象。此对象随后被用来创建FaxRoutingMethod 对象的实例。使用 FaxRoutingMethod 对象可在特定传真端口上启用或屏蔽传真路由方法。注意,在应用程序调用修改FaxPort属性的方法前,可先调用IFaxPort:get_CanModiFy方法(在VB中是检索FaxPort对象的CanModify属性)确认客户程序有权修改端口配置。C/C+的应用程序中,在为指定传真端口创建FaxPort对象后,即可调用IFaxPort接口方法来改变端口的属性。VB的应用程序中,在为指定传真端口创建FaxPort对象后,就能马上检索对象的多种属性。 2.1.14、管理传真路由数据一些路由方法属性,如方法优先权,可在传真服务器级设置并适用于所有连接到传真服务器的端口,而其它的传真路由方法属性在端口级设置。下面就详细讨论管理传真路由数据的有关内容。 、管理全局传真路由数据当前,此功能仅在Win32 环境可用,在 COM 实现环境不可用。一个传真客户应用程序可以调用 FaxEnumGlobalRoutingInFo 函数来查询全局路由方法数据,函数在FAX_GLOBAL_ROUTING_INFO结构中返回数据,返回信息包括传真路由方法的优先权和输出此路由方法的 DLL名,还包括 GUID 和确定传真路由方法的函数名以及方法的友好用户名。应用程序调用FaxEnumGlobalRoutingInFo函数为FAX_GLOBAL_ROUTING_INFO结构来分配所要求的内存,因此程序须调用FaxFreeBuFFer函数来释放已分配的资源。程序调用FaxSetGlobalRoutingInFo 函数修改全局路由方法数据。(当前路由方法优先权是应用程序能修改的唯一全局值。)注意:应用程序在调用FaxEnumGlobalRoutingInFo函数和FaxSetGlobalRoutingInFo函数前,必须首先调用 FaxConnectFaxServer 函数以获得传真服务器句柄。、管理单独端口的传真路由数据(WIN32环境)传真管理应用程序可以调用 FaxEnumRoutingMethods 函数来显示与特定设备相关联的所有传真路由方法;调用 FaxGetRoutingInFo函数来查询与设备相关联的单个方法。两个函数都由FAX_ROUTING_METHOD 结构返回调用的详细信息,每个结构对应一种方法。返回数据包括传真路由方法是否被启用的指示和输出路由方法的 DLL名,还包括GUID 和唯一确定路由方法的函数名及方法的友好用户名。程序调用FaxSetRoutingInFo函数即可改变特定传真路由方法的路由数据。注意:应用程序在调用FaxEnumGlobalRoutingInFo函数、FaxSetGlobalRoutingInFo函数和FAXGETROUTINGINFO前,须先调用 FaxOPENPORT函数以获得传真服务器句柄。由于以FAXGET和FAXENUM开始的函数为数据缓存分配内存,故应用程序须调用 FaxFreeBuFFer 函数来释放这些资源。、管理单独端口的传真路由数据(COM实现)除了在特定传真端口上启用或屏蔽传真路由方法,传真客户应用程序还可以检索有关方法的数据,这些数据包括输出方法的DLL名、GUID 和唯一指定路由方法的函数名以及方法的友好用户名。C/C+程序中,在指定端口为传真路由方法创建FaxRoutingMethod 对象后,即可调用 IFaxRoutingMethod接口方法。这些方法能检索路由方法的属性并在端口上启用或屏蔽一个路由方法; VB应用程序中,在指定端口为传真路由方法创建FaxRoutingMethod 对象后,即可检索对象的多种的性质。当然也可以在端口上启用或屏蔽一个路由方法。 、启用或屏蔽传真路由方法传真路由方法是每次在端口上收到传真后执行的行为。传真服务仅执行发送输入传真时端口启用的路由方法。Win32 环境传真客户应用程序可以调用 FaxEnableRoutingMethod 函数为特定传真设备启用一个传真路由方法,也能调用函数来屏蔽因调用FaxEnableRoutingMethod或传真服务管理应用程序而启用的路由方法。应用程序调用FaxEnumRoutingMethods函数来查询当前传真路由方法是否启用。注意,在调用FaxEnableRoutingMethod 或FaxEnumRoutingMethods前,应用程序须先调用FaxOpenPort 函数以获得传真端口句柄。COM的实现环境C/C+应用程序中,可调用IFaxRoutingMethod:put_Enable属性方法在特定端口上启用或屏蔽传真路由方法。若要启用传真路由方法,传真客户程序须传递“真”值到IFaxRoutingMethod:put_Enable方法。IFaxRoutingMethod:get_Enable方法为FaxRoutingMethod对象检索Enable属性。在创建FaxRoutingMethod 对象前,须为FaxPort 对象检索指向IDispatch 接口的指针; vb程序中,可以设定 FaxRoutingMethod 对象的Enable属性,从而在特定端口启用或屏蔽传真路由方法。如果此属性为“真”,则端口启用路由方法。不过在创建FaxRoutingMethod对象以前,须先创建一个FaxPort对象实例。2.1.15、传送传真传真客户应用程序可以传送任何一个文件,但文件必须是正确的注册文件类型,同时传真服务器必须能够访问该文件。 、发送一个封面页传真服务客户API支持打印可选封面页,客户端能在传真文档中传送一个公共封面页或者是私人封面页.如果要求发送一个封面页,则用户必须提供完整的封面页文件路径,或公共封面页文件的相对路径。发送封面页(win32环境下)可以在发送传真时传送服务器上的个人或公共封面页。要传送封面页就须调用FaxSendDocument函数或FaxSendDocumentForBroadcast函数。当调用FaxSendDocument函数传送传真,必须提供指向FAX_COVERPAGE_INFO 结构的指针。该结构提供了封面页模板文件名和文件位于本地或传真服务器的指示,结构同时也提供用户支持的封面页信息。a、发送公共封面页调用FaxSendDocument 函数时,提供指向FAX_COVERPAGE_INFO结构的指针。设定FAX_COVERPAGE_INFO结构的UseServerCoverPage成员为真。在FAX_COVERPAGE_INFO结构的UseServerCoverPage成员指定有效的公共封面页文件.b、发送一个个人封面页调用FaxSendDocument函数时, 提供指向FAX_COVERPAGE_INFO结构的指针。设定FAX_COVERPAGE_INFO结构的UseServerCoverPage成员为假。指定一份传真服务器在FAX_COVERPAGE_INFO结构的CoverpageName成员中访问的有效个人封面页文件。可以调用FaxGetConFiguration 函数确定传真服务器是否允许设置个人封面页。如果应用程序调用FaxSendDocumentForBroadcast函数传送一份传真到多个的接收者,此函数就须调用 FAX_RECIPIENT_CALLBACK函数。而在调用FAX_RECIPIENT_CALLBACK及设置上文提及的成员时,程序必须提供一个指向 FAX_COVERPAGE_INFO 结构的指针。回调函数能为每个特定传真接收者检索指定用户的封面页信息。 发送封面页(COM实现环境)通过设定以下的FAXDOC对象属性,即可在传真中发送公共封面页或个人封面页.a、发送公共封面页 设定SENDCOVERPAGE属性为真。 设定SERVERCOVERPAGE属性为真。 设定封面页名属性为有效公共封面页文件。b、发送个人封面页 设定SENDCOVERPAGE属性为真。 设定SERVERCOVERPAGE属性为假。 设定封面页名属性为有效公共封面页文件。可调用IFaxServer:get_ServerCoverpage方法来确定传真服务是否允许设置个人封面页。要在传真中传送封面页,可以调用 IFaxDoc:Send 方法(VB中是FaxDoc对象的Send方法)。 、发送传真到一个接收者(WIN32环境)传真客户应用程序调用 FaxSendDocument函数来指定存储于磁盘上的文件,从而排列将要发送到一个接受者的传真作业。程序必须指定传送文件并提供指向 FAX_JOB_PARAM 结构的指针。传真服务器将根据FAX_JOB_PARAM指定的细节来排列传真作业。该结构包括接受者的传真号码、发送和接受的数据、可选账号和作业排列信息。要发送一份封面页,应用程序必须提供一个指向 FAX_COVERPAGE_INFO 结构的指针,此结构包含将显示在传真封面页上的数据。程序在调用FaxSendDocument 函数前须先调用 FaxCOMpleteJobParams 函数。FaxCOMpleteJobParams函数为 FAX_COVERPAGE_INFO和FAX_JOB_PARAM 结构的成员提供数据。调用FaxFreeBuFFer 函数来释放与这些结构关联的内存。要有效地将一份传真文件发送到若干接收者,应用程序应该调用 FaxSendDocumentForBroadcast 函数,而非多次调用FaxSendDocument 函数。注意:应用程序在调用 FaxSendDocument 函数和 FaxSendDocumentForBroadcast 函数前须先调用 FaxConnectFaxServer 函数以获得传真服务器句柄。 、发送一份传真到一个接收者(COM实现环境)如果程序使用传真客户COM 实现,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论