Tengo una aplicación escrita en Delphi que agrega/actualiza contactos en outlook. El problema que tengo es que si el contacto se ha eliminado en Outlook, el código aún encuentra el contacto y lo actualiza, y el contacto aún permanece eliminado. ¿Hay alguna manera de determinar si el contacto se borra o recuperar el contacto?Recuperar un contacto en Outlook
Aproximadamente el código es algo como:
OutlookApp := CreateOleObject('Outlook.Application');
Mapi := OutlookApp.GetNameSpace('MAPI');
//.....
try
if ContactOutlookEntryID.AsString <> '' then
aContact := Mapi.GetItemFromID(ContactOutlookEntryID.AsString);
except
end;
//try to locate the contact if they have been synchro'd before
if VarIsEmpty(aContact) then //if not found
aContact := Contacts.Items.Add(2); //add a new contact to outlook
aContact.LastName := ContactSurname.AsString;
//.....
Si el contacto se elimina de los elementos eliminados, todavía tengo el mismo problema, pero me consigue la mitad del camino - I Veré si puedo averiguar cómo determinar si el contacto está en elementos eliminados; si lo están, los moveré de vuelta a la carpeta de contacto predeterminada. – Alister
Si el contacto se elimina realmente de la carpeta de elementos eliminados, no se me ocurre ninguna forma de acceder a él desde la API de Outlook. Tal vez está siendo almacenado en caché de alguna manera. – Josh
Actualicé mi respuesta con un consejo para determinar si un elemento está en la carpeta Elementos eliminados. – Josh