APIリファレンス

以下の構造体はFlipCal APIで使用します。

TVMXModuleInfo構造体
TVMXConstant構造体
TVMXFunction構造体
TVMXValue構造体

以下の関数は拡張モジュールで実装するAPI関数です。

Init関数
GetModuleInfo関数
GetConstantsNum関数
GetConstants関数
GetFunctionsNum関数
GetFunctions関数
FunctionDispatcher関数
SetStdout関数

以下の関数は拡張モジュールから呼び出すことのできるFlipCal APIです。

Stdout関数


Back...


TVMXModuleInfo構造体

TVMXModuleInfo構造体は拡張モジュールの情報を保持するために使用します。

書式

typedef struct {
    DWORD      Size;
    char far * Name;
    char far * Comment;
    char far * ModuleType;
    char far * Level;
    char far * Version;
    char far * Author;
    char far * Copyright;
} TVMXModuleInfo;

詳細

Size この構造体の大きさをバイト数で指定します。
Name 拡張モジュールの正式名称を表す文字列の先頭アドレスを指定します。この文字列はFlipCalの設定ダイアログのモジュール一覧に拡張モジュールの名称として表示されます。
Comment 拡張モジュールに対するコメントの文字列の先頭アドレスを指定します。
ModuleType 拡張モジュールのタイプを表す文字列の先頭アドレスを指定します。
Level 拡張モジュールのサポートするFlipCalインタプリタのレベルを表す文字列の先頭アドレスを指定します。
Version 拡張モジュール自身のバージョン情報を表す文字列の先頭アドレスを指定します。
Author 拡張モジュール自身の作者情報を表す文字列の先頭アドレスを指定します。
Copyright 拡張モジュール自身の著作権情報を表す文字列の先頭アドレスを指定します。

解説

この構造体は拡張モジュールがGetModuleInfo関数の戻り値としてFilpCalに送る情報を保持します。

アドレスには必ずNULL以外の有効なアドレスを指定してください。また、いくつかの項目についてはFlipCalインタプリタ・レベル1では必ず以下の値を指定してください。

Size 必ず32を指定してください。この値は、構造体を1バイトのバイト境界で定義したときのsizeof(TVMXModuleInfo)の値と等価です。
ModuleType 必ず"Func&Const"を指定してください(大文字小文字を区別します)。この文字列は拡張モジュールが関数・定数を提供することを意味します。これは、将来のバージョンアップのために用意されています。
Level 必ず"1"を指定してください。この値は、FlipCalインタプリタ・レベル1のインタプリタ・レベルと等価です。


Back to Index...


TVMXConstant構造体

TVMXConstant構造体は拡張モジュールが提供する定数を保持します。

書式

typedef struct {
    DWORD      Size;
    char far * Name;
    char far * Comment;
    TVMXValue  Value;
} TVMXConstant;

詳細

Size この構造体の大きさをバイト数で指定します。
Name 定数の名称を表す文字列の先頭アドレスを指定します。この名称は定数の識別子として使用されます。
Comment 定数に対するコメントの文字列の先頭アドレスを指定します。
Value 定数の値をTVMXValue構造体で指定します。

解説

この構造体は拡張モジュールがGetConstants関数の戻り値としてFilpCalに送る情報を保持します。

Sizeには必ず44を指定してください。この値は、構造体を1バイトのバイト境界で定義したときのsizeof(TVMXConstant)の値と等価です。


Back to Index...


TVMXFunction構造体

TVMXFunction構造体は拡張モジュールが提供する関数の情報を保持します。

書式

typedef struct {
    DWORD      Size;
    char far * Name;
    char far * Comment;
    INT        ParamNum;
} TVMXFunction;

詳細

Size この構造体の大きさをバイト数で指定します。
Name 関数の名称を表す文字列の先頭アドレスを指定します。この名称は関数の識別子として使用されます。
Comment 関数に対するコメントの文字列の先頭アドレスを指定します。
ParamNum 関数の引数の数を指定します。

解説

この構造体は拡張モジュールがGetFunctions関数の戻り値としてFilpCalに送る情報を保持します。

Sizeには必ず16を指定してください。この値は、構造体を1バイトのバイト境界で定義したときのsizeof(TVMXFunction)の値と等価です。


Back to Index...


