We have a VB6 exe that executes .msi (installer files) using shell...

lPid = Shell(strInstall, vbNormalFocus)
If lPid <> 0 Then
'Get a handle to the shelled process.
lHnd = OpenProcess(SYNCHRONIZE, 0, lPid)

'If successful, wait for the application to end and close the handle.
If lHnd <> 0 Then
lRet = WaitForSingleObject(lHnd, INFINITE)
CloseHandle (lHnd)
End If
End If

So, because of the WaitForSingleObject, one install is executed after the other. As each install starts, I display the name of the install in a text box so that the users can see that things are processing. Some of these installs can take awhile to complete (they are silent), and I would like to give the users a little for information if possible.

I know that I can do a loop with "ret = WaitforSingleObject(lHnd, 10)", but what information can I gather about the process that I can display to the user (cpu time accumulated, or what), so that the user can see that things are processing and not hung? Give an example if you can. Thanks.