Я пытаюсь подключить метод к событию Application.ItemLoad:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
this.Application.ItemLoad += new Microsoft.Office.Interop.Outlook.ApplicationEvents_11_ItemLoadEventHandler(Application_ItemLoad);
}
Что будет проверять, является ли текущий элемент ContactItem. Если это ContactItem, он будет проверять, содержит ли свойство ContactItem.User4 значение xxx
. Если ContactItem.User4 содержит значение xxx
, он перехватит другой метод с событием ContactItem.Write:
void Application_ItemLoad(object Item)
{
if (Item is Outlook.ContactItem)
{
Outlook.ContactItem contact = (Outlook.ContactItem)Item;
System.Windows.Forms.MessageBox.Show("A new contact is loaded into memory");
try
{
string user4 = contact.User4;
bool isSynchronized = user4 != null && user4.Contains("xxx");
if (isSynchronized)
{
contact.Write += propertyChangeHandler;
}
}
catch (Exception e)
{
System.Windows.Forms.MessageBox.Show("An error occurred: "+e);
}
}
}
Теперь проблема в том, что всякий раз, когда я пытаюсь получить доступ к свойству ContactItem.User4, я получаю исключение:
System.Runtime.InteropServices.COMException: свойства элемента и
методы нельзя использовать внутри этой процедуры события.
Что мне делать, чтобы я не получил вышеуказанную ошибку?
Спасибо, что прочитали мой длинный вопрос и с нетерпением ждем ваших предложений.