● 関数リファレンス

コールバック関数SUBSTHOOK

int __stdcall       function(PSTRCALC_PARAM prm,char *pstr,int len,int btemp,int *pret,void *param)
{

    return 0 または 1;
}

引数

引数名意味
prmSTRCALC_PARAM 構造体の実体アドレス
pstr代入式の文字列全体を格納したバッファの先頭アドレス
lenpstr 内に格納されている文字列の長さ
btempテンポラリ属性指定の有無。
BASICPARAM 構造体のメンバ b_localparam と同じ内容が渡されます。
pret状態コードを返すための int型領域のアドレスが渡されます。
param追加パラメータ。BASICPARAM 構造体のメンバ subst_exparam の内容がそのまま渡されます。

説明

StrCalc BASIC の代入式処理をフックするコールバック関数です。関数ポインタの型は sc39.h 内で定義されています。

    typedef int         (__stdcall *SUBSTHOOK)(PSTRCALC_PARAM ,char *,int ,int ,int *,void *);


このコールバック関数は、代入式が処理される直前に呼び出されます。アプリケーションは、このコールバック内で pstr についての代入式処理を行います。



戻り値

コールバック関数を終了する時は、状態によって次のように終了手続きを行ってください。

状態終了処理
処理に成功した場合戻り値 1 で関数を終了
*pret の内容は無視されます
BASIC を継続できない場合*pret に状態コード(エラー状態)をセットし、戻り値 0 で関数を終了
デフォルトの代入式処理を行う場合*pret に STATUS_NORMAL をセットし、戻り値 0 で関数を終了

BASIC を継続できない場合の状態コードは、適当なコードが見つからなければ、アプリケーション独自のコードを作成しても問題ありませんが、できるだけ StrCalc の状態コード範囲(STATUS_ERROR 〜 STATUS_SUBST_SYNTAXERROR)を使用する事を推奨します。
エラー時の状態コードは、BASICPARAM 構造体のメンバ sc_ret を使ってアプリケーションに通知されます。




注意点