|
回答ありがとうございます。
SetJapaneseCodePageMode()関数は使用していないので、修正してみます。
> とりあえずこちらで簡単なマクロを作ってテストしてみたんですけど、僕の作
>ったマクロだとうまく動くようでした。
>
> loaddll "tkinfo.dll";
> $dir = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount") + "\\";
>
> $tempfile = "e:\\temp\\tempfile.$$$"; //書き換え必要。
> #n = dllfunc("Bypass_SetFileAttributes", $tempfile, 0 );
> #n = dllfunc("Bypass_DeleteFile", $tempfile );
>
> $attach = dllfuncstr("CurrentHeader", "X-Attach");
> if( $attach == "" ) {
> endmacro;
> }
> $path = $dir + $attach;
> #n = dllfunc("Bypass_CopyFile", $path, $tempfile, 0 );
> if( #n == 0 ) {
> message "CopyFile失敗。\n\n" + $path;
> } else {
> message "CopyFile成功。\n\n" + $path;
> }
>
> とりあえず、ユニコードのメールと中国語のメールのどっちでもうまくいくよ
>うでした。
>
> #n = dllfunc("SetJapaneseCodePageMode", 1);
>
> を入れてもうまくいくみたいです。
>
> ダメになりそうなパターンとしては、たとえばマクロの中でNextMailとか
>SetMailIndexとかの「別のメールを選択する」って操作が入っていて、それによ
>ってメールの文字コードが切り替わる場合があるとダメかもしれないです。ただ、
>その場合はSetJapaneseCodePageMode関数呼び出しによって直るはずだと思いま
>す。
参考までにマクロの内容としては、不要なメールを選択して、
dllfunc("Delete", 2)を呼んでいるだけです。
X-HTMLやX-Attachは内部で間接的に参照されているのだと思います。
|
|