2014-09-24 2 views
0

Я использую VSTO для разработки надстройки для Outlook.Отключить отправку обновлений всем участникам VSTO

При использовании метода SendMeetingItem (AppointmentItem), как отключить всплывающее окно «Отправить обновление всем посетителям»? Он всегда отображается, когда я звоню существующей встречи.

Я нашел только ForceUpdateToAllAttendees, но он делает обновление для всех участников, что было бы неправильно, если пользователь не захочет отправлять обновления всем посетителям.

EDIT:

Это мой код

void Application_ItemSend(object item, ref bool Cancel) 
{ 
    var form = new SC01(item); 
    form.Show(); 
    Cancel = true; // prevent mail sending 
} 

... в форме SC01:

private void btn_OK_Click(object sender, EventArgs e) 
{ 
    var meetingItem = _item As MeetingItem; // _item is private field of SC01 
    meetingItem.GetAssociatedAppointment(false).Send(); // this Send() will make sending option (to update attendees only or to all attendees 
} 
+0

если shll пользователь сможет решить, если обновление будет отправлено все, то почему вам не нравится всплывающее окно? – Max

+0

Фактически, когда пользователь нажимает кнопку «Отправить», а затем выбирает вариант отправки, появится всплывающее окно подтверждения. Если пользователь нажмет «ОК» во всплывающем окне, функция «Отправить()» будет вызвана для фактического отправки элемента. В это время снова появляется всплывающее окно отправки, что я не хочу. –

+0

Как вызывается всплывающее подтверждение? И ваша кнопка отправки вызывает процедуру отправки уже или что-то еще? – Max

ответ

0

жаль, что я отсутствовал несколько дней. Я думаю, что у меня есть решение, althuogh я только «говорить» УВА - но в конце концов, это все-таки ...

уйти прочь линию:

Cancel = true; // prevent mail sending 

, а также строку:

meetingItem.GetAssociatedAppointment(false).Send(); 

Насколько я знаю, товар не будет отправлен в любом случае до тех пор, пока форма не будет скрыта снова.

Надеюсь, это сработает! Max

+0

Да, я знаю, если форма 'ShowDialog', это предотвратит отправку почты. Но моя форма использует 'Show' вместо этого ... –

+0

Возможно, было бы полезно узнать, чего вы пытаетесь сделать в конце. почему это должно быть «Показать», а не «showdialog» – Max

+0

в vba. Показывает также останавливает макрос до тех пор, пока форма не будет скрыта снова ... – Max

0

просто была другая идея, которая должна решить вашу проблему:

void Application_ItemSend(object item, ref bool Cancel) 
{ 
    var form = new SC01(item); 
    form.Show(); 
    '''next line is new and prevents the first popup 
     item.ForceUpdateToAllAttendees = TRUE 
    Cancel = true; // prevent mail sending 
} 

... в форме SC01:

private void btn_OK_Click(object sender, EventArgs e) 
{ 
    var meetingItem = _item As MeetingItem; // _item is private field of SC01 
    '''next line is new => popup Comes now 
     meetingItem.ForceUpdateToAllAttendees = FALSE 
    meetingItem.GetAssociatedAppointment(false).Send(); // this Send() will make sending option (to update attendees only or to all attendees 
} 
+0

Жаль, что я был слишком занят, чтобы проверить ваш ответ. Я попытался, но если 'ForceUpdateToAllAttendees' является' false' перед 'Send()', появляется всплывающее окно. Только если 'ForceUpdateToAllAttendees' является' true', всплывающее окно не будет отображаться. –

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