Managing Outgoing Jobs

The following Microsoft Visual Basic code example shows how to manage jobs in the outgoing queue. Note that transmission start and end times can only be retrieved for faxes that have started or completed transmission. Individual faxes that have completed transmission will move from the outgoing queue to the outgoing archive, so you will not be able to retrieve that information through the FaxOutgoingQueue object. However, completed faxes that are part of a broadcast that has not completed transmission remain in the queue, and will have useful values in the TransmissionStart and TransmissionEnd properties.

Note

You should check the type of file the user wants to open. Do not allow a user to open a file unless you know its source and are certain that its contents are safe.

 

    Private Sub Form_Load()
        Dim objFaxServer As New FAXCOMEXLib.FaxServer
        Dim objFaxOutgoingQueue As FAXCOMEXLib.FaxOutgoingQueue
        Dim objFaxOutgoingJob As FAXCOMEXLib.FaxOutgoingJob

        'Error handling
        On Error GoTo Error_Handler

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

        'Get the outgoing queue object
        objFaxOutgoingQueue = objFaxServer.Folders.OutgoingQueue

        'Refresh the queue object
        objFaxOutgoingQueue.Refresh()

        MsgBox("There are  " & objFaxOutgoingQueue.GetJobs.Count & " faxes in the outgoing queue")

        Dim n As Integer
        n = InputBox("Which fax should be displayed (item number)?")

        Dim FileName As String
        FileName = InputBox("Provide path and name of file for TIFF copy, e.g. c:\MyFax.tiff")

        'Get the job based on the item number
        objFaxOutgoingJob = objFaxOutgoingQueue.GetJobs.Item(n)

        'Or, if you request the job name from the user, you could use the following:
        'Set objFaxOutgoingJob = objFaxOutgoingQueue.GetJob("My Fax Job")

        'Copy the job to a tiff file for display
        objFaxOutgoingJob.CopyTiff(FileName)


        'Display information about the job. See the SDK documentation for the meaning
        'of numeric values
        MsgBox("Available operations: " & objFaxOutgoingJob.AvailableOperations & _
        vbCrLf & "CSID: " & objFaxOutgoingJob.CSID & _
        vbCrLf & "Current page: " & objFaxOutgoingJob.CurrentPage & _
        vbCrLf & "Device ID: " & objFaxOutgoingJob.DeviceId & _
        vbCrLf & "Document name: " & objFaxOutgoingJob.DocumentName & _
        vbCrLf & "Extended status: " & objFaxOutgoingJob.ExtendedStatus & _
        vbCrLf & "Extended status code: " & objFaxOutgoingJob.ExtendedStatusCode & _
        vbCrLf & "Broadcast receipts grouped?: " & objFaxOutgoingJob.GroupBroadcastReceipts & _
        vbCrLf & "Job ID: " & objFaxOutgoingJob.Id & _
        vbCrLf & "Original scheduled time: " & objFaxOutgoingJob.OriginalScheduledTime & _
        vbCrLf & "Pages: " & objFaxOutgoingJob.Pages & _
        vbCrLf & "Priority: " & objFaxOutgoingJob.Priority & _
        vbCrLf & "Receipt type: " & objFaxOutgoingJob.ReceiptType)

        'Open the tiff file
        Dim A As Object
        A = CreateObject("wscript.shell")
        A.run(FileName)

        'Job options
        Dim Answer As String
        Answer = InputBox("Do you want to cancel(C), Pause(P), Restart (R) or Resume (E) job " & objFaxOutgoingJob.ID & "? (n for none)")
        If Answer = "C" Then objFaxOutgoingJob.Cancel()
        If Answer = "P" Then objFaxOutgoingJob.Pause()
        If Answer = "R" Then objFaxOutgoingJob.Restart()
        If Answer = "E" Then objFaxOutgoingJob.Resume()
        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