1

Microsoft.Office.Interop.Outlook相互運用アセンブリを使用する .NET アプリケーションがあります。

アプリケーションは新しい Outlook を開き、電子メールが送信された場合 (ユーザーが [送信] をクリックして)、MailItemログ エントリを記録したり、送信せずに閉じられた場合(下書きとして保存したり、破棄したりした場合) を認識したいと考えています。

ItemEvents_10_Event.Sendアイテムが送信されたときのキャプチャは、イベントにサブスクライブすることで簡単に実行できます。

ただし、アイテムが閉じられたときにキャプチャするには、ItemEvents_10_Event.Closeイベントしか見つかりませんでした。ただし、このイベントは、アイテムが閉じられたときではなく、アイテムが閉じられたときに発生します。さらに悪いことに、私がイベントを受け取ったでも、ユーザーはアクションをキャンセルする可能性があります。何が起こるか:

  1. 私のアプリケーションは、新しいMailItem.
  2. ユーザーが閉じるボタンをクリックします。
  3. ItemEvents_10_Event.Close解雇されます。
  4. コントロールが Outlook に戻り、Outlookの [変更を保存しますか (はい/いいえ/キャンセル)] ダイアログが表示されます
  5. ユーザーがキャンセルを押します。(通知が来ない)
  6. その後、ユーザーは、電子メールを送信したり、再度閉じたりするなど、好きなことを行うことができます。

次のいずれかの方法はありますか:

  • アイテムが閉じられたのではなく、閉じられたときに通知するイベントにサブスクライブしますか? (一番)
  • または、上記のシナリオでユーザーがいつ [キャンセル] を押したかを知っていますか? (ハックですが、それで十分です)

メールが閉じられて破棄されたか、下書きとして保存されたかを区別できれば、おまけになります。

4

1 に答える 1