外部コマンドのプログラミングインタフェース

外部コマンドのプログラミングインタフェースには、次に示すような関数があります。

重要:  これらの関数にはICMD.NLMのバージョン2.18以上が必要です。


ICMDSetVar

ICMDSetVar関数は、スクリプトの変数の値をプログラムで設定する際に使用します。


関数

int ICMDSetVar (char *variableName, char *variableValue)

*variableName: 設定する変数の名前へのポインタ
*variableValue: 設定する変数の値を表す文字列へのポインタ


返される値

成功した場合は0が、成功しなかった場合には0以外のエラーコードが返されます。


説明

ICMDSetVarは、ICMD.NLMからエクスポートされた関数であり、別のNLMから(阻止NLMExecコマンド内などで)呼び出すことができます。この関数により、NLMはICMD.NLMが実行しているスクリプト内の変数を設定できるため、このスクリプトと通信を行い、制御フローを変更したりできます。


MYNLM.NLMに次のようなコードが含まれ、

ICMDSetVar("mynlmvar", "hello world"); exit();

スクリプトが次のように記述されている場合、

NLMExec 1, mynlm

Display 0, "Information: %{mynlmvar}"

次のポップアップテキストボックスが表示されます。

Information: hello world

ICMDGetVar

ICMDGetVar関数は、スクリプトの変数の値を取得するために使用します。


関数

int ICMDGetVar (char *variableName, char *variableValue)

*variableName: 変数の名前へのポインタ
*variableValue: 変数の値を収めるバッファ(128バイト以上必要)


返される値

成功した場合は0が返されます。成功しなかった場合、または変数variableNameが存在しなかった場合には、0以外のエラーコードが返されます。


説明

ICMDGetVarは、ICMD.NLMからエクスポートされた関数であり、他のNLMから呼び出すことができます。この関数により、NLMはICMD.NLMが実行しているスクリプト内の変数を設定できるため、このスクリプトと通信を行い、制御フローを変更したりできます。


スクリプトが次のように記述され、

SetVar myvar, "Hello"

NLMExec 1, mynlm

MYNLM.NLMに次のようなコードが含まれている場合、

char buffer[128];

ICMDGetVar("myvar", buffer);

バッファに入る値は、NULLで終わる次の文字列になります。

"Hello"

|