提供の U_BIF マクロ

ユーザー定義組み込み関数のコーディングをサポートするため、以下の U_BIF マクロが Visual LANSA より提供されています。

これらのマクロは、ユーザー定義組み込み関数のプログラミングが簡単にできるように、また将来の変更の影響を受けないよう、特別に準備されたものであることに注意してください。

このマクロには高レベルのエラー処理は含まれておらず、完全な守備が整っているわけではありません。開発者がこのマクロの使用方法を理解し、使いこなせることが前提となっています。

U_BIF マクロは、LANSA Windows の製品 CD より提供されているヘッダー・ファイル X_BIF000.H で定義されています。このファイルは、Visual LANSA 更新時に毎回置き換えられますので、内容を変更しないようにしてください。

引数の指定は、引数の列のリスト順に指定する必要があることに注意してください。

マクロ名

引数

説明/コメント

U_BIF_COLUMN_ERROR

なし

致命的エラーのメッセージ・テキスト文字列

U_BIF_LIST_ERROR

なし

致命的エラーのメッセージ・テキスト

U_BIF_LANSA_FUNCTION

なし

現在のファンクション名

U_BIF_LANSA_FUNCTION_DESC

なし

現在のファンクションの記述

U_BIF_LANSA_PROCESS

なし

現在のプロセス名

U_BIF_LANSA_PROCESS_DESC

なし

現在のプロセスの記述

U-BIF-GET_HAB

_R=HAB

現在の HAB を _R に返します。

U-BIF-GET_HMQ

_R=HMQ

現在の HMQ を _R に返します。

U_BIF_GET_HWND

_R = HWND

現在の HWND を _R に返します。

U_BIF_FATAL_ERROR

なし

"if (U_BIF_FATAL_ERROR)" と同様、致命的エラーの状態にあるかを確認します。

U_BIF_ISSUE_FATAL_ERROR

_T = "text" 
または
X_PVCHAR

致命的なエラーを発行し、呼び出し元にコントロールを返します。

U_BIF_HANDLE_FATAL_ERROR

なし

致命的エラーの状態にあるかを確認し、致命的エラーが存在する場合は返り値を発行します。

U_BIF_SET_GOOD_RETURN

なし

BIF が正常に終了したことを呼び出し RDML ファンクションに伝えます。

U_BIF_SET_BAD_RETURN

なし

BIF がエラーで終了したことを呼び出し RDML ファンクションに伝えます。

U_BIF_RETURN

なし

呼び出し RDML ファンクションにコントロールを戻します。C 返り値を発行します。

U_BIF_SHUTDOWN_REQUEST

なし

例にある "if (U_BIF_SHUTDOWN_REQUEST)" と同様、組み込み関数のシャットダウン要求があるかを確認します。

U_BIF_STANDARD_PARAMETERS

なし

ユーザー定義組み込み関数に対する標準パラメータ・リストを定義します。

U_BIF_STANDARD_ARGUMENTS

なし

ユーザー定義組み込み関数に渡す標準引数のセットを定義します。

U_BIF_OPERATING_SYSTEM_WIN95

なし

C #ifdef または #elif で使用し、Windows 9x/200x におけるコンパイルをテストします。

U_BIF_OPERATING_SYSTEM_WIN

なし

C #ifdef または #elif で使用し、Windows 9x または 200x におけるコンパイルをテストします。

U_BIF_OPERATING_SYSTEM_UNIX

なし

C #ifdef または #elif で使用し、UNIX(Linux) オペレーティング・システム におけるコンパイルをテストします。 

U_BIF_GET_ARGUMENT_COUNT

_N = X_SHORT

組み込み関数の _N に引数の総数を返します。

U_BIF_ARGUMENT_PASSED

_N = X_SHORT

"if ()" ステートメント内で使用して、引数の数 _N が呼び出し元に渡されたかどうかを確認します。

U_BIF_GET_RETURN_COUNT

_N = X_SHORT

呼び出し元が要求した返り値の総数のカウントを _N に返します。

U_BIF_RETURN_REQUIRED

_N = X_SHORT

"if ()" ステートメント内で使用して、戻り値 _N が呼び出し元によって要求されているかどうかを確認します。

U_BIF_GET_ARG_AS_SHORT

