View Single Post
  #4  
Old February 5th 06, 06:24 PM posted to microsoft.public.outlook.program_vba
Josh Einstein
external usenet poster
 
Posts: 57
Default Mapi Folder Items ItemChange event is not firing

Due to the way .NET and COM interop works, you have to cache the Items
object in a field as well. Just having the MAPIFolder isn't enough because
each call to Items will return a different RCW (runtime callable wrapper)
which means your first one goes out of scope and is subsequently garbage
collected.

private Outlook.Items _items;

_items = _mapiFolder.Items;
_items.ItemChange += delegate { MessageBox.Show("item changed!"); };

--
Josh Einstein
Einstein Technologies
Microsoft Tablet PC MVP
Tablet Enhancements for Outlook 2.0 - Try it free for 14 days
www.tabletoutlook.com


"AtulSureka" wrote in message
...
Hi,

I have used the following code to Handle the EditItem Event of Task Items

using System;
using System.Data;
using System.Collections;
using Outlook = Microsoft.Office.Interop.Outlook;

public class MyClass
{
private static Outlook.NameSpace nSpace;
private static Outlook.MAPIFolder mapiFolder;

public static void Main(string[] args)
{
Outlook.Application app = new
Microsoft.Office.Interop.Outlook.Application();
nSpace = app.GetNamespace("MAPI");

mapiFolder =
nSpace.GetDefaultFolder(Outlook.OlDefaultFolders.o lFolderTasks);
mapiFolder.Items.ItemChange += new
Microsoft.Office.Interop.Outlook.ItemsEvents_ItemC hangeEventHandler(TaskItemChanged);

Console.ReadLine();
}

private static void TaskItemChanged(object Item)
{
Console.WriteLine("Item Has been chnaged");
}
}

However many times ItemChange event does not fire.
What can be the possible reasons?
Is there any work around for it?

- Atul Sureka



Ads