You will not be able to write working native methods by "copy and paste programming". You will need to understand what is going on, and code each line carefully.
Have you read the JNI specification? You need to do so. This will answer your questions about what various functions do. If you don't find the specification comprehensible, then you don't have the necessary background to do native method programming, and you'll need to learn more about C code etc.
You CallVoidMethod(), because the return type of the Java method sendArrayResults() is void. Well, it had better be, otherwise your code is wrong.
MonitorEnter() and MonitorExit() do what entering and exiting a synchronized block do in Java. Whether you need to do that, I can't say - it depends on what your Java code and your native code do. [ September 24, 2007: Message edited by: Peter Chase ]
Betty Rubble? Well, I would go with Betty... but I'd be thinking of Wilma.