Ho un'applicazione scritta in Delphi che aggiunge/aggiorna i contatti in Outlook. Il problema che sto avendo è che se il contatto è stato cancellato in Outlook, il codice trova ancora il contatto e lo aggiorna, e il contatto rimane comunque cancellato. C'è un modo per determinare se il contatto viene eliminato o ripristinato il contatto?Undelete un contatto in Outlook
Circa il codice sembra qualcosa di simile:
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;
//.....
Se il contatto viene rimosso da elementi eliminati, ho ancora lo stesso problema, ma mi viene a metà strada - I Vedrò se riesco a capire come determinare se il contatto è negli elementi eliminati, se lo sono, li sposterò nella cartella dei contatti predefinita. – Alister
Se il contatto viene veramente eliminato dalla cartella degli elementi eliminati, non riesco a pensare ad alcun modo possibile per ottenerlo dall'API di Outlook. Forse è stato nascosto in qualche modo. – Josh
Ho aggiornato la mia risposta con un consiglio per determinare se un elemento si trova nella cartella Posta eliminata. – Josh