_N = X_SHORT
_S = X_SHORT

引数番号 _N を X_SHORT 値として取得して、_S に入れます。_N が無効、もしくは引数 _N が渡されなかった場合、_S がこの操作で変更されることはありません。_N は引数番号で、C スタイルの 0 から始まる連番です。

U_BIF_GET_ARG_AS_LONG

_N = X_SHORT
_L = X_LONG

引数番号 _N を X_LONG 値として取得して、_L に入れます。_N が無効、もしくは引数 _N が渡されなかった場合、_L がこの操作で変更されることはありません。_N は引数番号で、C スタイルの 0 から始まる連番です。

U_BIF_GET_ARG_AS_DOUBLE

_N = X_SHORT
_D = X_DOUBLE

引数番号 _N を X_DOUBLE 値として取得して、_D に入れます。_N が無効、もしくは引数 _N が渡されなかった場合、_D がこの操作で変更されることはありません。_N は引数番号で、C スタイルの 0 から始まる連番です。

U_BIF_GET_ARG_AS_VCHAR

_N = X_SHORT
_V = X_VCHAR

引数番号 _N を X_VCHAR 値として取得して、V に入れます。_N が無効、もしくは引数 _N が渡されなかった場合、V がこの操作で変更されることはありません。_N は引数番号で、C スタイルの 0 から始まる連番です。

U_BIF_SET_RET_FROM_SHORT

_N = X_SHORT
_S = X_SHORT

戻り値番号 _N を、_S によって指定された X_SHORT 値から設定します。_N が無効である場合、戻り値 _N は必要ありません。この要求全体が無視されます。_N は戻り値番号で、C スタイルの 0 から始まる連番です。

U_BIF_SET_RET_FROM_LONG

_N = X_SHORT
_L = X_LONG

戻り値番号 _N を、_L によって指定された X_LONG 値から設定します。_N が無効である場合、戻り値 _N は必要ありません。この要求全体が無視されます。_N は戻り値番号で、C スタイルの 0 から始まる連番です。

U_BIF_SET_RET_FROM_DOUBLE

_N = X_SHORT
_D = X_DOUBLE

戻り値番号 _N を、_D によって指定された X_DOUBLE 値から設定します。_N が無効である場合、戻り値 _N は必要ありません。この要求全体が無視されます。_N は戻り値番号で、C スタイルの 0 から始まる連番です。

U_BIF_SET_RET_FROM_VCHAR

_N = X_SHORT
_V = X_VCHAR

戻り値番号 _N を、_V によって指定された X_VCHAR 値から設定します。_N が無効である場合、戻り値 _N は必要ありません。この要求全体が無視されます。_N は戻り値番号で、C スタイルの 0 から始まる連番です。

U_BIF_DECLARE_LIST_POINTER

_L = C Name

引数として受け取った、もしくは返す予定の作業リストへのポインターを宣言します。これは宣言ですので、正しい位置に配置する必要があります。pListArg1、pListArg7、pListRet5 といった名前が推奨されています。
宣言されたリスト・ポインターは、いずれにせよ、このリストが参照される前に設定する必要があります。

U_BIF_SET_ARG_LIST_POINTER

_L = C Name
_A = X_SHORT

事前に U_BIF_DECLARE_LIST_POINTER(_L) で宣言されたリスト・ポインターを初期化します。
_A は作業リストが含まれた組み込み関数の引数の引数番号です。
_A が無効、もしくは引数 _A が渡さなかった場合は、結果として致命的エラーとなり、組み込み関数は終了されます。

U_BIF_SET_RET_LIST_POINTER

_L = C Name
_A = X_SHORT

事前に U_BIF_DECLARE_LIST_POINTER(_L) で宣言されたリスト・ポインターを初期化します。
_A は作業リストが含まれた組み込み関数の引数の戻り値番号です。_A が無効、もしくは戻り値 _A が要求されなかった場合は、結果として致命的エラーとなり、組み込み関数は終了されます。

U_BIF_GET_ENTRY_FROM_LIST

_L = C Name
_E = X_LIST_COUNT
_R = X_CHAR

_L ポインターが指す作業リストからエントリー番号 _E を取得します。エントリーが存在する場合、_R は YES('Y') で、それ以外は NO('N') で返されます。リスト・エントリーは 1 から N で番号が振られています。その他の U_BIF マクロの多くは C スタイルの 0 から (N - 1) で番号が振られているので、この点では異なります。

