Microsoft.Office.Interop.Outlook
相互運用アセンブリを使用する .NET アプリケーションがあります。
アプリケーションは新しい Outlook を開き、電子メールが送信された場合 (ユーザーが [送信] をクリックして)、MailItem
ログ エントリを記録したり、送信せずに閉じられた場合(下書きとして保存したり、破棄したりした場合) を認識したいと考えています。
ItemEvents_10_Event.Send
アイテムが送信されたときのキャプチャは、イベントにサブスクライブすることで簡単に実行できます。
ただし、アイテムが閉じられたときにキャプチャするには、ItemEvents_10_Event.Close
イベントしか見つかりませんでした。ただし、このイベントは、アイテムが閉じられたときではなく、アイテムが閉じられたときに発生します。さらに悪いことに、私がイベントを受け取った後でも、ユーザーはアクションをキャンセルする可能性があります。何が起こるか:
- 私のアプリケーションは、新しい
MailItem
. - ユーザーが閉じるボタンをクリックします。
ItemEvents_10_Event.Close
解雇されます。- コントロールが Outlook に戻り、Outlookの [変更を保存しますか (はい/いいえ/キャンセル)] ダイアログが表示されます。
- ユーザーがキャンセルを押します。(通知が来ない)
- その後、ユーザーは、電子メールを送信したり、再度閉じたりするなど、好きなことを行うことができます。
次のいずれかの方法はありますか:
- アイテムが閉じられたのではなく、閉じられたときに通知するイベントにサブスクライブしますか? (一番)
- または、上記のシナリオでユーザーがいつ [キャンセル] を押したかを知っていますか? (ハックですが、それで十分です)
メールが閉じられて破棄されたか、下書きとして保存されたかを区別できれば、おまけになります。