TVMXValue構造体

TVMXValue構造体はFlipCalインタプリタ内で使用される値をFlipCal APIにて使用するための基本的な構造体です。

書式

typedef struct {
    DWORD ValueType;
    union {
        int iValue;
        double aValue;
        char Reserved[28];
    };
} TVMXValue;

詳細

ValueType 値の属性を指定します。以下の定数値が使用できます。
VMX_TYPE_INTEGER 1 値は整数です。値にアクセスするにはiValueを使用します。
VMX_TYPE_REAL 2 値は実数です。値にアクセスするにはaValueを使用します。
iValue ValueTypeがVMX_TYPE_INTEGERの場合の値を指定します。
aValue ValueTypeがVMX_TYPE_REALの場合の値を指定します。
Reserved 未使用の予約済み領域です。

解説

この構造体はFlipCalインタプリタが使用する値を拡張モジュール、FilpCal間で受け渡す際に使用します。拡張モジュールの関数呼び出しを行うFunctionDispacher関数の引数情報や、定数情報を保持するTVMXConstant構造体などで使用します。


Back to Index...


Init関数

Init関数は拡張モジュールの初期化を行います。

書式

INT Init(void);

引数

引数はありません。

戻り値

処理が成功するとVMX_RET_SUCCESS (0) を、処理が失敗した場合にはVMX_RET_ERROR (-1) を返します。

解説

FlipCalインタプリタは起動時に拡張モジュールをロードしたあと一度だけInit関数を呼び出し、拡張モジュールに初期化処理を要求します。Init関数は必須ではありません。Init関数を持たない拡張モジュールに対してはInit関数を呼び出すことはありません。

Init関数がVMX_RET_ERRORを戻した拡張モジュールは直ちにアンロードされます。


Back to Index...


GetModuleInfo関数

GetModuleInfo関数は拡張モジュールの情報を返します。

書式

(TVMXModuleInfo far *) GetModuleInfo(void);

引数

引数はありません。

戻り値

TVMXModuleInfo構造体へのポインタを返します。

解説

この関数の実装は必須です。GetModuleInfo関数を持たない拡張モジュールはアンロードされます。

FlipCalインタプリタはGetModuleInfo関数を呼び出すことで拡張モジュールのバージョンをチェックします。FlipCalインタプリタは戻されたTVMXModuleInfo構造体の各項目の内容を検査し、拡張モジュールが現行レベルのFlipCalインタプリタがサポートしていない形式の場合には、直ちにアンロードします。

詳細はTVMXModuleInfo構造体の項を参照してください。


Back to Index...


GetConstantsNum関数

GetConstantsNum関数は拡張モジュールが提供する定数の数を返します。

書式

INT GetConstantsNum(void);

引数

引数はありません。

戻り値

拡張モジュールが提供する定数の数をINT型で返します。

解説

この関数の実装は必須ではありません。

ただし、GetConstantsNum関数を実装する拡張モジュールは、同時に
GetConstants関数も実装しなければなりません。


Back to Index...


GetConstants関数

GetConstants関数は拡張モジュールが提供する定数の情報を返します。

書式

(TVMXConstant far *) GetConstants(void);

引数

引数はありません。

戻り値

拡張モジュールが提供する定数情報が格納してあるTVMXConstant構造体の配列の、先頭のアドレスを返します。

解説

この関数の実装は必須ではありません。

ただし、GetConstants関数を実装する拡張モジュールは、同時にGetConstantsNum関数も実装しなければなりません。


Back to Index...


GetFunctionsNum関数

GetFunctionsNum関数は拡張モジュールが提供する関数の数を返します。

書式

INT GetFunctionsNum(void);

引数

引数はありません。

戻り値

拡張モジュールが提供する関数の数をINT型で返します。

解説

この関数の実装は必須ではありません。

ただし、GetFunctionsNum関数を実装する拡張モジュールは、同時に
GetFunctions関数FunctionDispatcher関数も実装しなければなりません。


Back to Index...


GetFunctions関数

GetFunctions関数は拡張モジュールが提供する関数の情報を返します。

書式

(TVMXFunction far *) GetFunctions(void);

引数

引数はありません。

戻り値

拡張モジュールが提供する関数情報が格納してあるTVMXFunction構造体の配列の、先頭のアドレスを返します。

