Envio de Fax desde VB.Net con libreria FAXCOMLIB de W2000

kantabriko
22 de Junio del 2005
Hola, para el que le interese muestro como mandar faxes mediante la libreria de Windows FAXCOMLIB y el servicio de envio de fax de windows. El siguiente código está generado contra la libreria de W2000 y funciona (en XP hay que cambiar alguna cosa):

-----------------------------------------

Dim PcServidorFax As New FAXCOMLib.FaxServer
Dim JobId As Integer
Dim objFaxDocumento As FAXCOMLib.FaxDoc

PcServidorFax.Connect("\" & DBHOST)
PcServidorFax.Retries = 1
PcServidorFax.ArchiveDirectory = RUTAFAX

objFaxDocumento = CType(PcServidorFax.CreateDocument(NombreArchivo, FAXCOMLib.FaxDoc)

objFaxDocumento.FileName = NombreArchivo
objFaxDocumento.FaxNumber = FaxDestino

objFaxDocumento.DisplayName = NombreDocumento

objFaxDocumento.EmailAddress = DireccionMail

'Datos del Remitente.
objFaxDocumento.SenderTitle = TituloRemitente objFaxDocumento.SenderName = NombreRemitente
objFaxDocumento.SenderCompany = CompanyRemitente
objFaxDocumento.SenderFax = FaxRemitente objFaxDocumento.SenderHomePhone = HomePhoneRemitente objFaxDocumento.SenderOffice = DirecOficinaRemitente
objFaxDocumento.SenderOfficePhone = OficinaPhoneRemitente
objFaxDocumento.SenderAddress = DirecRemitente
objFaxDocumento.SenderDepartment = DepartRemitente
objFaxDocumento.Tsid = TsidRemitente
objFaxDocumento.BillingCode = BillingCodeRemitente

'Enviamos el documento
JobId = objFaxDocumento.Send()

'FAX EN PROCESO DE ENVIO!!!

Dim FaxJobs As FAXCOMLib.FaxJobs
Dim FaxJob As FAXCOMLib.FaxJob
FaxJobs = PcServidorFax.GetJobs
FaxJob = FaxJobs.Item(1)

'Espero a que termine de enviarse.
Select Case FaxJob.QueueStatus
Case "En espera"
While FaxJob.QueueStatus = "En espera"
Sleep(1000)
FaxJob.Refresh()
Application.DoEvents()
End While
Case "En curso"
While FaxJob.QueueStatus = "En curso"
Sleep(1000)
FaxJob.Refresh()
Application.DoEvents()
End While
Case "Eliminando" 'Se ha cancelado por parte del usuario
While FaxJob.QueueStatus = "Eliminando"
Sleep(1000)
FaxJob.Refresh()
Application.DoEvents()
End While
Case "Desconocido" 'Al finalizar la eliminacion
EnviarFax = False
GoTo Continuar
End Select


'Tratar exito
........

Continuar:
'Tratar fracaso
.......


---------------------------------------------------

Ahora bien, mis preguntas por si alguien lo tiene también implementado...

1. Al enviarse el Fax se abre el Word y es éste el que lo envía. ¿Como se puede hacer para que no se vea el Word abierto? Es decir, que el usuario no aprecie nada.
2. Tratamiento del estado del envío. Tengo mis dudas de que tal como esté funcione correctamente. Alguien tiene hecho de esta u otra forma el tratamiento del cambio de estado del envio del Fax?

Un saludo, Kantabriko.