It's not a matter of you not knowing the API. Nobody has to know it, there's the documentation for that. Using Win32Exception was just a secret hint to one of such APIs to make you life easier, nothing anyone is blaming you for not knowing it. But if you would just read the documentation to ReadProcessMemory on MSDN, you would instantly know to check GetLastError() (if you never really worked with Win32, because if you did, you can't possibly ignore that function...).
When you said you didn't know C# syntax and API and stated in the next sentence that you want to work with Java and JNI, I concluded that it had to be either the syntax of C# which scared you off or you not being able to google for some simple APIs. I decided to go for the first one, silently supposing that you aren't too lazy/stupid to read docs, because there is no other reason (except for the fear of an unknown language) you might stick to Java for bot programming.
Regarding rebasing and stuff: afaik dynamic base relocation was introduced in 3.3.5, so it most possibly affects you. There are plenty of threads regarding that error, you should have wondered why you had to add that offset to the BaseAddress. Offsets most probably assume an image base of 0x400000, which means you have to do
Code:
uint CurrentManager = wow.ReadUInt(wow.ReadUInt(WowBaseAddress + 0x00979CE0) + 0x2ED0);
Edit: And actually I know the stuff you posted... just in case, seems like I'm an experienced programmer because I read the documentation (like you did probably).