IMailSyncHandlerを使ったメールの受信。掲示板でと言ったきり、ずーっとほっぽっていたのですが。調べながらやってみたところ、IMailSyncHandlerを使ったメールの受信に成功したっぽいです。詳細は後述のサンプルソースを見てもらうとして。そもそも、IMailSyncHandlerってのはMAPIのメールの送受信部分(とか)を請け負うインターフェースのようです。POP3とかIMAPとかのプロトコルの実装は(多分)このインターフェースを実装したdllで実現してます。「HKLM\SOFTWARE\Microsoft\Inbox\Svc\IMAP4\DLL」とか「HKLM\SOFTWARE\Microsoft\Inbox\Svc\POP3\DLL」に書かれている「mailtrns.dll」でもこのIMailSyncHandlerの実装を持っています。そのDLLには、IMailSyncHandlerを生成する関数「OneStopFactory」が必ず含まれていますので、その関数をLoadLibrary&GetProcAddressして取得します。取得したIMailSyncHandlerではまず、Initializeメンバ関数を呼んであげます。その前に、IMailSyncCallBackとIMsgStoreが必要ですのでそれを用意します。IMailSyncCallBackはIMailSyncHandlerで行われた操作の状態を取得するコールバック用インターフェースで*1、これを実装したクラスを作成し、そのインスタンスを用意すればOKです。IMsgStoreは送受信したいアカウントのIMsgStoreをIMAPISession.GetMsgStoresTableあたりから取ってくればOKです。後はこのIMailSyncHandlerをごにょごにょすればOKのようです。いうことで試したときのサンプルです。IMsgStoreを取るところは、今まで作ってきたMAPI.cpp/hをそのまま使っています。実装を見たい方は、いぬそふとからソースをダウンロードしてくださいな。//IMailSyncCallBackの実装...空っぽだけど。//このタイミングで「ログイン...」相当が行われているっぽい。//このタイミングでメールが受信されている。//「ログオフ...」相当をやっているのかな。IMailSyncHandlerを使うと何が嬉しいの?画面制御を完全に自分でコントロール可能になると思われます。今のSandRでは、PDXメールを送受信するときは邪魔なバルーンが毎回出てきちゃいます。その他のアカウントのメールだとメールソフトが起動しちゃいます。それが、この方法を使うと、完全に裏で処理をすることが可能になりそうです。(いや、まだちゃんと試してないのですよ)また、これまたあんまり試してないですけど、IMailSyncCallBackで細かい状況の取得ができそうですので、邪魔にならないようにそれを表示させることもできるかもしれません。いうことで、SandRとSendNowはこの手法を使った方式に切り替えていこうかなーと思っています。送受信するときにアカウント名&パスワードが必要になっちゃうんですよね。PDXメールだけを使っている人には敷居が高くなっちゃうかもなので、今まで通りの方式で送受信する方法も残しておきたいとは思っています。ここまで書いて思ったんですけど。ここで知った技術をベースに、mailtrns.dllをラップしたdllを作って置き換えれば、メールが受信されるタイミングを正確に取れる気がします。メールの着信鳴り分けを実現したりできるかもしれません。技術共有はするので誰か作ってくれないかなー。W-ZERO3にウチのソフトが掲載されるってさ。ウィルコムファンの中の人からメールを頂いちゃいました。kickmailとSandRを、近々ウィルコムファンで紹介していただけるそうです。wktkしながら待つことにします。Try&ErrorでExecMultiを紹介していただきました。ExecMultiの解説をしていただいています。具体的なiniファイルの設定例をあげてくださっているので、使い方がわからない〜って人は見てみていただけるとよいかと。頂いたアイコンを取り込んだ版を公開しないとですねー。起動と同時に標準メールの「受信済みアイテム」画面を表示/kickmail昨日「近日公開」って言ったばっかりなのに、早速公開されています。...ってか、中の人からメールが届いた後すぐにネタを書かないからこーゆーことになるんですよ(T-T)で、この紹介を見て気づいたんですが、kickmailってCABでの公開をまだしてなかったんですねぇ。Seasarカンファレンスが終わって気持ちが落ち着いたら、CAB版の公開をしたいと思います。軽いスケジューラを開発中...?WM5用のスケジューラを開発中だそうです。起動が早いってのはものすごくうれしいところなので、めいっぱい期待しています。...が、1ヶ月最大500件の予定迄など制限有りと低機能かつ制限が付くと書かれているので、標準のPIMデータを使ってるわけではなさそうですね...。標準のデータと同期されないのは個人的にはちょっと辛いなぁ。なんにせよこれまたwktkしながら待ってみましょう。W-ZERO3をしまうとき3つのことを必ずやっているようです。そんなときこそ拙作ExecMultiですよ。その操作に慣れているそうなのでそのままでもいいのかもしれませんが、ぜひ導入を検討してみてください。全アプリ終了&通信終了まではワンキーでできるようになりますよ。今からカンファレンス会場に向かいます。Springが始まります。準備があるので、今から会場に向かいます。多くの方にきていただけることをwktkしながら待っています。うまく文章にできないので、箇条書きで雑感を。みるとたくさんのスタッフがいたようですねー。懇親会のときは、どこに行っても青い服がいました(^^;;スタッフさん方、ホントお疲れ様でした。私と一緒に受付周りをやってくださった皆様。ほとんど受付に貼り付けになっちゃったので、何もできなかったのではないでしょうか。段取り不足で申し訳ない...。そんな私もずっと受付に...。そんな状態だったので、ブースやセッションにはほとんど顔を出せずじまい。聞きたかったセッションが、受付が落ち着いた時点で既に終わっていたという...(T-T)印刷されたスライドを見ながら聴いた気分になってみます。