Мы столкнулись с проблемой при написании надстройки VSTO Outlook.Получение темы составленной электронной почты работает нормально при выполнении ItemSend, но при попытке получить тему при составлении электронной почты (до ItemSend) полученная тема иногда оказывается нулевой.Это функция предварительного просмотра, которая запускается с помощью кнопки на ленте.
Установите точку останова, и похоже, что ActiveInspector (). CurrentItem уже не предоставляет правильное значение в качестве субъекта
Ribbon_TabNewMailMessage.cs:
private void PreviewButton_Click(object sender, RibbonControlEventArgs e)
{
// pointing to ThisAddIn.cs (see code block below)
if (Globals.ThisAddIn.Application.ActiveInspector() != null)
{
// Obviously sometimes not catching subject
Outlook.MailItem mailItem = Globals.ThisAddIn.Application.ActiveInspector().CurrentItem;
// BAD CASE: mailItem.Subject is sometimes NULL
var aSubj = mailItem.Subject;
ThisAddIn.cs:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
try
{
...
// Get the Application object
Outlook.Application application = this.Application;
// Subscribe to the ItemSend event, that it's triggered when an email is sent
application.ItemSend += new Outlook.ApplicationEvents_11_ItemSendEventHandler(ItemSend_BeforeSend);
// new itemsend event
void ItemSend_BeforeSend(object item, ref bool cancel)
{
Outlook.MailItem mailItem = (Outlook.MailItem)item;
// GOOD CASE: this one is working properly !!!
var bSubj = mailItem.Subject;
mailItem.Subject должен иметь значение из темы письма, но в ПЛОХОМ случае он возвращает NULL.