Objetos MAPI: Errores de memoria.

E

Eduard Crespo

Tengo un problema con el código de abajo. Utiliza la libreria Microsoft CDO
1.21 Library (CDO.dll), la cual incluye el conjunto de objetos MAPI.
El problema es que quiero desarrollar un programa que coja los mensajes
recibidos por el Outlook de una determinada dirección de correo y almacene
sus
archivos adjuntos. Como primer paso he hecho esto de abajo, pero produce un
error de ejecución del Visual Basic (No del código, sino del VB6.exe), en el
momento en que finaliza la rutina Main() (Después de pasar por "End Sub" y
antes de que haga nada más.). Todo lo demás funciona, básicamente escribe en
la pantalla de Inmediato del VB la dirección de correo de los remitentes de
la Bandeja de Entrada. Justo al salir, se produce el error. No lo entiendo,
no sé de donde viene el error ("La instrucción ...... hace referencia a la
dirección de memoria ..... La memoria no se puede "read". "). Quizás me esté
olvidando de algún detalle de memoria, no lo sé. En la instrucción de inicio
de sesión, no se produce ningún error. Si alguien me pudiera ayudar en esto
o a darme una idea de donde puede venir el error, lo agradeceria mucho.
Aquí queda el código:

Option Explicit

Private mSess1 As Object
Private mFold1 As MAPI.Folder
Private mMess1 As MAPI.Message

Sub Main()

Set mSess1 = CreateObject("MAPI.Session") ' New MAPI.Session ' Crea
un objeto de sesión MAPI.
mSess1.Logon , , False, False ' Inicia una sesión.
Set mFold1 = mSess1.GetDefaultFolder(CdoDefaultFolderInbox) '
Obtiene la Bandeja de Entrada del correo electrónico.
With mFold1.Messages ' Conjunto de mensajes de la carpeta.
Set mMess1 = .GetFirst
Do Until mMess1 Is Nothing
Debug.Print mMess1.Sender.Address ' Esta parte es de prueba,
escribe en la pantalla de Inmediato la dirección de correo del remitente.
Set mMess1 = .GetNext
Loop
End With
If Not (mMess1 Is Nothing) Then
Set mMess1 = Nothing
End If
If Not (mFold1 Is Nothing) Then
Set mFold1 = Nothing
End If
mSess1.Logoff ' Cierra la sesión.
If Not (mSess1 Is Nothing) Then
Set mSess1 = Nothing
End If

End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top