U_BIF_CLEAR_LIST

_L = C Name

_L ポインターが指すリストからすべてのエントリーをクリアします。

U_BIF_ADD_ENTRY_TO_LIST

_L = C Name

_L ポインターが指すリストに新規のエントリーを追加します。

U_BIF_UPDATE_ENTRY_IN_LIST

_L = C Name

_L ポインターが指す作業リストの現在のエントリーを更新します。

U_BIF_GET_LIST_CURRENT_ENTRYS

_L = C Name
_R = X_LIST_COUNT

_L ポインターが指す作業リストの現在のエントリー数のカウントを _R に返します。

U_BIF_GET_LIST_MAXIMUM_ENTRYS

_L = C Name
_R = X_LIST_COUNT

_L ポインターが指す作業リストに入れることができるエントリー最大数のカウントを _R に返します。

U_BIF_GET_LIST_ENTRY_LENGTH

_L = C Name
_R = X_LIST_COUNT

_L ポインターが指す作業リスト内の 1 つのエントリーの合計バイト長を _R に返します。

U_BIF_GET_LIST_COLUMN_TOTAL

_L = C Name
_R = X_SHORT

_L ポインターが指す作業リストに定義された列の総数を _R に返します。

U_BIF_GET_LIST_COLUMN_ATTRIBS

_L = C Name
_C = X_SHORT
_T = X_CHAR
_E = X_ULONG
_D = X_SHORT
_B = X_SHORT

_L ポインターが指す作業リストの列番号 _C (0 ~ (N-1) のスタイル) の定義を問い合わせ、以下を返します。

_T : 列タイプ 
_E : 列の長さ/総桁数
_D : 小数点以下桁数
_B : バイト長
_T は、X_FUNSTR.H に定義された以下のタイプに基づき返されます。
X_TYPE_ALPHA= 英数字
X_TYPE_CHAR = Char または文字列
X_TYPE_PACKED = パック十進数
X_TYPE_SIGNED = 符号付き十進数
X_TYPE_FLOAT = 浮動
X_TYPE_INTEGER  = 整数
X_TYPE_LONG= X_LONG 形式
X_TYPE_DOUBLE = X_DOUBLE 形式
X_TYPE_DATETIME = 日時
X_TYPE_DATE = 日付
X_TYPE_TIME = 時間
X_TYPE_BOOLEAN= ブール値
X_TYPE_BINARY = バイナリまたは VarBinary
X_TYPE_CLOB = CLOB
X_TYPE_BLOB = BLOB

_C が無効な列番号の場合、結果として致命的エラーとなり、組み込み関数は終了されます。 

X_TYPE_CLOB、X_TYPE_BLOB では、_E はファイル名の長さの最長で、ファイルのコンテンツではありません。  

U_BIF_LIST_COLUMN_NAME_LEN

なし

列名の長さ (現在は 10 バイト) を定義します。

U_BIF_GET_LIST_COLUMN_NAME

_L = C Name
_C = X_SHORT
_R = X_VCHAR

_L ポインターが指す作業リストの列番号 _C (0 ~ (N-1) のスタイル) の定義を問い合わせ、列の名前 (RDML フィールド名) を返します。

_R は X_VCHAR タイプに属している必要があり、少なくとも(U_BIF_COLUMN_NAME_LEN + 1) バイトの長さでなければいけません。 

_C が無効な列番号の場合、結果として致命的エラーとなり、組み込み関数は終了されます。

U_BIF_GET_LIST_COLUMN_AS_SHORT

_L = C Name
_C = X_SHORT
_R = X_SHORT

_L ポインターが指す作業リストの現在のエントリーから列番号 _C (0 ~ (N-1) のスタイル) の値を返します。この値は _R に返されますが、タイプは X_SHORT である必要があります。_C が無効な列番号の場合、結果として致命的エラーとなり、組み込み関数は終了されます。

U_BIF_GET_LIST_COLUMN_AS_LONG

_L = C Name
_C = X_SHORT
_R = X_LONG

