2008-12-04 9 views
2

Мы создали дополнение VSTO для совещаний Outlook.Outlook VSTO AddIn для собраний

В рамках этого мы ловушкой на SendEvent сообщения о событии FormRegionShowing:

_apptEvents.Send += new Microsoft.Office.Interop.Outlook.ItemEvents_SendEventHandler(_apptEvents_Send); 

Метод _apptEvents_Send затем проверяет на пару свойств и выходов в зависимости от обстоятельств.

private void _apptEvents_Send(ref bool Cancel) 
{ 
if (!_Qualified) 
        { 
         MessageBox.Show("Meeting has not been qualified", "Not Qualified Meeting", MessageBoxButtons.OK, MessageBoxIcon.Information); 
         chkQualified.Focus(); 
         Cancel = true; 
        } 
} 

Проблема, с которой мы сталкиваемся, заключается в том, что сообщения некоторых пользователей отправляются дважды. Однажды, когда собрание отправляется, и второй раз, когда пользователь снова открывает Outlook.

Я искал утечки памяти, считая, что что-то не может быть правильно утилизировано, и добавил, что уничтожение всех объектов в конечном итоге вызывает попытку, и убедитесь, что ресурсы управляются, но все еще несовместимо с функциональностью организация. то есть я никогда не сталкивался с проблемой во время разработки и другими разработчиками во время тестирования. Все пользователи обновлены на фреймворк (3.5 SP1) и исправления для Outlook.

Есть ли у кого-нибудь идеи о том, что может быть причиной этого?

Любые идеи, которые могли бы быть, были бы весьма полезны.

ответ

0

Я не профессионал, но в прошлом у меня были проблемы с автоматизацией Outlook из-за настроек отправки почты людьми.

Например, моя почта отправляет только когда я набираю цикл отправки/получения. У большинства людей есть возможность отправить сразу же, и я помню некоторые головные боли, когда кто-то сначала попросил действительно простые сценарии автоматизации.

см., Если это то, что есть у всех разработчиков, и пользователь может настроить его по-другому.

0

Почему вы используете Microsoft.Office.Interop.Outlook.ApplicationEvents_10.Send Event Вместо добавления данного обработчика снова и снова.

О методе запуска вашего VSTO аддон, просто добавьте:

((MSOutlook.ApplicationEvents_10_Event)_OutlookApp).ItemSend += new Microsoft.Office.Interop.Outlook.ApplicationEvents_10_ItemSendEventHandler(Utils_ItemSend); 

    void Utils_ItemSend(object Item, ref bool Cancel) 
    { 
     //Do your operation here. 
    } 

С уважением Керем Kusmezer

Смежные вопросы