У меня есть проект VBA для Microsoft Office Outlook, который я хотел бы переписать как надстройку Outlook с помощью NetOffice.
Вот фрагмент кода VBA, который я хотел бы передать:
Dim objNS As Outlook.NameSpace
Set objNS = Application.GetNamespace("MAPI")
Set m_colCalendarItems = objNS.GetDefaultFolder(olFolderCalendar).Items
Application
представляет запущенное приложение Outlook.
Мой соответствующий код в NetOffice выглядит так:
Outlook.Application objApp = Outlook.Application.GetActiveInstance();
Outlook._NameSpace objNS = (Outlook._NameSpace)objApp.GetNamespace("MAPI");
m_colCalendarItems = (Outlook.Items)objNS.GetDefaultFolder(OlDefaultFolders.olFolderCalendar).Items;
Довольно много бросков, конечно, с этим можно справиться лучше. Но главная проблема в том, что я не получаю ссылку на запущенное приложение в первой строке (objApp
равно null). Хотя этот код находится в подпрограмме Addin_OnStartupComplete
.
Любые советы о том, как настроить это лучше?