|
狭いからという理由なのは、もしかして、「名前+Email」の表示を名前だけに
したいとかって話ですかね。だとしたら、そのように変換してしまったら、今度
はメール一覧の表示がうまくいかなくなったり、返信出来なくなったりします。
あくまでメールの中の名前部分をアドレス帳上の名前に変換したいってことで
したら、マクロはこのようになります。
loaddll "tkinfo.dll";
#count = dllfunc("SelectedMailCount");
if( #count == 0 ) {
endmacro;
}
#n = dllfunc("LockSelection");
while(1) {
#n = dllfunc("EnumSelection", 1);
if( #n == 0 ) {
break;
}
call ConvertOneMail;
}
#n = dllfunc("UnlockSelection", 1);
endmacro;
ConvertOneMail:
##updated = 0;
call ConvertHeader "From", ##updated;
if( ##return ) {
##updated = 1;
}
call ConvertHeader "To", ##updated;
if( ##return ) {
##updated = 1;
}
call ConvertHeader "Cc", ##updated;
if( ##return ) {
##updated = 1;
}
if( ##updated ) {
##altered = dllfunc("GetMailFlag", "altered");
##n = dllfunc("SaveEditMail", 0, 0);
if( ##altered == 0 ) {
##n = dllfunc("SetMailFlag", "altered", 0);
}
}
return;
ConvertHeader:
##c = dllfunc("CountCurrentHeader", $$1);
##i = 0;
##updated = ##2;
while( ##i < ##c ) {
$s = dllfuncstr("CurrentHeader2", $$1, ##i);
call ConvertByBook $s;
if( $$return != $s ) {
if( ##updated == 0 ) {
##updated = 1;
##n = dllfunc("BeginEditMail");
}
##n = dllfunc("SetHeader2", $$1, $$return, ##i);
}
##i = ##i + 1;
}
return ##updated;
ConvertByBook:
##c = dllfunc("CountEmailList", $$1);
##i = 0;
$$ret = "";
while( ##i < ##c ) {
$$one = dllfuncstr("GetEmailList", $$1, ##i);
$$one = dllfuncstr("FindBook3", $$one);
$$ret = $$ret + $$one;
##i = ##i + 1;
if( ##i < ##c ) {
$$ret = $$ret + ", ";
}
}
return $$ret;
|
|