Code:
bInjectLibrary(pi.hThread, DllPath.c_str());
// Resume process execution
ResumeThread(pi.hThread);
This is wrong. It should be:
Code:
bInjectLibrary(pi.hProcess, DllPath.c_str());
// Resume process execution
ResumeThread(pi.hProcess);
//Close thread handle
CloseHandle(pi.hThread);
//Close process handle
CloseHandle(pi.hProcess);
I don't know if creating the process suspended might prevent DLL injection from working properly so you might want to take that (and the CloseHandle() and ResumeThread() call with the hThread param) out.