Вот фрагмент для взаимодействия с запущенным приложением Outlook.
Try
OutlookObj = System.Runtime.InteropServices.Marshal.GetActiveObject("Outlook.Application")
Catch ex As Exception
Console.WriteLine("Something went wrong while trying to connect to Outlook. Make sure Outlook is running. Press any key to exit.")
Console.Read()
Exit Sub
End Try
OutlookInspectors = OutlookObj.Inspectors
AddHandler OutlookObj.NewMailEx, AddressOf OutlookObj_NewMail
Вот мой обработчик событий для новых сообщений.
Private Sub OutlookObj_NewMail(ByVal ID As String)
Dim Item As Microsoft.Office.Interop.Outlook.MailItem = OutlookObj.Application.Session.GetItemFromID(ID)
'Further processing...
End Sub
Проблема в том, что он зависает на GetItemFromID
.В конце концов я получу исключение ContextSwitchDeadlock
.Office 2016 (365 ProPlus, x64, версия 1808).Windows 10 1809. Interop - версия 15. Попробовал запустить мое приложение под AnyCPU
и x64
.