Ожидание завершения запущенного процесса С++
Нужно запустить программу из моей программы и дождаться её завершения.
Написал такой код,
HINSTANCE hin;
hin= ShellExecute(0,L"open",L"7z.exe",L"x -y tesr.zip",0,SW_HIDE);
DWORD pro = WaitForSingleObject(hin,INFINITE);
while(pro!=WAIT_OBJECT_0)
{
pro = WaitForSingleObject(hin,INFINITE);
}
Программа не выходит из режима ожидание и зависает.
В чём ошибка или как лучше реализовать данный функционал?