determining which item(s) are being deleted

J

Jon Rizzo

I would like to execute some code when certain items are deleted. Is there
any way to detect which items are being deleted in the Items.ItemRemove
event, and then query their properties before they are deleted? I tried
checking Explorer.Selection, but:

#1, I'm not confident that the current selection will ALWAYS contain the
items being deleted
#2, if I check the selected item's message class and then cast the object
onto the appropriate type (for example, ContactItem for "IPM.Contact") I get
an InvalidCast.

Is there a way to (reliably) do what I'm trying to do?

Jon
 
K

Ken Slovak - [MVP - Outlook]

No reliable way except for Outlook 2007. Items.ItemRemove() doesn't provide
the item being deleted and it fires after the deletion. You can right-click
on an item and delete it without it being selected, so Explorer.Selection is
not viable.

You can check for ItemAdd on the Items collection of the Deleted Items
folder, but if the user hard deletes an item (Shift+Delete) the item won't
go there. About all you could do is index the items in a folder and check
after ItemRemove() to see which item or items are missing.
 
J

Jon Rizzo

Thanks for the information, Ken. That's what I was afraid of. can you
clarify what you meant by "No reliable way except for Outlook 2007"? Is
there a reliable way to do this in Outlook 2007?
 
K

Ken Slovak - [MVP - Outlook]

BeforeItemMove in Outlook 2007 is what we've asked for for a long time. The
target folder is null (Nothing) if the item is being deleted, you get the
item reference and there's a cancel argument.
 
J

Jon Rizzo

I missed that one - thanks Ken!

Jon


Ken Slovak - said:
BeforeItemMove in Outlook 2007 is what we've asked for for a long time. The
target folder is null (Nothing) if the item is being deleted, you get the
item reference and there's a cancel argument.
 

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