Registering for Fax Events
The following Microsoft Visual Basic code example demonstrates how to register for fax events. The code registers for notification when the fax server is shut down and when a fax job is added to the outgoing queue. For more information about fax events, see Registering for Event Notifications.
Dim WithEvents g_objFaxServer As FAXCOMEXLib.FaxServer
Dim pJobStatus As FAXCOMEXLib.FaxJobStatus
Private Sub Form_Load()
'Error handling
On Error GoTo Error_Handler
'Initialize the FaxServer object
g_objFaxServer = New FAXCOMEXLib.FaxServer
'Connect to the local fax server
g_objFaxServer.Connect("")
'Now register for the desired events
g_objFaxServer.ListenToServerEvents( _
FAXCOMEXLib.FAX_SERVER_EVENTS_TYPE_ENUM.fsetFXSSVC_ENDED + _
FAXCOMEXLib.FAX_SERVER_EVENTS_TYPE_ENUM.fsetOUT_QUEUE)
'From now on, if the fax service has stopped, the function
'g_objFaxServer_OnServerShutDown() will be called, if a message is
'added to the outgoing queue, g_objFaxServer_OnOutgoingJobAdded() will
'be called, and if there is a change in the status of an outgoing job,
'g_objFaxServer_OnOutgoingJobChanged() will be called
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
Private Sub g_objFaxServer_OnOutgoingJobAdded(ByVal pFaxServer As FAXCOMEXLib.IFaxServer, _
ByVal bstrJobId As String)
MsgBox("New job added to queue")
End Sub
Private Sub g_objFaxServer_OnOutgoingJobChanged(ByVal pFaxServer As FAXCOMEXLib.IFaxServer, _
ByVal bstrJobId As String, ByVal pJobStatus As FAXCOMEXLib.IFaxJobStatus)
'This event receives the FaxJobStatus object
'Since this event is likely to result in errors, such as trying to
'report the transmission end time before the transmission has ended,
'this subroutine includes error handling
'Error handling
On Error GoTo Error_Handler
'Display the FaxJobStatus object's properties when the event is called
MsgBox(pJobStatus.AvailableOperations & _
vbCrLf & "Caller ID: " & pJobStatus.CallerId & _
vbCrLf & "CSID: " & pJobStatus.CSID & _
vbCrLf & "Current page: " & pJobStatus.CurrentPage & _
vbCrLf & "Device ID: " & pJobStatus.DeviceId & _
vbCrLf & "Extended status: " & pJobStatus.ExtendedStatus & _
vbCrLf & "Extended status code: " & pJobStatus.ExtendedStatusCode & _
vbCrLf & "Job type: " & pJobStatus.JobType & _
vbCrLf & "Pages: " & pJobStatus.Pages & _
vbCrLf & "Retries: " & pJobStatus.Retries & _
vbCrLf & "Routing information: " & pJobStatus.RoutingInformation & _
vbCrLf & "Scheduled time: " & pJobStatus.ScheduledTime & _
vbCrLf & "Size: " & pJobStatus.Size & _
vbCrLf & "Status: " & pJobStatus.Status & _
vbCrLf & "Transmission start: " & pJobStatus.TransmissionStart & _
vbCrLf & "TSID: " & pJobStatus.TSID)
'Display the transmission end time separately, as this will cause an error
'while the transmission is still in progress
MsgBox("Transmission end: " & pJobStatus.TransmissionEnd)
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
Private Sub g_objFaxServer_OnServerShutDown(ByVal pFaxServer As FAXCOMEXLib.IFaxServer)
MsgBox("The local fax server has been shut down")
End Sub