I want to suspend a process for some purpose, but I find it there is no a function name "SuspendProcess". I found a function "SuspendThread" instead.

Then I want to enumerate all threads in the process which I want to suspend. I use these two functions, Thread32First and Thread32Next. Then, I get all thread IDs in the process. MSDN says that the function "OpenThread" would return a thread handle of a specified thread according to its third parameter "dwThreadId
".

I would have thought that this fuction would work properly. But it made me sad. When compiling, VC gave me a message which was " 'OpenThread' : undeclared identifier". So all work I did was obslete.

What I want to ask is:

Is it a right way to suspend a process?
or
Is there any other ways to suspend a process more easily?

By the way, is it necessary to learn VS.NET?
Because I don't like VS.NET, I like VC6.0 more.