SetJapaneseCodePageMode関数(TKInfo.dll)(Ver6.50対応版)
 SetJapaneseCodePageMode関数は、秀丸メール本体ウィンドウ上のメール内容を表示してる秀丸エディタ相当部分を、日本語を表示する用のコードページに固定するモードにします。この状態にすると、例えば外国語のメールを表示する時も、あくまで秀丸エディタ相当部分は「エンコード種類=日本語Shift-JIS、コードページ=932固定」であるかのごとく動作するようになります。

 tkinfo.dllの各種関数は、メールのコードページで文字列を返す物(CurrentHeader等)と、日本語コードページで文字列を返す物(CurrentAccount等)がごちゃまぜになってて、例えば外国語メールを表示したままCurrentAccount関数で文字列を取得すると、それが結果的に化けたような扱いになることが多いです。なので、外国語メールを扱うマクロは、なくべくこのSetJapaneseCodePageModeを使って日本語コードページ固定にしてマクロが動作するようにするのがお勧めです。
パラメータ1(数値型)
 数値の1を指定すると、「JapaneseCodePageMode」になり、0を指定すると、元の普通の状態に戻ります。
 一般的には、マクロの先頭でパラメータに1を指定して呼び出し、マクロの最後でパラメータに0を指定して呼び出すのが適当です。


返り値(数値型)
 返り値には特に意味はありません。


loaddll "tkinfo.dll";
#n = dllfunc( "SetJapaneseCodePageMode", 1 );
$s = dllfuncstr("CurrentHeader","Subject");
message $s;				// 外国語メールでも文字化けしない
$s = dllfuncstr("CurrentAccount");
message $s;				// 外国語メールでも文字化けしない
#n = dllfunc( "SetJapaneseCodePageMode", 0 );
備考
 SetJapaneseCodePageModeを使ったマクロは、普通のShift-JIS形式のファイルとして保存してください。ユニコード(UTF-16)で作成すると、逆に文字化けするケースがあります。
 SetJapaneseCodePageModeで日本語Shift-JIS固定モードにしても、外国語メールの中に日本語を書き込むことは出来ません。なので、例えばBeginEditMail/SaveEditMailでメールを書き換える場合に、メールに日本語を書き込もうとしても、うまくいきません。
 SetJapaneseCodePageModeが効くのは秀丸メール本体ウィンドウ上だけで、エディタ・ウィンドウ上には効きません。



戻る