_L ポインターが指す作業リストの現在のエントリーから列番号 _C (0 ~ (N-1) のスタイル) の値を返します。この値は _R に返されますが、タイプは X_LONG である必要があります。_C が無効な列番号の場合、結果として致命的エラーとなり、組み込み関数は終了されます。

U_BIF_GET_LIST_COLUMN_AS_LONGLONG

_L = C Name
_C = X_SHORT
_R = X_LONGLONG

_L ポインターが指す作業リストの現在のエントリーから列番号 _C (0 ~ (N-1) のスタイル) の値を返します。この値は _R に返されますが、タイプは X_LONGLONG である必要があります。_C が無効な列番号の場合、結果として致命的エラーとなり、組み込み関数は終了されます。

U_BIF_GET_LIST_COLUMN_AS_DOUBLE


_L ポインターが指す作業リストの現在のエントリーから列番号 _C (0 ~ (N-1) のスタイル) の値を返します。この値は _R に返されますが、タイプは X_DOUBLE である必要があります。_C が無効な列番号の場合、結果として致命的エラーとなり、組み込み関数は終了されます。

U_BIF_GET_LIST_COLUMN_AS_VCHAR

_L = C Name
_C = X_SHORT
_R = X_VCHAR

_L ポインターが指す作業リストの現在のエントリーから列番号 _C (0 ~ (N-1) のスタイル) の値を返します。
この値は _R に返されますが、タイプは X_VCHAR である必要があります。_C が無効な列番号の場合、結果として致命的エラーとなり、組み込み関数は終了されます。

U_BIF_SET_LIST_COLUMN_FROM_SHORT

_L = C Name
_C = X_SHORT
_R = X_SHORT

_L ポインターが指す作業リストの現在のエントリーに列番号 _C (0 ~ (N-1) のスタイル) の値を設定します。この値は _R から設定されますが、タイプは X_SHORT である必要があります。_C が無効な列番号の場合、結果として致命的エラーとなり、組み込み関数は終了されます。リスト内の現在のエントリーは、この後挿入する、もしくは、保存されたリストに実際に適用するため更新する必要があります。

U_BIF_SET_LIST_COLUMN_FROM_LONG

_L = C Name
_C = X_SHORT
_R = X_LONG

_L ポインターが指す作業リストの現在のエントリーに列番号 _C (0 ~ (N-1) のスタイル) の値を設定します。この値は _R から設定されますが、タイプは X_LONG である必要があります。_C が無効な列番号の場合、結果として致命的エラーとなり、組み込み関数は終了されます。リスト内の現在のエントリーは、この後挿入する、もしくは、保存されたリストに実際に適用するため更新する必要があります。

U_BIF_SET_LIST_COLUMN_FROM_LONG

_L = C Name
_C = X_SHORT
_R = X_LONGLONG

_L ポインターが指す作業リストの現在のエントリーに列番号 _C (0 ~ (N-1) のスタイル) の値を設定します。この値は _R から設定されますが、タイプは X_LONGLONG である必要があります。_C が無効な列番号の場合、結果として致命的エラーとなり、組み込み関数は終了されます。リスト内の現在のエントリーは、この後挿入する、もしくは、保存されたリストに実際に適用するため更新する必要があります。

U_BIF_SET_LIST_COLUMN_FROM_DOUBLE

_L = C Name
_C = X_SHORT
_R = X_DOUBLE

_L ポインターが指す作業リストの現在のエントリーに列番号 _C (0 ~ (N-1) のスタイル) の値を設定します。この値は _R から設定されますが、タイプは X_DOUBLE である必要があります。_C が無効な列番号の場合、結果として致命的エラーとなり、組み込み関数は終了されます。リスト内の現在のエントリーは、この後挿入する、もしくは、保存されたリストに実際に適用するため更新する必要があります。

U_BIF_SET_LIST_COLUMN_FROM_VCHAR

_L = C Name
_C = X_SHORT
_R = X_VCHAR

_L ポインターが指す作業リストの現在のエントリーに列番号 _C (0 ~ (N-1) のスタイル) の値を設定します。この値は _R から設定されますが、タイプは X_VCHAR である必要があります。_C が無効な列番号の場合、結果として致命的エラーとなり、組み込み関数は終了されます。リスト内の現在のエントリーは、この後挿入する、もしくは、保存されたリストに実際に適用するため更新する必要があります。