解説

この関数の実装は必須ではありません。

ただし、GetFunctions関数を実装する拡張モジュールは、同時にGetFunctionsNum関数FunctionDispatcher関数も実装しなければなりません。


Back to Index...


FunctionDispatcher関数

FunctionDispatcher関数は拡張モジュールが提供する関数を実行し結果を返します。

書式

INT FunctionDispatcher(
	char far * pName,
	PTVMXValue pResult,
	PTVMXValue pParams,
	INT        iParamNum
);

引数

pName 呼び出す関数名を格納した文字列の先頭アドレスを指定します。
pResult 関数の戻り値を格納するTVMXValue構造体のアドレスを指定します。
pParams 関数に渡す引数を格納したTVMXValue構造体の配列の先頭アドレスを指定します。
iParamNum 関数に渡す引数の数を指定します。

戻り値

関数の実行結果にしたがって以下の応答コードを返します。

VMX_RET_SUCCESS 0 関数呼び出しは成功しました。
VMX_RET_NOTFOUND 101 pNameに指定された名前の関数が拡張モジュール内に見つかりませんでした。
VMX_RET_ILLEGALCALL 102 不正な関数呼び出しです。
VMX_RET_INTERNALERROR 103 拡張モジュールの内部エラーにより呼び出しに失敗しました。
VMX_RET_INVALIDPARAMNUM 104 引数の数が正しくないため呼び出しに失敗しました。
VMX_RET_INVALIDPARAMTYPE 105 引数の属性が正しくないため呼び出しに失敗しました。

解説

FlipCalインタプリタによる拡張モジュール関数の呼び出しは、このFunctionDispatcher関数をエントリーポイントとします。

FlipCalインタプリタは英文字の大文字小文字を区別しません。pNameに指定する関数名は全て大文字で指定されます。

関数の実行中にエラーが発生した場合は、エラー内容にしたがって上記応答コードの一つを選択して返します。上記応答コードのどれにも一致しないようなエラーの場合には、原因が拡張モジュール内部にある場合にはVMX_RET_INTERNALERRORを、呼び出し元にある場合にはVMX_RET_ILLEGALCALLを使用します。

VMX_RET_INTERNALERRORまたはVMX_RET_ILLEGALCALLを返す場合には、
Stdout関数にてエラーの詳細をユーザーに明示することを推奨します。

FunctionDispatcher関数の実装は必須ではありませんが、この関数を実装する拡張モジュールは、同時にGetFunctionsNum関数GetFunctions関数も実装しなければなりません。


Back to Index...


SetStdout関数

SetStdio関数は拡張モジュールに標準出力関数を提供します。

書式

(PTVMXStdout) SetStdout(PTVMXStdout pNewStdout);

引数

新しいStdout関数のアドレスを指定します。

戻り値

以前に設定されていたStdout関数のアドレスを返します。設定されてない場合にはNULLを返します。

解説

FlipCalインタプリタはSetStdout関数を呼び出すことで、拡張モジュールに標準出力インターフェイスを提供します。標準出力を使用する拡張モジュールは、pNewStdoutで指定されたアドレスをStdout関数のアドレスとして使用することができます。

この関数の実装と標準出力のサポートは必須ではありませんが、サポートすることを推奨します。


Back to Index...


Stdout関数

Stdout関数はFlipCalインタプリタの標準出力に一行出力します。

書式

BOOL Stdout(char far *pStr, DWORD iLen);

引数

pStr 出力する文字列の先頭アドレスを指定します。
iLen 出力する文字列の長さを指定します。

戻り値

呼び出しが成功するとTRUEを、失敗するとFALSEを返します。

解説

Stdout関数は、拡張モジュールからFlipCalインタプリタの標準出力へ文字列の出力を行いたい場合に使用します。この関数を使用したい場合はSetStdout関数を実装して、FlipCalインタプリタからStdout関数のアドレスを受け取らなければなりません。SetStdout関数の呼び出しがなされてない場合にはStdout関数は使用できません。

FlipCalインタプリタ・レベル1では標準出力はFlipCalのメインウィンドウのログ出力です。


Back to Index...


FlipCal SDK 1.0
Copyright (C) 2001, AIDE, All Rights Reserved.
Offical support site "AIDE's"
Powered by "NO!".