|
>ここに、サンプルなどが含まれています。
サンプルを見て、動作の仕組みが大体理解できました。
いくつか質問させてください。
Q1. 変換モジュールのメニューのニーモニック指定をしたくない
ライブラリにあるマクロもいくつか設定してみて、
メニューのニーモニックが省略されているものがあることに
気がついたのですが(例えば「ソート...」や
「TAB -> 空白(クオート無視)」など)、サンプルの説明によると
HIDEMARUFILTERINFO に指定するメンバがあって、指定しない
設定の方法がわかりませんでした。
作成した変換モジュールは、任意の引数が必要なので、
メニューからはまともに動作しないため、ニーモニックは
つけたくないのです。
本当は、メニューにも出しておきたくないのですが、
これはもうしょうがないんですよね。
Q2. 登録されているかどうかの確認
変換モジュールには、ひとつだけフィルタ関数が公開されている場合、
以下の判定方法で間違ってないと思いますが、どうでしょうか。
登録されているかどうかと同時に、どこにあるかも探しています。
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env\\Filter";
#c = getregnum("c");
while (#c != 0) {
$key = "filter" + rightstr("0" + str(#c), 2);
$path = getregstr($key);
if (strstr($path, "FooBar.hmf") != -1) {
if (ascii(rightstr($path, 1)) != '1') {
#c = 0;
} else {
$path = leftstr($path, strlen($path) - 2);
}
break;
}
#c = #c - 1;
}
closereg;
if (#c == 0) {
message "変換モジュールに登録されていません。";
endmacro;
}
filter $path, "Baz", "...";
Q3. 変換モジュールは、標準のものも含めて 100 個まででしょうか?
Q4. どっちから呼ばれたの?
フィルタ関数が、filter 文から呼ばれたのか filter 関数から
呼ばれたのか判断する方法はあるでしょうか?
|
|