Определение типа элемента Outlook
Всем привет,
Просматривая входящие сообщения Outlook, я хочу проверить, является ли текущий элемент outlook mailitem или нет. Если это так, то работайте над этим; в противном случае пропустите и проверьте новую запись.
Вот как выглядит мой код
foreach (Outlook.MailItem mailitem in programobj.folder.Items) { try { if (!(mailitem is Outlook.MailItem)) { // skip... continue; } else { //work here } catch(exception e) { //some message or log }
Он работает очень хорошо, пока не найдет любую запись, отличную от mailitem, например элемент календаря, элемент заметки и т. д. Для таких предметов он дает мне исключение и цикл висит там сам
Это ошибка, которую я получаю:
Невозможно привести COM-объект типа ' System.__ComObject "к интерфейсу типа" Майкрософт.Офис.Взаимодействие.Прогноз.Сообщения'. Эта операция не удалась, так как вызов QueryInterface COM-компонента для интерфейса с IID '{00063034-0000-0000-C000-000000000046}' не удался из-за следующей ошибки: такой интерфейс не поддерживается (исключение из HRESULT: 0x80004002 (E_NOINTERFACE)).
Пожалуйста, помогите мне с этим. Я не могу сильно изменять код. Пожалуйста, дайте мне решение, где я могу проверить, является ли данный элемент mailitem или нет с простым if (условием) else...
Заранее спасибо!!!