Skip to main content

Send a Fax in windows using faxcomexlib and TAPI in VB code .Net

An application that provides sending fax from faxmodem, connected to the computer, will be explained in the following post. 

We can use Telephony Application Programming Interface (TAPI) and the Fax Service Extended Component Object Model (COM) API to send fax.


The fax service is a Telephony Application Programming Interface (TAPI)-compliant system service that allows users on a network to send and receive faxes from their desktop applications. The service is available on computers that are running Windows 2000 and later. The fax service provides the following features:
  • Transmitting faxes
  • Receiving faxes
  • Flexible routing of inbound faxes
  • Outbound routing
  • Outgoing fax priorities
  • Archiving sent and received faxes
  • Server and device configuration management
  • Client use of server devices for sending and receiving faxes
  • Event logging
  • Activity logging
  • Delivery receipts
  • Security permissions

The following Microsoft Visual Basic code example sends a fax. Note that if you were to convert this Visual Basic example to Microsoft Visual Basic Scripting Edition (VBScript), you would have to use an enumeration constant instead of the value fptHigh.


    Private Sub Form_Load()
        Dim objFaxDocument As New FAXCOMEXLib.FaxDocument
        Dim objFaxServer As New FAXCOMEXLib.FaxServer
        Dim objSender As FAXCOMEXLib.FaxSender
        Dim JobID As Object
        'Error handling
        On Error GoTo Error_Handler

        'Connect to the fax server
        objFaxServer.Connect("")

        'Set the fax body
        objFaxDocument.Body = "c:\Docs\Body.txt"

        'Name the document
        objFaxDocument.DocumentName = "My First Fax"

        'Set the fax priority
        objFaxDocument.Priority = FAXCOMEXLib.FAX_PRIORITY_TYPE_ENUM.fptHIGH


        'Add the recipient with the fax number 12225550100
        objFaxDocument.Recipients.Add("12225550100", "Bud")

        'Choose to attach the fax to the fax receipt
        objFaxDocument.AttachFaxToReceipt = True

        'Set the cover page type and the path to the cover page
        objFaxDocument.CoverPageType = FAXCOMEXLib.FAX_COVERPAGE_TYPE_ENUM.fcptSERVER
        objFaxDocument.CoverPage = "generic"

        'Provide the cover page note
        objFaxDocument.Note = "Here is the info you requested"

        'Provide the address for the fax receipt
        objFaxDocument.ReceiptAddress = "someone@example.com"

        'Set the receipt type to email
        objFaxDocument.ReceiptType = FAXCOMEXLib.FAX_RECEIPT_TYPE_ENUM.frtMAIL

        'Specify that the fax is to be sent at a particular time
        objFaxDocument.ScheduleType = FAXCOMEXLib.FAX_SCHEDULE_TYPE_ENUM.fstSPECIFIC_TIME
        'CDate converts the time to the Date data type
        objFaxDocument.ScheduleTime = CDate("4:35:47 PM")

        objFaxDocument.Subject = "Today's fax"

        'Set the sender properties.
        objFaxDocument.Sender.Title = "Mr."
        objFaxDocument.Sender.Name = "Bob"
        objFaxDocument.Sender.City = "Cleveland Heights"
        objFaxDocument.Sender.State = "Ohio"
        objFaxDocument.Sender.Company = "Microsoft"
        objFaxDocument.Sender.Country = "USA"
        objFaxDocument.Sender.Email = "someone@microsoft.com"
        objFaxDocument.Sender.FaxNumber = "12165555554"
        objFaxDocument.Sender.HomePhone = "12165555555"
        objFaxDocument.Sender.OfficeLocation = "Downtown"
        objFaxDocument.Sender.OfficePhone = "12165555553"
        objFaxDocument.Sender.StreetAddress = "123 Main Street"
        objFaxDocument.Sender.TSID = "Office fax machine"
        objFaxDocument.Sender.ZipCode = "44118"
        objFaxDocument.Sender.BillingCode = "23A54"
        objFaxDocument.Sender.Department = "Accts Payable"

        'Save sender information as default
        objFaxDocument.Sender.SaveDefaultSender()

        'Submit the document to the connected fax server
        'and get back the job ID.

        JobID = objFaxDocument.ConnectedSubmit(objFaxServer)

        MsgBox("The Job ID is :" & JobID(0))

        objFaxServer.Disconnect()

        Exit Sub

Error_Handler:
        'Implement error handling at the end of your subroutine. This 
        ' implementation is for demonstration purposes
        MsgBox("Error number: " & Hex(Err.Number) & ", " & Err.Description)

    End Sub



Note  On Windows Vista, the program must have write access to the archive folder or it will generate an exception.


Comments

Popular posts from this blog

Convert your datatable into generic poco object in c# using linq, ado and reflections.

Follow @harshit_parshii The most common problem that we face these days is to create a common class and method that can be used across all the projects and codes. So today I will be sharing my code where you can see how to make and create a generic function without using entity framework for ado. net. The scenario is like you have an old software that uses stored procedure to return set of entities as a data-table, you do not want to re-write the back-end code as you are creating a web API in c# which needs to be delivered asap. You need to map these data tables to models as you might be using MV* pattern. So here we will be doing one to one mapping of model to data- table, and in similar fashion insert or update can also be done. So basically we are converting a data-table to list of strongly typed object model to do CRUD operations. So we have following things before hand. A helper class is referenced as the database(dbFactory) which executes ado. ne...

DTMF (Mobile) based speed control of AC motor.

Introduction: With the advancement of ages from prehistoric to present day scenario our life has become more sophisticated and busy, so to ease the schedule of this busy life, technology has play the vital role in it and for its proper running of machine the technology has gone further by providing digitization of analog machinery and its use is enhanced day by day. This project is based on the same concept by wireless controlling the machinery through mobile system anywhere from the world. This project aims at Speed Control of AC motor using DTMF method; DTMF stands for dual tone multiple frequencies . The main idea of this project is to control the speed of an AC motor by wireless communication using DTMF decoder technique aiming at the fine use of mobile technology in our day to day use of automated products. Mobile phones have different frequencies for each number printed on it. These numbers when pressed during call duration produces a tone of certain frequency. This frequ...