WaitForInputIdle  124RM0M 

The WaitForInputIdle function waits until the given process is waiting for user input with no input pending, or until the time-out interval has elapsed.

The WaitForInputIdle function only works with GUI applications. If a console application calls the function, it returns immediately, with no wait.

DWORD WaitForInputIdle(

    HANDLE hProcess,

// handle to process

    DWORD dwMilliseconds

// time-out interval in milliseconds 

   );

 

 

Parameters

hProcess

Identifies the process.

dwMilliseconds

Specifies the time-out interval, in milliseconds. If dwMilliseconds is INFINITE, the function does not return until the process is idle.

 

Return Values

The following table shows the possible return values:

Value

Meaning

0

The wait was satisfied successfully.

WAIT_TIMEOUT

The wait was terminated because the time-out interval elapsed.

0xFFFFFFFF

An error occurred. To get extended error information, use the GetLastError11C2VS7 function.

 

Remarks

The WaitForInputIdle function enables a thread to suspend its execution until a specified process has finished its initialization and is waiting for user input with no input pending. This can be useful for synchronizing a parent process and a newly created child process. When a parent process creates a child process, the CreateProcess function returns without waiting for the child process to finish its initialization. Before trying to communicate with the child process, the parent process can use WaitForInputIdle to determine when the child s initialization has been completed. For example, the parent process should use WaitForInputIdle before trying to find a window associated with the child process.

The WaitForInputIdle function can be used at any time, not just during application startup.

See Also

CreateProcess