Я пытаюсь обеспечить совместимость старого VB6 COM-надстройки для Outlook 2013. Он работал нормально (более или менее) для каждой версии с 2002 года, но при тестировании 2013 года я получаю странную ошибку при попытке инициализации.
Как только я пытаюсь выполнить ЛЮБОЕ действие с объектом Outlook Application, я получаю сообщение об ошибке «09 - Subscript Out Of Range». Даже такая безобидная вещь, как приведение параметра olApp, который я привожу в класс, взрывается. Объект Application не является нулевым, у него много свойств и он, по-видимому, инициализирован.
Friend Sub InitHandler(olApp As Outlook.Application, strProgID As String)
On Error GoTo ErrorExit
'If Outlook is opened without main UI (i.e. 'mailto:' HTML link)
If Explorers.Count = 0 Then Exit Sub
' BLOWS UP SO TRIED COMMENTING IT OUT AND ACCESSING PARAMETER DIRECTLY
'Set objOutlook = olApp
' ALSO BLOWS UP
Set objNameSpace = olApp.GetNamespace("MAPI")
...
Произошли ли какие-либо серьезные архитектурные изменения в объектной модели? Любые идеи?