DWORD QueueUserAPC(PAPCFUNC UserAPC, HANDLE hThread, DWORD Data);
この関数はNT4.0以降で使用可能である。
引数の意味は、以下の通り。
UserAPC | キューにためるAPC関数を指すポインタ |
hThread | どのスレッドのAPCキューにためるかを指定するスレッドのハンドル |
Data | APC関数実行時にAPC関数に渡される32bit値。 |
関数の実行に成功した場合、TRUEが返される。失敗した場合、FALSEが返される。
void APIENTRY DoUserAPC(DWORD Data) { printf("UserAPC(param = %d)\n", Data); } Void DoQueueUserAPC() { /* APC関数をキューに追加する */ QueueUserAPC(DoUserAPC, GetCurrentThread(), 0); QueueUserAPC(DoUserAPC, GetCurrentThread(), 1); /* スレッドをアラート可能な待機状態にし、キューにためられたAPC関数を実行する */ SleepEx(0, TRUE); }