2017-02-02 11 views
0

Это странно.Сохраненный Outlook MailItem еще не имел EntryId

У меня есть сохраненный прогноз MailItem (.msg файл) открыт с внешней стороны Outlook, что по какой-то причине еще не имеет своего EntryID набор:

OutlookSpy doesn't even know it

Некоторые контекст:

  • Этот MailItem - это сохраненный файл .msg, открытый из проводника Windows, а не из Outlook.
  • В моем коде я изначально начинаю с вложения, а затем получаю MailItem в качестве родителя.

Если я проверить MailItem во время отладки, то EntryID либо нуль или пустая строка ...

Empty EntryID during debugging

... НО если (например) я расширяю m_ObjectToDataMap, пока я не получаю до _rcw и развернуть , что object's Dynamic View - то есть, когда EntryID устанавливается.

Это как если MailItem еще не загружен полностью, а некоторые проверки значений в отладчике каким-то образом завершают инициализацию MailItem.

Я попытался:

  • Ожидание несколько секунд с System.Threading.Thread.Sleep().
  • parent.Save() хотя я знаю, что это не новый состав MailItem.
  • Обновление активного инспектора.
  • пытается получить MailItem с помощью других методов вместо того, чтобы отключить его.

Ничего из этого не исправить проблему. Почему это происходит? Как мне исправить или обойти эту проблему? Любая помощь приветствуется.

ответ

0

Автономные файлы MSG не имеют идентификаторов входа. Этого можно ожидать.

+0

Будет ли отсутствие EntryId на MailItem точным тестом на то, является ли он автономным или нет? Мне нужно будет учитывать это в моем коде, так что возможность определить, был ли MailItem открыта извне Outlook, будет весьма ценным. –

+0

Нет, это также может быть связано с тем, что сообщение еще не сохранено. –

+0

Спасибо за ответ, я здесь, чтобы учиться. Каким будет рекомендуемый способ определить, был ли открыт MailItem извне Outlook? –