SETVAR

使い方:   #n = dllfunc("SETVAR",$s1,$s2);
説明: DengakuDLL.DLL を使用する全てのプロセス(秀丸ウィンドウ)で共有される、 (永続的な)グローバル変数を定義します。
引数:
$s1 : 変数の名前
変数名の先頭に "@" を付けるとその変数は永続的なものになり、 DLL がアンロードされた後も保存され、 次回の DLL のロード時に自動的に読み込まれます。
なお、変数用に用意されているメモリは変数名とその値を合わせて 16MB 程度なので、 大量のデータを定義する際はその制限に十分注意して下さい。
$s2 : 変数の値
返り値: 成功した場合は 1 を、失敗した場合は 0 を返します。
備考: Ver.2.20 からグローバル変数の実装を変更したため、 それ以前のバージョンの田楽DLL/サーバとグローバル変数の共有が できなくなりました。したがって、 2つのウィンドウ(プロセス)間で変数を共有する場合は 両者共に Ver.2.20 以降のDLL/サーバを利用してください。
例:
//  元ウィンドウで DLL をロード
loaddll hidemarudir + "\\DengakuDLL.dll";
//  グローバル変数の定義
if (dllfunc("SETVAR","arg0","this is arg 0.") == 0  ||
    dllfunc("SETVAR","arg1","this is arg 1.") == 0  ||
    dllfunc("SETVAR","arg2","this is arg 2.") == 0) {
    message "変数の定義に失敗!!";
    ...
}
//  別ウィンドウのオープン
openfile "foo.txt";
//  別ウィンドウで新たに DLL をロード
loaddll hidemarudir + "\\DengakuDLL.dll";
//  定義しておいたグローバル変数を読み込む
##a = 0;
while (##a < 3) {
    $arg[##a] = dllfuncstr("GETVAR","arg" + str(##a));
    if (dllfunc("DELVAR","arg" + str(##a))) break;
    ##a = ##a + 1;
}
...
//  永続的なグローバル変数の定義(マクロ終了後も保存される)
if (dllfunc("SETVAR","@super_global","this is super-global var.") == 0) {
    message "永続的変数の定義に失敗!!";
}
//  別ウィンドウでロードした DLL のアンロード
//  (この時点では全てのグローバル変数がメモリ上に残った状態になる)
freedll;
closehidemaruforced hidemaruhandle(0);
//  元ウィンドウでロードした DLL のアンロード
//  (この時点で @super_global の値(のみ)が保存される)
freedll;
...


GETVAR

使い方:   $s = dllfuncstr("GETVAR",$s1);
説明: SETVAR 関数 で定義した変数の値を取り出します。
引数:
$s1 : 変数の名前
返り値: 変数の値
(未定義の変数に対しては "" を返しますが、 これだけでは "" という値を持つ変数と区別ができません。 変数が定義されているかどうかの判断は EXISTVAR 関数 で行って下さい。)
例: (SETVAR 関数 の例を参照して下さい。)


DELVAR

使い方:   #n = dllfunc("DELVAR",$s1);
説明: 変数を削除します。
引数:
$s1 : 変数の名前
返り値: 成功した場合は 1 を、失敗した場合は 0 を返します。
例: (SETVAR 関数 の例を参照して下さい。)


EXISTVAR

使い方:   #n = dllfunc("EXISTVAR",$s1);
説明: 変数が定義されているかどうかを調べます。
引数:
$s1 : 変数の名前
返り値: 変数が定義されている場合は 1 を、そうでなければ 0 を返します。
例: (省略)


ENUMVAR

使い方:   #n = dllfunc("ENUMVAR");
説明: 現在定義されている変数名を列挙します。 列挙された変数名を取得するには NEXTVAR 関数 を使用します。
引数: (なし)
返り値: 成功した場合は 1 を、失敗した場合は 0 を返します。
例:
if (dllfunc("ENUMVAR") == 0) {
    message "変数の列挙に失敗!!";
    ...
}
while (dllfunc("HASMOREVARS")) {
    $name = dllfuncstr("NEXTVAR");
    $value = dllfuncstr("GETVAR",$name);
    ...
}
...


NEXTVAR

使い方:   $s = dllfuncstr("NEXTVAR");
説明: ENUMVAR 関数 で列挙された変数名を 順に取り出します。
引数: (なし)
返り値: 変数名。列挙が終了したら "" を返します。 なお、列挙の順序は不定です。 あと、NEXTVAR 関数の呼出しの途中で SETVAR 関数 を呼び出して、 新しく変数を追加した場合の動作も不定になります。
例: (ENUMVAR 関数 の例を参照して下さい。)


HASMOREVARS

使い方:   #n = dllfunc("HASMOREVARS");
説明: ENUMVAR 関数 の呼出しの後、 まだ取り出されていない変数があるかどうかを調べます。
引数: (なし)
返り値: まだ変数が残っている場合は 1 を、そうでなければ 0 を返します。
例: (ENUMVAR 関数 の例を参照して下さい。)