WaitForInputIdle

指定されたプロセスが、未処理入力がないユーザー入力の待機状態になるまで、もしくは指定されたタイムアウト時間が経過するまでの間、呼び出しスレッドを待機させます。

DWORD WaitForInputIdle(
    HANDLE hProcess,     // process handle
    DWORD  dwTimeout     // time-out interval
);

USER32.DLL

引数

hProcess

プロセスのハンドルを指定します。このプロセスがコンソールアプリケーションである場合、またはメッセージキューを持たない場合は、WaitForInputIdle関数はただちに制御を返します。

dwTimeout

タイムアウト時間をミリ秒単位で指定します。0xFFFFFFFF (INFINITE) を指定すると、プロセスがアイドル状態になるまで制御を返しません。

戻り値

以下のいずれかの値が返ります。

0

待機が正常に行われました。

258 (WAIT_TIMEOUT)

タイムアウト時間が経過したため待機が終了しました。

0xFFFFFFFF (WAIT_FAILED)

エラーが発生しました。拡張エラー情報を取得するには、GetLastError関数を使います。

解説

この関数を使用することで、指定されたプロセスが初期化を終了して未処理入力のないユーザー入力待機状態になるまでの間、呼び出しスレッドを停止させておくことができます。この関数は、親プロセスと新しく作成された子プロセスとで同期を取る際に役立ちます。親プロセスが子プロセスを作成するとき、CreateProcess関数は子プロセスの初期化が終了するのを待つことなく制御を返します。子プロセスへの通信を行う前に、親プロセスはWaitForInputIdle関数を用いて、子プロセスの初期化が完了しているかどうかを決定することができます。

対応情報

Windows 95 以降 / Windows NT 3.1 以降