2014年5月7日 7:51 am #19503
Keymaster
星くず彼方に 様
いつも EmEditor Professional をお使いいただき、誠にありがとうございます。
先ほど、v14.4.3 beta 1 を公開しましたので、お試しいただけると幸いです。
http://jp.emeditor.com/forums/topic/emeditor-v14-4-3-beta-1-%E3%82%92%E5%85%AC%E9%96%8B%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F/
EE_VIEW_TO_DEV メッセージ (Editor_ViewToDev インライン関数) の後に、dev_pos の x と y の値が LONG_PTR_MIN または LONG_PTR_MAX かどうかをチェックしていただくことをおすすめします。例えば、カーソルが文書の一番上にある状態で、スクロール バーを下にドラッグして一番下を表示した状態で現在のカーソル位置 (0,0) をデバイス座標に変換しようとすると、dev_pos の結果は LONG_PTR_MIN または LONG_PTR_MAX になり無効だとわかります。
前回、0xffffffff80000000 (INT_MIN) と書きましたが、これは正しくありませんでした。32ビットと64ビットの場合で、この値は異なり、正しくは以下のようになります。(新しい plugin.h に定義を追加しました)
#if (defined(_WIN64) || defined(_W64))
#define LONG_PTR_MIN LLONG_MIN // (-9223372036854775807i64 - 1)
#define LONG_PTR_MAX LLONG_MAX // 9223372036854775807i64
#else
#define LONG_PTR_MIN LONG_MIN // (-2147483647L - 1)
#define LONG_PTR_MAX LONG_MAX // 2147483647L
#endif
ヘルプの EE_VIEW_TO_DEV メッセージ (Editor_ViewToDev インライン関数) には説明を追加しました。
この度は詳細なご報告をいただき、ありがとうございました。
Yutaka