Mike McWhinney

Mike McWhinney

  • NA
  • 6
  • 25.7k

Faxing using Microsoft FAXCOMLib-from client to server

Apr 16 2014 10:22 AM

I have written a program which will send a fax in WinForms C# .NET.

Here is a part of my code (utilizes FXSCOM.DLL):

 string documentName = System.Environment.CurrentDirectory + "\\CashServicesForm.pdf";
           
            FAXCOMLib.FaxServerClass fs = new FAXCOMLib.FaxServerClass();
            fs.Connect("ELJA");
            object obj = fs.CreateDocument(documentName);
            FAXCOMLib.FaxDoc fd = (FAXCOMLib.FaxDoc)obj;
            string faxNumber = "228-8774";
            string recipient = "Medical Office";
            fd.FaxNumber = faxNumber;
            fd.RecipientName = recipient;

            int i = 0;
            try
            {
                i = fd.Send();
            }
            catch (Exception ex)
            {
                MessageBox.Show("There was a problem sending the fax." + "\r\n\r\n" +
                    "Error details: " + ex.Message);
            }
            fs.Disconnect();

Now, the goal is to run this on another machine and connect to the FaxServer on the machine with the fax-modem connected.  The host fax server machine is running Windows XP Professional. The client is running Windows XP Home.

When I run on the program on the client, I get the following error:

The handle is invalid-Exception from HRESULT: 0x80070006 (E_HANDLE)

I have tried another way which is this piece of code (using FXSCOMEX.DLL)

 string documentName = System.Environment.CurrentDirectory + "\\CashServicesForm.pdf";
            FAXCOMEXLib.FaxServerClass fs = new FAXCOMEXLib.FaxServerClass();
            fs.Connect("ELJA");
            FAXCOMEXLib.FaxDocument fd = new FAXCOMEXLib.FaxDocument();
            fd.Body = documentName;
            string faxNumber = "228-8774";
            fd.Priority = FAXCOMEXLib.FAX_PRIORITY_TYPE_ENUM.fptNORMAL;
            string recipient = "Medical Office";
            fd.Recipients.Add(faxNumber, recipient);
            try
            {
                object JobID = fd.ConnectedSubmit(fs);
            }
            catch (Exception ex)
            {
                MessageBox.Show("There was a problem sending the fax." + "\r\n\r\n" +
                    "Error details: " + ex.Message);
            }
            fs.Disconnect();

Connection to fax server failed (System.Runtime.InteropServicees.COMException (0x800706BA))

Is there something wrong that I need to do to connect to the server to send the fax? Can this be set up so that it will work on WinXP Professional/Home and not a Windows Server (R2008, 2012,etc) environment?