Opening a Fax from the Outgoing Archive
The following Microsoft Visual Basic code example demonstrates how to retrieve a fax from the outgoing archive using the outgoing fax iterator. It also displays the fax's properties and provides an option for deleting the fax.
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 objFaxOutgoingMessageIterator As FAXCOMEXLib.FaxOutgoingMessageIterator
Dim objFaxOutgoingMessage As FAXCOMEXLib.FaxOutgoingMessage
Dim Prefetch As String
Dim Answer As String
Dim FileName As String
Dim A As Object
'Error handling
On Error GoTo Error_Handler
'Connect to the fax server
objFaxServer.Connect("")
'Get the iterator and Set the prefetch buffer size
Prefetch = InputBox("How many messages should be prefetched?")
'Refresh the archive
objFaxServer.Folders.OutgoingArchive.Refresh()
objFaxOutgoingMessageIterator = objFaxServer.Folders.OutgoingArchive.GetMessages(Prefetch)
'Set the iterator cursor to the first message in the buffer
objFaxOutgoingMessageIterator.MoveFirst()
For i = 1 To Prefetch
If i > 1 Then
Answer = InputBox("View next message (Y/N)?")
If Answer <> "Y" Then
Exit Sub
End If
End If
'Check for end of file
If objFaxOutgoingMessageIterator.AtEOF = True Then
MsgBox("End of File Reached")
Exit Sub
End If
'Get the message
objFaxOutgoingMessage = objFaxOutgoingMessageIterator.Message
FileName = InputBox("Provide path and name of file for TIFF copy, e.g. c:\MyFax.tiff")
objFaxOutgoingMessage.CopyTiff(FileName)
'Open the tiff file
A = CreateObject("wscript.shell")
A.run(FileName)
'Display message properties
MsgBox("Message information" & _
vbCrLf & "CSID: " & objFaxOutgoingMessage.CSID & _
vbCrLf & "Device name: " & objFaxOutgoingMessage.DeviceName & _
vbCrLf & "Document name: " & objFaxOutgoingMessage.DocumentName & _
vbCrLf & "Message ID: " & objFaxOutgoingMessage.ID & _
vbCrLf & "Original scheduled time: " & objFaxOutgoingMessage.OriginalScheduledTime & _
vbCrLf & "Pages: " & objFaxOutgoingMessage.Pages & _
vbCrLf & "Priority: " & objFaxOutgoingMessage.Priority & _
vbCrLf & "Recipient fax number: " & objFaxOutgoingMessage.Recipient.FaxNumber & _
vbCrLf & "Retries: " & objFaxOutgoingMessage.Retries & _
vbCrLf & "Sender name: " & objFaxOutgoingMessage.Sender.Name & _
vbCrLf & "Size: " & objFaxOutgoingMessage.Size & _
vbCrLf & "Subject: " & objFaxOutgoingMessage.Subject & _
vbCrLf & "Submission ID: " & objFaxOutgoingMessage.SubmissionId & _
vbCrLf & "Submission time: " & objFaxOutgoingMessage.SubmissionTime & _
vbCrLf & "Transmission end time: " & objFaxOutgoingMessage.TransmissionEnd & _
vbCrLf & "Transmission start time: " & objFaxOutgoingMessage.TransmissionStart & _
vbCrLf & "TSID: " & objFaxOutgoingMessage.TSID)
'Option to delete the fax
Dim DelAnswer As String
DelAnswer = InputBox("Delete this fax from the archive (Y/N)?")
If DelAnswer <> "Y" Then objFaxOutgoingMessage.Delete()
'Set the iterator cursor to the next message
objFaxOutgoingMessageIterator.MoveNext()
Next
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