[
▲前のスレッド
]
[33178]
プラグイン開発における質問について2
▽
2006/10/7 (土) 16:42:55
▽
CH
softbank219019036066.bbtec.net / Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
乗松さん
Plugin開発で行き詰ったところが1点あります。
SDK内のドキュメントを一通り読みましたが
解決できなかったので質問させてください。
お気に入り のようなPluginを作成中です。
Plugin内で、メールをMailIDで管理しています。
CBeckyAPI::BKC_OnDragDrop() にてメールやフォルダが移動されようと
していることがわかりますが、
メールを移動した際、移動先のメールに新規IDが割り振られますので、
Plugin側管理のIDと不整合が発生してしまいます。
(フォルダごと移動の場合は既存IDのままでした)
また、あまりないとは思いますが、他のプラグインによるキャンセルも
認識できない状態です。
メール移動後に新規IDを取得するにはどうすればよいのでしょうか?
Folder.idxを解析する方法は思いつきましたが、
Becky側の処理と同期が取れないのと、このファイルを開いたりするのは
あまりよくないのでやめました。
ID変更時に
BKA_OnMailIDChanged(LPCSTR lpOldID, LPCSTR lpNewID)
のようなコールバックがあれば理想的なのですが…。
よろしくお願いします。
[33200]
Re:プラグイン開発における質問について2
▽
2006/10/10 (火) 00:15:12
▽
乗松知博
pd1px4.st.vc.shawcable.net / Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; Media Center PC 2.8)
こんにちは
確かに、現行のAPIで移動先のメールのIDを取得する
正式な方法は無いですね。
Becky!の処理的には、ターゲットのフォルダにコピー、
移動元を削除、で移動と言うことになっていますので、
厳密には、IDが変わる、というロジックは存在しない
ことになります。
フォルダにメールを追加する際に、そのフォルダ内で一番
大きなID+1が次に追加されるメールのIDになりますので、
OnDragDropのタイミングで、前もって新しいIDを知ることは
不可能ではないと思います。
後ほど、改めてそのIDのメールの存在をチェックすることで
ドロップがキャンセルされたかどうかも確認できるんじゃ
ないかと・・・
すみません。自分で試していないので上手くいくかどうかは
定かではないのですが・・・
▼ CHさん
> メール移動後に新規IDを取得するにはどうすればよいのでしょうか?
[33204]
Re2:プラグイン開発における質問について2
▽
2006/10/10 (火) 02:33:42
▽
CH
softbank219019036066.bbtec.net / Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
お忙しい中ご回答ありがとうございます。
▼ 乗松知博さん
> Becky!の処理的には、ターゲットのフォルダにコピー、
> 移動元を削除、で移動と言うことになっていますので、
> 厳密には、IDが変わる、というロジックは存在しない
> ことになります。
新規の別メールになってしまっているのですね。
了解しました。
> フォルダにメールを追加する際に、そのフォルダ内で一番
> 大きなID+1が次に追加されるメールのIDになりますので、
> OnDragDropのタイミングで、前もって新しいIDを知ることは
> 不可能ではないと思います。
Folder.iniの [Status] LastMsg の値でよいのでしょうか?
やはり非同期にIDチェックまで行うのは大変そうです。
もし、移動をキャンセルするプラグインがあれば動作は未保障、
という制限であれば、移動時に上記IDを決め打ちできそうです。
ちなみにメール移動時に新規IDをPluginへ通知するような
APIをSDKへ追加される予定はございますか?
当方個人でのんびり開発しており、追加の予定があれば
それまで待とうかなと思いましたので。
[33215]
Re3:プラグイン開発における質問について2
▽
2006/10/11 (水) 01:14:45
▽
乗松知博
pd1px4.st.vc.shawcable.net / Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; Media Center PC 2.8)
こんにちは
▼ CHさん
> Folder.iniの [Status] LastMsg の値でよいのでしょうか?
残念ながら、これではありません。
恐らくスマートに取得する方法はないと思います。
・Folder.idxの最後の行から取得する
・GetNextMailでフォルダ内を全スキャンして、一番大きい値を保存しておく
あたりでしょうか。
> ちなみにメール移動時に新規IDをPluginへ通知するような
> APIをSDKへ追加される予定はございますか?
> 当方個人でのんびり開発しており、追加の予定があれば
> それまで待とうかなと思いましたので。
今のところなんともいえませんが、検討課題とさせていただきます。
[33239]
Re4:プラグイン開発における質問について2
▽
2006/10/14 (土) 18:57:53
▽
CH
softbank219019036066.bbtec.net / Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
ご回答ありがとうございます。
▼ 乗松知博さん
> こんにちは
>
> ▼ CHさん
> > Folder.iniの [Status] LastMsg の値でよいのでしょうか?
>
> 残念ながら、これではありません。
> 恐らくスマートに取得する方法はないと思います。
>
> ・Folder.idxの最後の行から取得する
> ・GetNextMailでフォルダ内を全スキャンして、一番大きい値を保存しておく
メールがないフォルダへの移動の場合、
上記の方法ではできませんでした。
ところで、B2.NUMというファイルに次回のID番号が
10進数で保存されていますが、
この値は使用してよいのでしょうか?
何度もすいません、よろしくお願いします。
[33247]
Re5:プラグイン開発における質問について2
▽
2006/10/16 (月) 23:09:17
▽
乗松知博
pd1px4.st.vc.shawcable.net / Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; Media Center PC 2.8)
こんにちは
▼ CHさん
> ところで、B2.NUMというファイルに次回のID番号が
> 10進数で保存されていますが、
> この値は使用してよいのでしょうか?
はい、多分使えるはずです。
ただし、メールの追加先がIMAPフォルダの場合は、
例外的にこの値は使いません。前回申し上げたような
形で、フォルダにメールがない時は0が割り振られます。
よろしくお願いいたします。
[33261]
Re6:プラグイン開発における質問について2
▽
2006/10/17 (火) 22:43:34
▽
CH
softbank219019036066.bbtec.net / Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
▼ 乗松知博さん
> はい、多分使えるはずです。
> ただし、メールの追加先がIMAPフォルダの場合は、
> 例外的にこの値は使いません。前回申し上げたような
> 形で、フォルダにメールがない時は0が割り振られます。
これで何とか実現できそうです。
ありがとうございました。
[33270]
Re7:プラグイン開発における質問について2
▽
2006/10/18 (水) 22:02:59
▽
しののん
59-171-33-50.rev.home.ne.jp / Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
BkNewsプラグイン等の作者です。
老婆心ながら、「送信日付で整理」などを行うと、メール ID
が1から採番し直されてしまいます。というわけで、メール移
動等を考慮するんでしたら、メール IDだけでなく Message-Id
なども使ってメールを管理し、もしメール ID で見つからな
かったら1回は Message-Id を元にメールを探す、という処理
が必要になると思います。
私も今、高速メール全文検索プラグインを自分用に作って
使っていますが、メールIDでのみ管理しているので一般公開
できるものにはなっていません。
というわけで、私も CH さんが最初におっしゃっていた
> ID変更時に
> BKA_OnMailIDChanged(LPCSTR lpOldID, LPCSTR lpNewID)
> のようなコールバックがあれば理想的なのですが…。
という案に、基本的に賛成です。
[
▼次のスレッド
]
INCM/CMT
Cyclamen v3.84