Получить StoreID для MailItem (в Outlook Selection)

Мне нужно перебрать элементы MailItem внутри a Selection и прочтите их EntryID и StoreID, чтобы иметь возможность повторно получить почтовые отправления позже (для фоновой обработки посредством Redemption). Есть ли способ получить StoreID для MailItem напрямую?

Я знаю, что его можно получить с помощью свойства StoreID его родительского Folder; однако это кажется довольно неэффективным, поскольку для каждого элемента необходимо создать экземпляр (и освободить) COM-объект родительской папки. Есть ли более эффективный способ добиться этого?

Изменить: я не могу использовать _ 9_, поскольку оно было представлено только в Outlook 2007, и мне нужно поддерживать Outlook 2003. Кроме того, Сью Мошер утверждает:

Объект Parent в Selection будет Explorer, поэтому вы можете использовать Selection.Parent.CurrentFolder.Store.

Однако, когда кто-то выполняет поиск по «Все элементы Outlook», кажется, что CurrentFolder всегда будет указывать на папку поиска в основном хранилище, которым обычно является почтовый ящик Exchange:

\\Mailbox - <username>\search folders\All Outlook Items

Поскольку при поиске могут быть найдены элементы в других магазинах, CurrentFolder.Store не обязательно будет соответствовать хранилищу выбранных элементов, что делает этот подход ненадежным.


person User3810621    schedule 14.05.2012    source источник


Ответы (1)


Не могли бы вы получить родительский элемент для каждого элемента один раз, используя _ 1_?

person SliverNinja - MSFT    schedule 15.05.2012
comment
Я нацелен на Outlook 2003; свойство Selection.Parent было введено только в Outlook 2007. И я не думаю, что все почтовые элементы в Selection всегда будут иметь общий StoreID. Например, поиск может охватывать несколько магазинов. - person User3810621; 15.05.2012
comment
Правильно - если Parent нацелен на несколько магазинов, вы должны использовать Item.Parent для каждого элемента нет более эффективного способа. - person SliverNinja - MSFT; 15.05.2012
comment
Хорошо, спасибо за вашу помощь. Я буду голосовать за тебя, когда у меня будет достаточно репутации. - person User3810621; 15.05.2012