User manual - DT-5100 エミュレータ開発解説書ver.3.00(2004年3月8日)

[説明]
この関数がアプリケーションから呼び出されると以下の処理を行います。
①の PxEmEvt_Init() で名前付きイベントを作成します
②の WaitForMultipleObjects( PXEVENT_NUM, hPxEmEvt, FALSE, dwTime) でイベントを待ちます。
, WaitForMultipleObjects を抜けた要因を判定します。
④の PxEmEvt_End() でイベントを削除します。
①、④の関数および、②のイベント数、イベント配列は以下のヘッダファイルで定義されていますので、このヘッ
ダファイルをインクルードすることによっても利用できます。
インクルードファイル名: pxemevt.h
[pxemevt.h の内容]
/****************************************/
/* ベント定義と初期化、開放関数 */
/****************************************/
#define PXEMEVT_T1 0
#define PXEMEVT_T2 1
#define PXEMENT_NUM PXEMEVT_T2+1
static HANDLE hPxEmEvt[ PXEMEVT_NUM]; // イベントハンドル
void PxEmEvt_Init( void)
{
int i;
TCHAR szName[ 16];
// 名前付きイベントを生成する(自動リセット、初期値非シグナル状態)
for ( i=0; i < PXEMEVT_NUM; i++ ) {
if( !hPxEmEvt[i]) {
wsprintf( szName, TEXT("PxEmEvt%d"), i + 1 );
hPxEmEvt[i] = CreateEvent( NULL, FALSE, FALSE, szName );
}
}
}
void PxEmEvt_End( void)
{
int i;
// 名前付きイベントをクローズする
for ( i=0; i < PXEMEVT_NUM; i++ ) {
if ( hPxEmEvt[ i])
CloseHandle( hPxEmEvt[i]);
hPxEmEvt[ i] = 0;
}
}
8