Outlook アドインで、ユーザーが MAPI ストアにドラッグ アンド ドロップしたすべてのアイテムに関する情報を取得しようとしています (Redemption ライブラリを使用しています)。
これに対する私の最初の試みは、MessageCreated イベントにフックすることでした...
myRDOStore.OnMessageCreated += new IRDOStoreEvents_OnMessageCreatedEventHandler(myRDOStore_OnMessageCreated);
注意が必要なのは、1 つのコレクションとして同時にドラッグ アンド ドロップされるすべてのアイテムをキャプチャする必要があることです。これは、入ってくる新しいメッセージ (おそらく EntryId) のいくつかの側面を永続化することを意味すると思います。
さて、問題は明らかに、一連の任意のイベントの結果を結び付ける方法がないことです。そのため、ActiveExplorer().Selection
コレクションを調べて、そこからストアドにドラッグ アンド ドロップされたアイテムを特定する方法を考えようとしました。 .
コレクションの内容が少しでたらめに見えたので、あまり運がありませんでした (たとえば、1 つのアイテムをドラッグするSelection
と、イベント ハンドラーでそれを調べると、または一連のイベントがそこで発生したときに、 2 つのアイテムが表示されます)。たとえば、Selection で 2 つのアイテム、次のイベントで 1 つ、次のイベントで 1 つなど)。
それに加えて、私の使用例の 1 つは、Outlook の外部からアイテムをドラッグする機能ですが、これはSelection
コレクションには含まれないと思います。
この問題に対する標準的なアプローチはありますか? かなり一般的なことのように思えます-たくさんのファイルをフォルダーにドラッグし、それらに関する情報をコレクションとして取得できるようにしますが、私にはそれがわかりません. どんなガイダンスも大歓迎です。