|
調べてみたところ、COMの数値パラメータの受け渡しは、確かに64bit版秀丸エディタ
であっても、32bitにしてありました。
V8.03のときにそういう変更がありました。
まず32bit/64bit版に関わらずマクロの動作は同じにしたいという目標から、本当は
数値は全て32bitにしたいところなのですが、数値変数にポインタやハンドルを格納
する可能性から、実際は64bit版では64bit値を格納できるようにしています。
COMメンバへ数値パラメータを渡すときは、V8.02以前では64bit版では64bit値にして
いたのですが、V8.03以降では32bit値の固定にしています。
例えば、以下のようなマクロで、メモ帳を最小化で起動するとき、最後のパラメータ
が64bit値だと失敗していました。
#obj = createobject("Shell.Application");
member #obj,"ShellExecute","notepad.exe","","","",7;
32bit値の固定にして、32bit/64bit版でも同じマクロで実行できるようになっていま
す。
一応現状の仕様ということでヘルプのどこかに書いておこうと思います。
パラメータ指定でビット幅固定にしないといけないのは、秀丸エディタの呼び出し方
がIDispatchのみなのに起因している気がします。
この仕組みのままなんとかするとしたら、allowobjparamで明示的に数値のビット幅
を指定できればなんとかできるとは思います。
|
|