That code wouldn't even compile. You defined the v ariable as FirstProc but then used it as firstProc.
anyway, Steam changes everything. When you launch a steam-managed game by itself it will launch steam telling it to launch itself and exit, so WaitForExit() will return immediately.
I don't get "method or Operation is Not Implemented".