WinFlex A WinSock based client for FlexFax Version 0.3 (Beta) Copyright 1993 by Peter Bentley What is WinFlex? WinFlex is a simple Windows 3 client for the Unix based FlexFax network fax system. The current version allows single PostScript files to be spooled to a FlexFax host for faxing to a single destination across a TCP/IP network. WinFlex can be set up to automatically fax all data sent to a specific file, on the assumption that this file has been set up as a Windows printer 'port'. WinFlex interacts with the Print Manager to try and ensure data is collected from this file at the correct time. WinFlex can also generate cover sheets to go with the document you are faxing. Like the Unix FlexFax, cover sheets are produced from a PostScript template file. WinFlex fills in some of the details, and provides a dialogue box for the user to fill in the rest. Version This document describes version 0.3, an BETA release. It works for me in as much as it submits PostScript files to my local FlexFax server. Your mileage may vary. If WinFlex runs amok, nukes your hard disk, has sex with your cat, or anything like that then you are on your own. Don't forget to scan the executable for viruses before you run it. I know I haven't got any, but you shouldn't take my word for it... For more information, see the winflex.doc file (Word for Windows format), or winflex.txt (same document, ASCII format). Distribution WinFlex is distributed as two ZIP files. WFLX03X.ZIP contains the executable and this document in Word for Windows format (WINFLEX.DOC) and in ASCII (WINFLEX.TXT). WFLX03S.ZIP contains another copy of this document and the source code Changes between version 0.2 & 0.3 * Complete status/error logging rewrite. Winflex should now produce more sensible error output. You can save the error log to a file. If you are having problems with Winflex, then turn on logging for everything, then mail the log file with a description of the problem. Winsock error numbers are now translated to textual error messages, which may help some people. * Socket code tidied up. The socket code should now handle little problems like the fax service not being accessible in the services database, dotted decimal IP addresses etc. A number of (silly) bugs which could cause data transmission to hang, or infinite loops printing the message 'invalid file handle' have now been fixed. * Setup dialogues tidied up a little * A few new options. Winflex can be told to override the way windows tells it to start up and can start maximised, minimised or whatever Windows tells it. * Added code to prevent multiple instances of Winflex running. Changes between version 0.1 & 0.2 * Cover sheets can be generated locally and submitted to FlexFax with the main fax. * WinFlex can interact with the Print Manager to automagically pick up PostScript sent to a spool file as soon as Print Manager has finished submitting the job. * WinFlex can query the FlexFax server for status (sort of). * Extended setup & destination dialogues to allow all the information for a cover sheet to be specified. * Can specify hige/medium resolution for sending and page size (currently only A4 & US Letter...) * Fixed typo in my strerror() which would cause a GPF when trying to report an error. Sigh. * Fixed stupid code in tcLineBufSocket::Readable() that meant only one line of text would be delivered to a callback per TCP packet received. * Re-arranged the file transmission code to be a little more efficient. The throughput is still piss-poor on my machine, though... The next stage is to make the actual socket code more efficient (ie less data copying, fewer passes through the message loop).