Как подключиться к BeforeAttachmentRead даже в Outlook? - PullRequest
0 голосов
/ 04 августа 2020

Я хотел бы предпринять некоторые действия, прежде чем пользователи будут просматривать вложения в Outlook и хотят подключиться к событию BeforeAttachmentRead в подключаемом модуле VSTO. Я видел код, который перебирает входящие и добавляет событие к каждому MailItem:

foreach (object o in inbox.Items)
{
 mailItem = o as Outlook.MailItem;
 ...
 ((Outlook.ItemEvents_10_Event)mailItem).BeforeAttachmentRead += new Outlook.ItemEvents_10_BeforeAttachmentReadEventHandler(MailItem_BeforeAttachmentRead);
}

Но мне это кажется очень неэффективным (а как насчет подпапок во входящем?)

Есть ли более эффективный способ ответить на событие BeforeAttachmentRead?

1 Ответ

1 голос
/ 04 августа 2020

Но мне это кажется очень неэффективным (а что насчет вложенных папок в почтовом ящике?)

Согласен, это будет.

Я бы предложил вы подписываетесь на событие изменения выбора в Outlook Explorer . Теперь каждый раз, когда пользователь выбирает что-то, вы можете проверить, является ли это почтовым элементом (это могут быть другие вещи), а затем подписаться на событие BeforeAttachmentRead. Вы можете сначала проверить количество вложений MailItem. . Если почтовый элемент не имеет вложений, вам нечего делать. 1017 * Проверьте счетчик выбора - вы хотите что-то сделать, только если оно равно 1

Пользователь может выбрать много разных вещей. Перед тем, как вы сделаете свой выбор, проверьте, что он действительно имеет тип Outlook.MailItem
...