Help!

How to catch Message Move Event.

 
  

Post new topic   General Reply to Topic (not reply to a specific post)    Forums Home -> Program Add-Ins RSS
Next:  Combine information from two pages, two changing ..  
Author Message
Ashutosh Jogdande
External


Since: Sep 01, 2009
Posts: 6



PostPosted: Tue Sep 01, 2009 2:10 pm    Post subject: How to catch Message Move Event.
Archived from groups: microsoft>public>outlook>program_addins (more info?)

Hi All,

Is there any way to Catch Message Move event through outlook addin, when
message/s are moved by using Email-rules or to Archive folders?

I am able to do this on manual message move by catching ItemRemove on
selected folder.
But while running a rule I am not getting Message Move/Remove event.

Code :
outlookExplorer.CurrentFolder.Items.ItemRemove += new
Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);


Thanks in advance,
Ashutosh
Back to top
Ken Slovak - [MVP - Outlo
External


Since: Oct 17, 2003
Posts: 3355



PostPosted: Wed Sep 02, 2009 9:16 am    Post subject: Re: How to catch Message Move Event. [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

That would partially depend on what version of Outlook. For Outlook 2003 and
earlier you only would have the Items.ItemAdd() and ItemRemove() events on
the destination and source folders to rely on. In Outlook 2007 you have the
Folder.BeforeItemMove() event you could also try.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"Ashutosh Jogdande" <ashutosh_jogdande.DeleteThis@persistent.co.in> wrote in message
news:eiuZfRyKKHA.4432@TK2MSFTNGP02.phx.gbl...
> Hi All,
>
> Is there any way to Catch Message Move event through outlook addin,
> when message/s are moved by using Email-rules or to Archive folders?
>
> I am able to do this on manual message move by catching ItemRemove on
> selected folder.
> But while running a rule I am not getting Message Move/Remove event.
>
> Code :
> outlookExplorer.CurrentFolder.Items.ItemRemove += new
> Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);
>
>
> Thanks in advance,
> Ashutosh
>
>
>
Back to top
Ashutosh Jogdande
External


Since: Sep 01, 2009
Posts: 6



PostPosted: Wed Sep 02, 2009 1:10 pm    Post subject: Re: How to catch Message Move Event. [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Hi Ken,

Thanks for quick reply.

By adding ItemRemove event handler on outlookExplorer.CurrentFolder I am
able to catch the event.

But How to add event handler for all folders when addin gets loaded, as we
want to catch events for the mails which are getting archived or Moved using
Email-Rules.

I have tried by adding event handler to all the folders on addin startup,
but it didn't work.

Is there any way to trap this event at Explorer level?

Here is the code :
IEnumerator enumrator = _outlookApplication.Session.Folders.GetEnumerator();
while (enumrator.MoveNext())
{
Outlook.Folder folder = (Outlook.Folder)enumrator.Current;
if (folder != null)
{
AddEventHandlers(folder);
}
}

where AddEventHandlers recursively adding event hadler to each folder.

Thanks,
Ashutosh



"Ken Slovak - [MVP - Outlook]" <kenslovak.TakeThisOut@mvps.org> wrote in message
news:%23pLmd%238KKHA.4136@TK2MSFTNGP04.phx.gbl...
> That would partially depend on what version of Outlook. For Outlook 2003
> and earlier you only would have the Items.ItemAdd() and ItemRemove()
> events on the destination and source folders to rely on. In Outlook 2007
> you have the Folder.BeforeItemMove() event you could also try.
>
> --
> Ken Slovak
> [MVP - Outlook]
> http://www.slovaktech.com
> Author: Professional Programming Outlook 2007.
> Reminder Manager, Extended Reminders, Attachment Options.
> http://www.slovaktech.com/products.htm
>
>
> "Ashutosh Jogdande" <ashutosh_jogdande.TakeThisOut@persistent.co.in> wrote in message
> news:eiuZfRyKKHA.4432@TK2MSFTNGP02.phx.gbl...
>> Hi All,
>>
>> Is there any way to Catch Message Move event through outlook addin,
>> when message/s are moved by using Email-rules or to Archive folders?
>>
>> I am able to do this on manual message move by catching ItemRemove on
>> selected folder.
>> But while running a rule I am not getting Message Move/Remove event.
>>
>> Code :
>> outlookExplorer.CurrentFolder.Items.ItemRemove += new
>> Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);
>>
>>
>> Thanks in advance,
>> Ashutosh
>>
>>
>>
>
Back to top
Ken Slovak - [MVP - Outlo
External


Since: Oct 17, 2003
Posts: 3355



PostPosted: Wed Sep 02, 2009 2:27 pm    Post subject: Re: How to catch Message Move Event. [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

As you can see in the Object Browser there isn't an Explorer level event you
can use.

When I need to handle multiple folders, Explorers, Items collections,
Inspectors, etc. I set up a class to handle what I need, including all
events I want to handle. Then I maintain a set of those classes in a
collection/list/whatever to keep them alive.

For ItemRemove() and/or ItemAdd() I would do a recursive search of all
folders loaded that I was interested in and grab the Items collection for
each one, setting the Items collection object in my class to that Items
collection and putting it in my list. Then the events would fire
automatically. On shutdown I'd just unwind the list collection and null out
everything.

The code you show is non-recursive, it would only return top level folders
of the NameSpace object, which would be at the Outlook Today level (top of
store). If you have only one PST or mailbox loaded you'd get exactly 1
handler installed and it would likely be useless. I'd recursively call each
Session.Folders.Item() object and dig down into those also to get all the
folders and their Items collections.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"Ashutosh Jogdande" <ashutosh_jogdande.DeleteThis@persistent.co.in> wrote in message
news:ujM97W%23KKHA.6016@TK2MSFTNGP05.phx.gbl...
> Hi Ken,
>
> Thanks for quick reply.
>
> By adding ItemRemove event handler on outlookExplorer.CurrentFolder I am
> able to catch the event.
>
> But How to add event handler for all folders when addin gets loaded, as we
> want to catch events for the mails which are getting archived or Moved
> using Email-Rules.
>
> I have tried by adding event handler to all the folders on addin startup,
> but it didn't work.
>
> Is there any way to trap this event at Explorer level?
>
> Here is the code :
> IEnumerator enumrator =
> _outlookApplication.Session.Folders.GetEnumerator();
> while (enumrator.MoveNext())
> {
> Outlook.Folder folder = (Outlook.Folder)enumrator.Current;
> if (folder != null)
> {
> AddEventHandlers(folder);
> }
> }
>
> where AddEventHandlers recursively adding event hadler to each folder.
>
> Thanks,
> Ashutosh
Back to top
Dmitry Streblechenko
External


Since: Nov 23, 2003
Posts: 1401



PostPosted: Wed Sep 02, 2009 10:32 pm    Post subject: Re: How to catch Message Move Event. [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

<plug>
You can do that using Redemption: it exposes RDOStore.OnMessageCreated /
OnMessageDeleted / etc events on the store level
See http://www.dimastr.com/redemption/rdo/rdostore.htm
<plug>

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
"Ashutosh Jogdande" <ashutosh_jogdande.DeleteThis@persistent.co.in> wrote in message
news:ujM97W%23KKHA.6016@TK2MSFTNGP05.phx.gbl...
> Hi Ken,
>
> Thanks for quick reply.
>
> By adding ItemRemove event handler on outlookExplorer.CurrentFolder I am
> able to catch the event.
>
> But How to add event handler for all folders when addin gets loaded, as we
> want to catch events for the mails which are getting archived or Moved
> using Email-Rules.
>
> I have tried by adding event handler to all the folders on addin startup,
> but it didn't work.
>
> Is there any way to trap this event at Explorer level?
>
> Here is the code :
> IEnumerator enumrator =
> _outlookApplication.Session.Folders.GetEnumerator();
> while (enumrator.MoveNext())
> {
> Outlook.Folder folder = (Outlook.Folder)enumrator.Current;
> if (folder != null)
> {
> AddEventHandlers(folder);
> }
> }
>
> where AddEventHandlers recursively adding event hadler to each folder.
>
> Thanks,
> Ashutosh
>
>
>
> "Ken Slovak - [MVP - Outlook]" <kenslovak.DeleteThis@mvps.org> wrote in message
> news:%23pLmd%238KKHA.4136@TK2MSFTNGP04.phx.gbl...
>> That would partially depend on what version of Outlook. For Outlook 2003
>> and earlier you only would have the Items.ItemAdd() and ItemRemove()
>> events on the destination and source folders to rely on. In Outlook 2007
>> you have the Folder.BeforeItemMove() event you could also try.
>>
>> --
>> Ken Slovak
>> [MVP - Outlook]
>> http://www.slovaktech.com
>> Author: Professional Programming Outlook 2007.
>> Reminder Manager, Extended Reminders, Attachment Options.
>> http://www.slovaktech.com/products.htm
>>
>>
>> "Ashutosh Jogdande" <ashutosh_jogdande.DeleteThis@persistent.co.in> wrote in message
>> news:eiuZfRyKKHA.4432@TK2MSFTNGP02.phx.gbl...
>>> Hi All,
>>>
>>> Is there any way to Catch Message Move event through outlook addin,
>>> when message/s are moved by using Email-rules or to Archive folders?
>>>
>>> I am able to do this on manual message move by catching ItemRemove on
>>> selected folder.
>>> But while running a rule I am not getting Message Move/Remove event.
>>>
>>> Code :
>>> outlookExplorer.CurrentFolder.Items.ItemRemove += new
>>> Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);
>>>
>>>
>>> Thanks in advance,
>>> Ashutosh
>>>
>>>
>>>
>>
>
>
Back to top
Ashutosh Jogdande
External


Since: Sep 01, 2009
Posts: 6



PostPosted: Fri Sep 04, 2009 4:10 am    Post subject: Re: How to catch Message Move Event. [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Hi Ken,

Thanks for detailed reply,

I did the same, only thing I am missing is maintaining a Custom Class,
instead of that I have used Global List of Outlook.MAPIFolder.

And Recursion code is inside AddEventHandlers() Method.

But it's not working Sad



Her is the code missing in my last post:

Global variable List<Outlook.MAPIFolder> folders;

void AddEventHandlers(Outlook.Folder folder)
{
folders.Add(folder);
logger.Debug("Adding ItemRemove eventhandler to " + folder.Name);
folder.Items.ItemRemove += new
Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);

IEnumerator enumrator = folder. Folders.GetEnumerator();
while (enumrator.MoveNext())
{
Outlook.Folder tempFolder = (Outlook.Folder)enumrator.Current;
if (tempFolder != null)
{
AddEventHandlers(tempFolder);
}
}
}



"Ken Slovak - [MVP - Outlook]" <kenslovak DeleteThis @mvps.org> wrote in message
news:u4TfYs$KKHA.4004@TK2MSFTNGP05.phx.gbl...
> As you can see in the Object Browser there isn't an Explorer level event
> you can use.
>
> When I need to handle multiple folders, Explorers, Items collections,
> Inspectors, etc. I set up a class to handle what I need, including all
> events I want to handle. Then I maintain a set of those classes in a
> collection/list/whatever to keep them alive.
>
> For ItemRemove() and/or ItemAdd() I would do a recursive search of all
> folders loaded that I was interested in and grab the Items collection for
> each one, setting the Items collection object in my class to that Items
> collection and putting it in my list. Then the events would fire
> automatically. On shutdown I'd just unwind the list collection and null
> out everything.
>
> The code you show is non-recursive, it would only return top level folders
> of the NameSpace object, which would be at the Outlook Today level (top of
> store). If you have only one PST or mailbox loaded you'd get exactly 1
> handler installed and it would likely be useless. I'd recursively call
> each Session.Folders.Item() object and dig down into those also to get all
> the folders and their Items collections.
>
> --
> Ken Slovak
> [MVP - Outlook]
> http://www.slovaktech.com
> Author: Professional Programming Outlook 2007.
> Reminder Manager, Extended Reminders, Attachment Options.
> http://www.slovaktech.com/products.htm
>
>
> "Ashutosh Jogdande" <ashutosh_jogdande DeleteThis @persistent.co.in> wrote in message
> news:ujM97W%23KKHA.6016@TK2MSFTNGP05.phx.gbl...
>> Hi Ken,
>>
>> Thanks for quick reply.
>>
>> By adding ItemRemove event handler on outlookExplorer.CurrentFolder I am
>> able to catch the event.
>>
>> But How to add event handler for all folders when addin gets loaded, as
>> we want to catch events for the mails which are getting archived or Moved
>> using Email-Rules.
>>
>> I have tried by adding event handler to all the folders on addin startup,
>> but it didn't work.
>>
>> Is there any way to trap this event at Explorer level?
>>
>> Here is the code :
>> IEnumerator enumrator =
>> _outlookApplication.Session.Folders.GetEnumerator();
>> while (enumrator.MoveNext())
>> {
>> Outlook.Folder folder = (Outlook.Folder)enumrator.Current;
>> if (folder != null)
>> {
>> AddEventHandlers(folder);
>> }
>> }
>>
>> where AddEventHandlers recursively adding event hadler to each folder.
>>
>> Thanks,
>> Ashutosh
>
Back to top
Ashutosh Jogdande
External


Since: Sep 01, 2009
Posts: 6



PostPosted: Fri Sep 04, 2009 5:10 am    Post subject: Re: How to catch Message Move Event. [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Thanks Dmitry,

Unfortunately we are not using redemption in this version Sad .
We would possibly use in our next version...


Thanks,
Ashutosh

"Dmitry Streblechenko" <dmitry RemoveThis @dimastr.com> wrote in message
news:%23gteAhFLKHA.1376@TK2MSFTNGP02.phx.gbl...
> <plug>
> You can do that using Redemption: it exposes RDOStore.OnMessageCreated /
> OnMessageDeleted / etc events on the store level
> See http://www.dimastr.com/redemption/rdo/rdostore.htm
> <plug>
>
> --
> Dmitry Streblechenko (MVP)
> http://www.dimastr.com/
> OutlookSpy - Outlook, CDO
> and MAPI Developer Tool
> -
> "Ashutosh Jogdande" <ashutosh_jogdande RemoveThis @persistent.co.in> wrote in message
> news:ujM97W%23KKHA.6016@TK2MSFTNGP05.phx.gbl...
>> Hi Ken,
>>
>> Thanks for quick reply.
>>
>> By adding ItemRemove event handler on outlookExplorer.CurrentFolder I am
>> able to catch the event.
>>
>> But How to add event handler for all folders when addin gets loaded, as
>> we want to catch events for the mails which are getting archived or Moved
>> using Email-Rules.
>>
>> I have tried by adding event handler to all the folders on addin startup,
>> but it didn't work.
>>
>> Is there any way to trap this event at Explorer level?
>>
>> Here is the code :
>> IEnumerator enumrator =
>> _outlookApplication.Session.Folders.GetEnumerator();
>> while (enumrator.MoveNext())
>> {
>> Outlook.Folder folder = (Outlook.Folder)enumrator.Current;
>> if (folder != null)
>> {
>> AddEventHandlers(folder);
>> }
>> }
>>
>> where AddEventHandlers recursively adding event hadler to each folder.
>>
>> Thanks,
>> Ashutosh
>>
>>
>>
>> "Ken Slovak - [MVP - Outlook]" <kenslovak RemoveThis @mvps.org> wrote in message
>> news:%23pLmd%238KKHA.4136@TK2MSFTNGP04.phx.gbl...
>>> That would partially depend on what version of Outlook. For Outlook 2003
>>> and earlier you only would have the Items.ItemAdd() and ItemRemove()
>>> events on the destination and source folders to rely on. In Outlook 2007
>>> you have the Folder.BeforeItemMove() event you could also try.
>>>
>>> --
>>> Ken Slovak
>>> [MVP - Outlook]
>>> http://www.slovaktech.com
>>> Author: Professional Programming Outlook 2007.
>>> Reminder Manager, Extended Reminders, Attachment Options.
>>> http://www.slovaktech.com/products.htm
>>>
>>>
>>> "Ashutosh Jogdande" <ashutosh_jogdande RemoveThis @persistent.co.in> wrote in
>>> message news:eiuZfRyKKHA.4432@TK2MSFTNGP02.phx.gbl...
>>>> Hi All,
>>>>
>>>> Is there any way to Catch Message Move event through outlook addin,
>>>> when message/s are moved by using Email-rules or to Archive folders?
>>>>
>>>> I am able to do this on manual message move by catching ItemRemove on
>>>> selected folder.
>>>> But while running a rule I am not getting Message Move/Remove event.
>>>>
>>>> Code :
>>>> outlookExplorer.CurrentFolder.Items.ItemRemove += new
>>>> Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);
>>>>
>>>>
>>>> Thanks in advance,
>>>> Ashutosh
>>>>
>>>>
>>>>
>>>
>>
>>
>
>
Back to top
Ashutosh Jogdande
External


Since: Sep 01, 2009
Posts: 6



PostPosted: Fri Sep 04, 2009 7:10 am    Post subject: Re: How to catch Message Move Event. [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Hi Ken,

It started working after adding event handler on cached Folder.Items, Now
events are getting fired on message Move. Smile

Only concern remaining is, how do I get Entry IDs of moved messages (old
entry id before message move)?

As I can't go for Folder.BeforeItemMove() which is available in Outlook
2007.

Thanks,
Ashutosh.



"Ashutosh Jogdande" <ashutosh_jogdande.DeleteThis@persistent.co.in> wrote in message
news:OGAD1PTLKHA.4316@TK2MSFTNGP04.phx.gbl...
> Hi Ken,
>
> Thanks for detailed reply,
>
> I did the same, only thing I am missing is maintaining a Custom Class,
> instead of that I have used Global List of Outlook.MAPIFolder.
>
> And Recursion code is inside AddEventHandlers() Method.
>
> But it's not working Sad
>
>
>
> Her is the code missing in my last post:
>
> Global variable List<Outlook.MAPIFolder> folders;
>
> void AddEventHandlers(Outlook.Folder folder)
> {
> folders.Add(folder);
> logger.Debug("Adding ItemRemove eventhandler to " + folder.Name);
> folder.Items.ItemRemove += new
> Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);
>
> IEnumerator enumrator = folder. Folders.GetEnumerator();
> while (enumrator.MoveNext())
> {
> Outlook.Folder tempFolder = (Outlook.Folder)enumrator.Current;
> if (tempFolder != null)
> {
> AddEventHandlers(tempFolder);
> }
> }
> }
>
>
>
> "Ken Slovak - [MVP - Outlook]" <kenslovak.DeleteThis@mvps.org> wrote in message
> news:u4TfYs$KKHA.4004@TK2MSFTNGP05.phx.gbl...
>> As you can see in the Object Browser there isn't an Explorer level event
>> you can use.
>>
>> When I need to handle multiple folders, Explorers, Items collections,
>> Inspectors, etc. I set up a class to handle what I need, including all
>> events I want to handle. Then I maintain a set of those classes in a
>> collection/list/whatever to keep them alive.
>>
>> For ItemRemove() and/or ItemAdd() I would do a recursive search of all
>> folders loaded that I was interested in and grab the Items collection for
>> each one, setting the Items collection object in my class to that Items
>> collection and putting it in my list. Then the events would fire
>> automatically. On shutdown I'd just unwind the list collection and null
>> out everything.
>>
>> The code you show is non-recursive, it would only return top level
>> folders of the NameSpace object, which would be at the Outlook Today
>> level (top of store). If you have only one PST or mailbox loaded you'd
>> get exactly 1 handler installed and it would likely be useless. I'd
>> recursively call each Session.Folders.Item() object and dig down into
>> those also to get all the folders and their Items collections.
>>
>> --
>> Ken Slovak
>> [MVP - Outlook]
>> http://www.slovaktech.com
>> Author: Professional Programming Outlook 2007.
>> Reminder Manager, Extended Reminders, Attachment Options.
>> http://www.slovaktech.com/products.htm
>>
>>
>> "Ashutosh Jogdande" <ashutosh_jogdande.DeleteThis@persistent.co.in> wrote in message
>> news:ujM97W%23KKHA.6016@TK2MSFTNGP05.phx.gbl...
>>> Hi Ken,
>>>
>>> Thanks for quick reply.
>>>
>>> By adding ItemRemove event handler on outlookExplorer.CurrentFolder I am
>>> able to catch the event.
>>>
>>> But How to add event handler for all folders when addin gets loaded, as
>>> we want to catch events for the mails which are getting archived or
>>> Moved using Email-Rules.
>>>
>>> I have tried by adding event handler to all the folders on addin
>>> startup, but it didn't work.
>>>
>>> Is there any way to trap this event at Explorer level?
>>>
>>> Here is the code :
>>> IEnumerator enumrator =
>>> _outlookApplication.Session.Folders.GetEnumerator();
>>> while (enumrator.MoveNext())
>>> {
>>> Outlook.Folder folder = (Outlook.Folder)enumrator.Current;
>>> if (folder != null)
>>> {
>>> AddEventHandlers(folder);
>>> }
>>> }
>>>
>>> where AddEventHandlers recursively adding event hadler to each folder.
>>>
>>> Thanks,
>>> Ashutosh
>>
>
>
Back to top
Ken Slovak - [MVP - Outlo
External


Since: Oct 17, 2003
Posts: 3355



PostPosted: Fri Sep 04, 2009 9:18 am    Post subject: Re: How to catch Message Move Event. [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

There is no way to get the EntryID of the items since ItemRemove() fires
after the item was removed and doesn't give you a handle to the removed
item. You'd have to maintain a list of items in each monitored folder with
their EntryID's and compare with the current Items collection to see what
was missing.

In addition, when an item is moved within a store the EntryID may change and
the old one would no longer be valid. That happens for example in a Exchange
mailbox store where it doesn't happen with a PST file store. Whether the
EntryID changes is entirely store provider dependent.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"Ashutosh Jogdande" <ashutosh_jogdande.TakeThisOut@persistent.co.in> wrote in message
news:eOOVAqULKHA.1380@TK2MSFTNGP02.phx.gbl...
> Hi Ken,
>
> It started working after adding event handler on cached Folder.Items, Now
> events are getting fired on message Move. Smile
>
> Only concern remaining is, how do I get Entry IDs of moved messages (old
> entry id before message move)?
>
> As I can't go for Folder.BeforeItemMove() which is available in Outlook
> 2007.
>
> Thanks,
> Ashutosh.
Back to top
Ashutosh Jogdande
External


Since: Sep 01, 2009
Posts: 6



PostPosted: Fri Sep 18, 2009 1:10 pm    Post subject: Re: How to catch Message Move Event. [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Hi Dmitry,

Can we trap Message Move event from one store to other store, using
redemption? (e.g. when messages are being archived).

Thanks,
Ashutosh.

"Ashutosh Jogdande" <ashutosh_jogdande.DeleteThis@persistent.co.in> wrote in message
news:e7%23Z1STLKHA.4004@TK2MSFTNGP05.phx.gbl...
> Thanks Dmitry,
>
> Unfortunately we are not using redemption in this version Sad .
> We would possibly use in our next version...
>
>
> Thanks,
> Ashutosh
>
> "Dmitry Streblechenko" <dmitry.DeleteThis@dimastr.com> wrote in message
> news:%23gteAhFLKHA.1376@TK2MSFTNGP02.phx.gbl...
>> <plug>
>> You can do that using Redemption: it exposes RDOStore.OnMessageCreated /
>> OnMessageDeleted / etc events on the store level
>> See http://www.dimastr.com/redemption/rdo/rdostore.htm
>> <plug>
>>
>> --
>> Dmitry Streblechenko (MVP)
>> http://www.dimastr.com/
>> OutlookSpy - Outlook, CDO
>> and MAPI Developer Tool
>> -
>> "Ashutosh Jogdande" <ashutosh_jogdande.DeleteThis@persistent.co.in> wrote in message
>> news:ujM97W%23KKHA.6016@TK2MSFTNGP05.phx.gbl...
>>> Hi Ken,
>>>
>>> Thanks for quick reply.
>>>
>>> By adding ItemRemove event handler on outlookExplorer.CurrentFolder I am
>>> able to catch the event.
>>>
>>> But How to add event handler for all folders when addin gets loaded, as
>>> we want to catch events for the mails which are getting archived or
>>> Moved using Email-Rules.
>>>
>>> I have tried by adding event handler to all the folders on addin
>>> startup, but it didn't work.
>>>
>>> Is there any way to trap this event at Explorer level?
>>>
>>> Here is the code :
>>> IEnumerator enumrator =
>>> _outlookApplication.Session.Folders.GetEnumerator();
>>> while (enumrator.MoveNext())
>>> {
>>> Outlook.Folder folder = (Outlook.Folder)enumrator.Current;
>>> if (folder != null)
>>> {
>>> AddEventHandlers(folder);
>>> }
>>> }
>>>
>>> where AddEventHandlers recursively adding event hadler to each folder.
>>>
>>> Thanks,
>>> Ashutosh
>>>
>>>
>>>
>>> "Ken Slovak - [MVP - Outlook]" <kenslovak.DeleteThis@mvps.org> wrote in message
>>> news:%23pLmd%238KKHA.4136@TK2MSFTNGP04.phx.gbl...
>>>> That would partially depend on what version of Outlook. For Outlook
>>>> 2003 and earlier you only would have the Items.ItemAdd() and
>>>> ItemRemove() events on the destination and source folders to rely on.
>>>> In Outlook 2007 you have the Folder.BeforeItemMove() event you could
>>>> also try.
>>>>
>>>> --
>>>> Ken Slovak
>>>> [MVP - Outlook]
>>>> http://www.slovaktech.com
>>>> Author: Professional Programming Outlook 2007.
>>>> Reminder Manager, Extended Reminders, Attachment Options.
>>>> http://www.slovaktech.com/products.htm
>>>>
>>>>
>>>> "Ashutosh Jogdande" <ashutosh_jogdande.DeleteThis@persistent.co.in> wrote in
>>>> message news:eiuZfRyKKHA.4432@TK2MSFTNGP02.phx.gbl...
>>>>> Hi All,
>>>>>
>>>>> Is there any way to Catch Message Move event through outlook addin,
>>>>> when message/s are moved by using Email-rules or to Archive folders?
>>>>>
>>>>> I am able to do this on manual message move by catching ItemRemove on
>>>>> selected folder.
>>>>> But while running a rule I am not getting Message Move/Remove event.
>>>>>
>>>>> Code :
>>>>> outlookExplorer.CurrentFolder.Items.ItemRemove += new
>>>>> Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);
>>>>>
>>>>>
>>>>> Thanks in advance,
>>>>> Ashutosh
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>>
>
>
Back to top
Dmitry Streblechenko
External


Since: Nov 23, 2003
Posts: 1401



PostPosted: Sat Sep 26, 2009 11:50 am    Post subject: Re: How to catch Message Move Event. [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

Messages can only be truly moved within the same store. If you move messages
across different stores, messages are created in the target store and
deleted in the source store.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
"Ashutosh Jogdande" <ashutosh_jogdande RemoveThis @persistent.co.in> wrote in message
news:ONfGHoHOKHA.3588@TK2MSFTNGP05.phx.gbl...
> Hi Dmitry,
>
> Can we trap Message Move event from one store to other store, using
> redemption? (e.g. when messages are being archived).
>
> Thanks,
> Ashutosh.
>
> "Ashutosh Jogdande" <ashutosh_jogdande RemoveThis @persistent.co.in> wrote in message
> news:e7%23Z1STLKHA.4004@TK2MSFTNGP05.phx.gbl...
>> Thanks Dmitry,
>>
>> Unfortunately we are not using redemption in this version Sad .
>> We would possibly use in our next version...
>>
>>
>> Thanks,
>> Ashutosh
>>
>> "Dmitry Streblechenko" <dmitry RemoveThis @dimastr.com> wrote in message
>> news:%23gteAhFLKHA.1376@TK2MSFTNGP02.phx.gbl...
>>> <plug>
>>> You can do that using Redemption: it exposes RDOStore.OnMessageCreated /
>>> OnMessageDeleted / etc events on the store level
>>> See http://www.dimastr.com/redemption/rdo/rdostore.htm
>>> <plug>
>>>
>>> --
>>> Dmitry Streblechenko (MVP)
>>> http://www.dimastr.com/
>>> OutlookSpy - Outlook, CDO
>>> and MAPI Developer Tool
>>> -
>>> "Ashutosh Jogdande" <ashutosh_jogdande RemoveThis @persistent.co.in> wrote in
>>> message news:ujM97W%23KKHA.6016@TK2MSFTNGP05.phx.gbl...
>>>> Hi Ken,
>>>>
>>>> Thanks for quick reply.
>>>>
>>>> By adding ItemRemove event handler on outlookExplorer.CurrentFolder I
>>>> am able to catch the event.
>>>>
>>>> But How to add event handler for all folders when addin gets loaded, as
>>>> we want to catch events for the mails which are getting archived or
>>>> Moved using Email-Rules.
>>>>
>>>> I have tried by adding event handler to all the folders on addin
>>>> startup, but it didn't work.
>>>>
>>>> Is there any way to trap this event at Explorer level?
>>>>
>>>> Here is the code :
>>>> IEnumerator enumrator =
>>>> _outlookApplication.Session.Folders.GetEnumerator();
>>>> while (enumrator.MoveNext())
>>>> {
>>>> Outlook.Folder folder = (Outlook.Folder)enumrator.Current;
>>>> if (folder != null)
>>>> {
>>>> AddEventHandlers(folder);
>>>> }
>>>> }
>>>>
>>>> where AddEventHandlers recursively adding event hadler to each folder.
>>>>
>>>> Thanks,
>>>> Ashutosh
>>>>
>>>>
>>>>
>>>> "Ken Slovak - [MVP - Outlook]" <kenslovak RemoveThis @mvps.org> wrote in message
>>>> news:%23pLmd%238KKHA.4136@TK2MSFTNGP04.phx.gbl...
>>>>> That would partially depend on what version of Outlook. For Outlook
>>>>> 2003 and earlier you only would have the Items.ItemAdd() and
>>>>> ItemRemove() events on the destination and source folders to rely on.
>>>>> In Outlook 2007 you have the Folder.BeforeItemMove() event you could
>>>>> also try.
>>>>>
>>>>> --
>>>>> Ken Slovak
>>>>> [MVP - Outlook]
>>>>> http://www.slovaktech.com
>>>>> Author: Professional Programming Outlook 2007.
>>>>> Reminder Manager, Extended Reminders, Attachment Options.
>>>>> http://www.slovaktech.com/products.htm
>>>>>
>>>>>
>>>>> "Ashutosh Jogdande" <ashutosh_jogdande RemoveThis @persistent.co.in> wrote in
>>>>> message news:eiuZfRyKKHA.4432@TK2MSFTNGP02.phx.gbl...
>>>>>> Hi All,
>>>>>>
>>>>>> Is there any way to Catch Message Move event through outlook
>>>>>> addin, when message/s are moved by using Email-rules or to Archive
>>>>>> folders?
>>>>>>
>>>>>> I am able to do this on manual message move by catching ItemRemove on
>>>>>> selected folder.
>>>>>> But while running a rule I am not getting Message Move/Remove event.
>>>>>>
>>>>>> Code :
>>>>>> outlookExplorer.CurrentFolder.Items.ItemRemove += new
>>>>>> Microsoft.Office.Interop.Outlook.ItemsEvents_ItemRemoveEventHandler(Items_ItemRemove);
>>>>>>
>>>>>>
>>>>>> Thanks in advance,
>>>>>> Ashutosh
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
Back to top
Display posts from previous:   
Post new topic   General Reply to Topic (not reply to a specific post)    Forums Home -> Program Add-Ins All times are: Eastern Time (US & Canada) (change)
Page 1 of 1

 
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum