次のシナリオを考えてみましょう:誰かが私とカレンダーを共有しました。私はこのカレンダーに完全にアクセスできます。カレンダーのアイテムを削除すると、Folder.BeforeItemMove
イベントが発生します。ここまでは順調ですね。MoveTo エントリ IDnull
か、動作するエントリ ID かを確認して、削除を追跡したいと考えてApplication.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderDeletedItems)
います。アイテムが共有フォルダーにある場合に戻ります。
- ドキュメントによると、プロパティolFolderDeletedItemsは GetSharedDefaultFolders() のパラメーターとして使用できません (許可されている他のフォルダーにアクセスしたことを確認するため)
- Stores コレクションを反復しようとしました。そこにカレンダーはありません
- MoveTo フォルダーの Store プロパティにアクセスしようとしました ->
null
- セッションからストアを取得しようとしました (PR_IPM_WASTEBASKET_ENTRYID を検査するため) -> 失敗
- フォルダ名を取得できますこれに関する問題は、名前が変更されたり、ローカライズされたりする可能性があり、仕方がない場合は、削除されたすべてのフォルダ名が浮かんでいる配列が必要ないことです
- プレーンな OOM または償還フォルダー インターフェイスを使用して、これらすべてをテストしました
何か案は?
(Outlook 2016 でテスト済み)