C#を使用してOutlook AddInを少し開発していますが、このAddInでItemSendプロセスを正しくキャンセルできません。 私はここに、以下のシナリオを考えています: この小さなアドイン考えてみましょう:私は既存の予定アイテムを変更しようとすると、予定のウィンドウで開いたときに、私はのように、それのいくつかの値を変更し、今C#Outlook AddIn予定イベント 'ItemSend'が正しくキャンセルされない
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
((Outlook.ApplicationEvents_Event)this.Application).ItemSend += new ApplicationEvents_ItemSendEventHandler(ThisAddIn_ItemSend);
}
void ThisAddIn_ItemSend(object Item, ref bool Cancel)
{
System.Windows.Forms.MessageBox.Show("You can't save it, it's in the past!");
Cancel = true;
return;
}
を場所など、予定ウィンドウの "送信"ボタンを押すと、テキストボックス内のメッセージが期待どおり表示されます。しかし、問題はOutlookがこの取り消しを無視し、既に変更を保存していることです。唯一のことは、予定ウィンドウが閉じられていないことです。しかし、明示的に保存せずにウィンドウを閉じると、Outlookは予定アイテムに加えられた変更を既に受け入れていることがわかります。
これは意図した動作ですか?キャンセルパラメータが「true」に変更されていても、Outlookは変更の保存を停止できますか?
ItemSendingイベントはありませんか? ItemSendは、実際のアイテムを送信した後のアクションのように見えます。 – CodingBarfield
残念ながら、これはMicrosoft.Office.Interop.Outlook.ApplicationEvents_Eventでアクセスできる唯一の[送信]関連のイベントです。これは、これまでのようにすべてのアイテムで機能します。 – xSNRG