用于发送传真的ISAPI扩展

分享于 

4分钟阅读

Web开发

  繁體
<--下载链接 --> !

介绍

Windows 2000/XP 可以通过通过,对象( faxcom.dll ) 或者 API ( winfax.dll ) 以编程方式发送传真的两种可以能性。 但是,对象也可以用于像JScript这样的脚本语言,但它并不像API那样灵活。 通过 API,你在发送过程中接收到对发送过程的控制。 为了能够通过网页发送传真,我已经使用传真api编写了ISAPI扩展。

要使用 fax,你必须使用来自Microsoft平台的相应 header 文件和库。 你可以免费下载 http://msdn.microsoft.com/download 下的平台 SDK。

安装和配置

为了能够使用isapi扩展,IIS和微软传真服务当然必须安装并完全正常工作。 必须先将文档 比如 通过写字板发送到传真打印机,然后才能使用isapi扩展 faxing。

之后,使用iis管理器创建一个新的网络文件夹并将它的退出应用程序。 应用程序的"执行权限"必须设置为"脚本和可执行文件",对"低( IIS进程)的应用程序保护为:

通过"身份验证方法",必须阻止匿名访问:

之后,将isapi扩展( faxisapi.dll ) 和必要的ASP文件(。Default.asp,progress.asp 和 ready.asp ) 复制到web文件夹中。 现在启动浏览器并输入web文件夹的地址( 比如。 "http://localhost/fax") 并通过网页发送传真。

实现

FaxISAPI.DLL的代码由三个. cpp 文件组成。 extension.cpp 包含用于isapi扩展的函数,upload.cpp 包含用于上传的C++ 类,fax.cpp 包含用于初始化传真服务器和发送传真的C++ 类。

要通知客户端上载和传真进程的状态信息,isapi动态链接库将写入状态文件( 这里状态文件将在": winnttemp"并且它的名称对应于会话 ID +"。log")。
ASP文件 progress.asp 每秒刷新一次,progress.asp 从状态文件读取服务器上的状态。

Default.asp 包含用于从用户那里获取传真号码的HTML表单。 然后将传真号传递给 choosefile.asp. 文件 choosefile.asp 包含选择传真文件的HTML表单,并在"提交"调用 FaxISAPI.DLL 并使用 progress.asp. 同时打开一个新浏览器窗口

上载要传真的文件

CUpload 类包含将一个文件上传到一个web服务器的方法。 类写入写入状态文件的字节数以及文件的长度。 这里状态信息由 progress.asp 用来显示进度栏。 上传的文件被存储在文件夹" c:winnttemp"中。

传真上传的文件

CFax 包含传真服务初始化/deinitialising ( Init, DeInit )的方法和发送传真文档( send )的方法。 第一次加载DLL时调用 ISAPI.DLL的方法 Init,在卸载DLL时进行 DeInit。 传真文档的真实发送过程在 CFax::Send 中实现。 isapi完成它的工作,发送传真后向浏览器发送一个重定向到浏览器。 然后 ready.asp 提供有关是否可以成功发送传真的用户信息。

结束语

通过传真 API,你可以访问传真服务的所有基本事件。

相关文章