Я пытаюсь создать надстройку для Outlook 2003 с помощью Visual Studio 2008 в Windows XP с пакетом обновления 3 (SP3) и Internet Explorer 7.
Моя надстройка использует собственную домашнюю страницу папки, которая отображает мою пользовательскую форму, которая оборачивает Outlook View Control.
Я получаю COM Exception с описанием «Exception from HRESULT: 0xXXXXXXXX» каждый раз, когда я пытаюсь установить свойство Folder OVC. Код ошибки - это случайное число, каждый раз другое. Это не первый доступ к свойствам элемента управления, до этого свойства View и ViewXML уже установлены. Элемент управления помечен как безопасный для сценариев.
Я использую значение свойства CurrentFolder.FolderPath активного проводника, которое кажется правильным:
Outlook.Explorer currentExplorer = app.ActiveExplorer();
if (currentExplorer != null)
{
ovcWrapper.Folder = currentExplorer.CurrentFolder.FolderPath;
}
Это вершина трассировки стека:
System.Runtime.InteropServices.COMException (0xXXXXXXXX): Exception from HRESULT: 0xXXXXXXXX
at Microsoft.Office.Interop.OutlookViewCtl.ViewCtlClass.set_Folder(String pVal)
at AxMicrosoft.Office.Interop.OutlookViewCtl.AxViewCtl.set_Folder(String value)..
Это происходит только в том случае, если папка находится в нестандартном PST-файле. Переход в папку внутри PST-файла по умолчанию не приведет к исключениям.
Я должен подчеркнуть, что все работало просто отлично, прежде чем я уехал в отпуск :). Кажется, что Windows XP установила некоторые обновления, которые изменили безопасность по умолчанию Internet Explorer или Outlook 2003, пока меня не было.
На другой (виртуальной машине) с Office 2007 и Internet Explorer 6 без каких-либо обновлений все работает просто отлично.