プラットフォームで定義されているイベントをユーザー定義の文脈に関連付ける。 現在は、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);