プラットフォームで定義されているイベントをユーザー定義の文脈に関連付ける。 現在は、1つのイベント タイプ(CLI_WIN_TIMEOUTとして内部的に定義されたタイムアウト)のみサポートしています。
制限
Microsoft Windowsプラットフォームでのみサポートされます。
パラメータ
次の構造体cli_win_eventは、この関数のパラメータEventIDAddressとして使用されます。
struct cli_win_event {
Int32 kind; /*event kind */
void *data; /*event data */
}
kindはCLI_WIN_TIMEOUTとし、データはtimeval構造体を示す必要があります。
struct timeval {
Int32 tv_sec; /* seconds */
Int32 tv_usec; /* microseconds */
}
DBCHUEパラメータは次のとおりです。
| DBCHUE (ReturnCode, ContextArea, EventIDAddress, Function) | |
| Int32 *ReturnCode | |
| char **ContextArea | |
| struct cli_win_event *EventIDAddress | |
| Int32 Function |
次のような場合に当てはまります。
| パラメータ | 内容 |
|---|---|
| ReturnCode | アプリケーション プログラムによって割り振られた4バイトの符号付き整数のアドレス。 DBCHUEから制御が戻ると、この整数には、成功または失敗を表わすコード値が入っています。 ゼロの戻り値は、成功を示します。ゼロ以外の戻りコードは、失敗の理由を示します。 返される可能性のある戻りコード:
|
| ContextArea | 文字ポインタを指す間接ポインタ。 INSERT_EVENT関数の実行中に、DBCHUEによってこのポインタにメモリが割り振られ、初期設定されます。 DELETE_EVENT関数の実行中に、このメモリはDBCHUEによって解放されます。 このContextAreaは、DBCHWLでのユーザー定義イベントを待つために使用されます。 |
| EventIDAddress | ユーザー定義イベント。 現在サポートされているイベントの種類は、CLI_WIN_TIMEOUTだけです。 |
| Function | サポートされる2種類のイベント(INSERT_EVENTおよびDELETE_EVENT)を定義する4バイトの符号付き整数。 INSERT_EVENTは、イベントを挿入し、イベントをContextAreaに関連付けます。 DELETE_EVENTは、イベントを削除し、イベントとContextAreaの関連付けを解除します。 |
使用上の注意
現在、DBCHUEは、INSERT_EVENTおよびDELETE_EVENTという2種類のイベントのみサポートしています。
CLI_WIN_TIMEOUTイベントだけがサポートされています。
ContextAreaには1つのイベントのみ関連付けることができます。
DBCHUEは、多重スレッドのCLIをサポートします。
例
この例では、DBCHWLで使用する5秒のタイムアウト イベントを定義します。
cli_win_event time_event; static struct timeval time_val; Int32 result = 0; Int32 retcode = 0; char *cnta; time_val.tv_sec = 5; time_val.tv_usec = 0; time_event.kind = CLI_WIN_TIMEOUT; time_event.data = (void *)&time_val; retcode = DBCHUE(&result, (char **) &cnta, &time_event, INSERT_EVENT);