00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _JAVASOFT_JNI_H_
00019 #define _JAVASOFT_JNI_H_
00020
00021 #include <stdio.h>
00022 #include <stdarg.h>
00023
00024
00025
00026
00027 #include "jni_md.h"
00028
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032
00033
00034
00035
00036
00037 #ifndef JNI_TYPES_ALREADY_DEFINED_IN_JNI_MD_H
00038
00039 typedef unsigned char jboolean;
00040 typedef unsigned short jchar;
00041 typedef short jshort;
00042 typedef float jfloat;
00043 typedef double jdouble;
00044
00045 typedef jint jsize;
00046
00047 #ifdef __cplusplus
00048
00049 class _jobject {};
00050 class _jclass : public _jobject {};
00051 class _jthrowable : public _jobject {};
00052 class _jstring : public _jobject {};
00053 class _jarray : public _jobject {};
00054 class _jbooleanArray : public _jarray {};
00055 class _jbyteArray : public _jarray {};
00056 class _jcharArray : public _jarray {};
00057 class _jshortArray : public _jarray {};
00058 class _jintArray : public _jarray {};
00059 class _jlongArray : public _jarray {};
00060 class _jfloatArray : public _jarray {};
00061 class _jdoubleArray : public _jarray {};
00062 class _jobjectArray : public _jarray {};
00063
00064 typedef _jobject *jobject;
00065 typedef _jclass *jclass;
00066 typedef _jthrowable *jthrowable;
00067 typedef _jstring *jstring;
00068 typedef _jarray *jarray;
00069 typedef _jbooleanArray *jbooleanArray;
00070 typedef _jbyteArray *jbyteArray;
00071 typedef _jcharArray *jcharArray;
00072 typedef _jshortArray *jshortArray;
00073 typedef _jintArray *jintArray;
00074 typedef _jlongArray *jlongArray;
00075 typedef _jfloatArray *jfloatArray;
00076 typedef _jdoubleArray *jdoubleArray;
00077 typedef _jobjectArray *jobjectArray;
00078
00079 #else
00080
00081 struct _jobject;
00082
00083 typedef struct _jobject *jobject;
00084 typedef jobject jclass;
00085 typedef jobject jthrowable;
00086 typedef jobject jstring;
00087 typedef jobject jarray;
00088 typedef jarray jbooleanArray;
00089 typedef jarray jbyteArray;
00090 typedef jarray jcharArray;
00091 typedef jarray jshortArray;
00092 typedef jarray jintArray;
00093 typedef jarray jlongArray;
00094 typedef jarray jfloatArray;
00095 typedef jarray jdoubleArray;
00096 typedef jarray jobjectArray;
00097
00098 #endif
00099
00100 typedef jobject jweak;
00101
00102 typedef union jvalue {
00103 jboolean z;
00104 jbyte b;
00105 jchar c;
00106 jshort s;
00107 jint i;
00108 jlong j;
00109 jfloat f;
00110 jdouble d;
00111 jobject l;
00112 } jvalue;
00113
00114 struct _jfieldID;
00115 typedef struct _jfieldID *jfieldID;
00116
00117 struct _jmethodID;
00118 typedef struct _jmethodID *jmethodID;
00119
00120
00121 typedef enum _jobjectType {
00122 JNIInvalidRefType = 0,
00123 JNILocalRefType = 1,
00124 JNIGlobalRefType = 2,
00125 JNIWeakGlobalRefType = 3
00126 } jobjectRefType;
00127
00128
00129 #endif
00130
00131
00132
00133
00134
00135 #define JNI_FALSE 0
00136 #define JNI_TRUE 1
00137
00138
00139
00140
00141
00142 #define JNI_OK 0
00143 #define JNI_ERR (-1)
00144 #define JNI_EDETACHED (-2)
00145 #define JNI_EVERSION (-3)
00146 #define JNI_ENOMEM (-4)
00147 #define JNI_EEXIST (-5)
00148 #define JNI_EINVAL (-6)
00149
00150
00151
00152
00153
00154 #define JNI_COMMIT 1
00155 #define JNI_ABORT 2
00156
00157
00158
00159
00160
00161
00162 typedef struct {
00163 char *name;
00164 char *signature;
00165 void *fnPtr;
00166 } JNINativeMethod;
00167
00168
00169
00170
00171
00172 struct JNINativeInterface_;
00173
00174 struct JNIEnv_;
00175
00176 #ifdef __cplusplus
00177 typedef JNIEnv_ JNIEnv;
00178 #else
00179 typedef const struct JNINativeInterface_ *JNIEnv;
00180 #endif
00181
00182
00183
00184
00185
00186 struct JNIInvokeInterface_;
00187
00188 struct JavaVM_;
00189
00190 #ifdef __cplusplus
00191 typedef JavaVM_ JavaVM;
00192 #else
00193 typedef const struct JNIInvokeInterface_ *JavaVM;
00194 #endif
00195
00196 struct JNINativeInterface_ {
00197 void *reserved0;
00198 void *reserved1;
00199 void *reserved2;
00200
00201 void *reserved3;
00202 jint (JNICALL *GetVersion)(JNIEnv *env);
00203
00204 jclass (JNICALL *DefineClass)
00205 (JNIEnv *env, const char *name, jobject loader, const jbyte *buf,
00206 jsize len);
00207 jclass (JNICALL *FindClass)
00208 (JNIEnv *env, const char *name);
00209
00210 jmethodID (JNICALL *FromReflectedMethod)
00211 (JNIEnv *env, jobject method);
00212 jfieldID (JNICALL *FromReflectedField)
00213 (JNIEnv *env, jobject field);
00214
00215 jobject (JNICALL *ToReflectedMethod)
00216 (JNIEnv *env, jclass cls, jmethodID methodID, jboolean isStatic);
00217
00218 jclass (JNICALL *GetSuperclass)
00219 (JNIEnv *env, jclass sub);
00220 jboolean (JNICALL *IsAssignableFrom)
00221 (JNIEnv *env, jclass sub, jclass sup);
00222
00223 jobject (JNICALL *ToReflectedField)
00224 (JNIEnv *env, jclass cls, jfieldID fieldID, jboolean isStatic);
00225
00226 jint (JNICALL *Throw)
00227 (JNIEnv *env, jthrowable obj);
00228 jint (JNICALL *ThrowNew)
00229 (JNIEnv *env, jclass clazz, const char *msg);
00230 jthrowable (JNICALL *ExceptionOccurred)
00231 (JNIEnv *env);
00232 void (JNICALL *ExceptionDescribe)
00233 (JNIEnv *env);
00234 void (JNICALL *ExceptionClear)
00235 (JNIEnv *env);
00236 void (JNICALL *FatalError)
00237 (JNIEnv *env, const char *msg);
00238
00239 jint (JNICALL *PushLocalFrame)
00240 (JNIEnv *env, jint capacity);
00241 jobject (JNICALL *PopLocalFrame)
00242 (JNIEnv *env, jobject result);
00243
00244 jobject (JNICALL *NewGlobalRef)
00245 (JNIEnv *env, jobject lobj);
00246 void (JNICALL *DeleteGlobalRef)
00247 (JNIEnv *env, jobject gref);
00248 void (JNICALL *DeleteLocalRef)
00249 (JNIEnv *env, jobject obj);
00250 jboolean (JNICALL *IsSameObject)
00251 (JNIEnv *env, jobject obj1, jobject obj2);
00252 jobject (JNICALL *NewLocalRef)
00253 (JNIEnv *env, jobject ref);
00254 jint (JNICALL *EnsureLocalCapacity)
00255 (JNIEnv *env, jint capacity);
00256
00257 jobject (JNICALL *AllocObject)
00258 (JNIEnv *env, jclass clazz);
00259 jobject (JNICALL *NewObject)
00260 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00261 jobject (JNICALL *NewObjectV)
00262 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00263 jobject (JNICALL *NewObjectA)
00264 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
00265
00266 jclass (JNICALL *GetObjectClass)
00267 (JNIEnv *env, jobject obj);
00268 jboolean (JNICALL *IsInstanceOf)
00269 (JNIEnv *env, jobject obj, jclass clazz);
00270
00271 jmethodID (JNICALL *GetMethodID)
00272 (JNIEnv *env, jclass clazz, const char *name, const char *sig);
00273
00274 jobject (JNICALL *CallObjectMethod)
00275 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00276 jobject (JNICALL *CallObjectMethodV)
00277 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00278 jobject (JNICALL *CallObjectMethodA)
00279 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args);
00280
00281 jboolean (JNICALL *CallBooleanMethod)
00282 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00283 jboolean (JNICALL *CallBooleanMethodV)
00284 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00285 jboolean (JNICALL *CallBooleanMethodA)
00286 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args);
00287
00288 jbyte (JNICALL *CallByteMethod)
00289 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00290 jbyte (JNICALL *CallByteMethodV)
00291 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00292 jbyte (JNICALL *CallByteMethodA)
00293 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
00294
00295 jchar (JNICALL *CallCharMethod)
00296 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00297 jchar (JNICALL *CallCharMethodV)
00298 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00299 jchar (JNICALL *CallCharMethodA)
00300 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
00301
00302 jshort (JNICALL *CallShortMethod)
00303 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00304 jshort (JNICALL *CallShortMethodV)
00305 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00306 jshort (JNICALL *CallShortMethodA)
00307 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
00308
00309 jint (JNICALL *CallIntMethod)
00310 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00311 jint (JNICALL *CallIntMethodV)
00312 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00313 jint (JNICALL *CallIntMethodA)
00314 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
00315
00316 jlong (JNICALL *CallLongMethod)
00317 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00318 jlong (JNICALL *CallLongMethodV)
00319 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00320 jlong (JNICALL *CallLongMethodA)
00321 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
00322
00323 jfloat (JNICALL *CallFloatMethod)
00324 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00325 jfloat (JNICALL *CallFloatMethodV)
00326 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00327 jfloat (JNICALL *CallFloatMethodA)
00328 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
00329
00330 jdouble (JNICALL *CallDoubleMethod)
00331 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00332 jdouble (JNICALL *CallDoubleMethodV)
00333 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00334 jdouble (JNICALL *CallDoubleMethodA)
00335 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args);
00336
00337 void (JNICALL *CallVoidMethod)
00338 (JNIEnv *env, jobject obj, jmethodID methodID, ...);
00339 void (JNICALL *CallVoidMethodV)
00340 (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
00341 void (JNICALL *CallVoidMethodA)
00342 (JNIEnv *env, jobject obj, jmethodID methodID, const jvalue * args);
00343
00344 jobject (JNICALL *CallNonvirtualObjectMethod)
00345 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00346 jobject (JNICALL *CallNonvirtualObjectMethodV)
00347 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00348 va_list args);
00349 jobject (JNICALL *CallNonvirtualObjectMethodA)
00350 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00351 const jvalue * args);
00352
00353 jboolean (JNICALL *CallNonvirtualBooleanMethod)
00354 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00355 jboolean (JNICALL *CallNonvirtualBooleanMethodV)
00356 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00357 va_list args);
00358 jboolean (JNICALL *CallNonvirtualBooleanMethodA)
00359 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00360 const jvalue * args);
00361
00362 jbyte (JNICALL *CallNonvirtualByteMethod)
00363 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00364 jbyte (JNICALL *CallNonvirtualByteMethodV)
00365 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00366 va_list args);
00367 jbyte (JNICALL *CallNonvirtualByteMethodA)
00368 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00369 const jvalue *args);
00370
00371 jchar (JNICALL *CallNonvirtualCharMethod)
00372 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00373 jchar (JNICALL *CallNonvirtualCharMethodV)
00374 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00375 va_list args);
00376 jchar (JNICALL *CallNonvirtualCharMethodA)
00377 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00378 const jvalue *args);
00379
00380 jshort (JNICALL *CallNonvirtualShortMethod)
00381 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00382 jshort (JNICALL *CallNonvirtualShortMethodV)
00383 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00384 va_list args);
00385 jshort (JNICALL *CallNonvirtualShortMethodA)
00386 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00387 const jvalue *args);
00388
00389 jint (JNICALL *CallNonvirtualIntMethod)
00390 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00391 jint (JNICALL *CallNonvirtualIntMethodV)
00392 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00393 va_list args);
00394 jint (JNICALL *CallNonvirtualIntMethodA)
00395 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00396 const jvalue *args);
00397
00398 jlong (JNICALL *CallNonvirtualLongMethod)
00399 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00400 jlong (JNICALL *CallNonvirtualLongMethodV)
00401 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00402 va_list args);
00403 jlong (JNICALL *CallNonvirtualLongMethodA)
00404 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00405 const jvalue *args);
00406
00407 jfloat (JNICALL *CallNonvirtualFloatMethod)
00408 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00409 jfloat (JNICALL *CallNonvirtualFloatMethodV)
00410 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00411 va_list args);
00412 jfloat (JNICALL *CallNonvirtualFloatMethodA)
00413 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00414 const jvalue *args);
00415
00416 jdouble (JNICALL *CallNonvirtualDoubleMethod)
00417 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00418 jdouble (JNICALL *CallNonvirtualDoubleMethodV)
00419 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00420 va_list args);
00421 jdouble (JNICALL *CallNonvirtualDoubleMethodA)
00422 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00423 const jvalue *args);
00424
00425 void (JNICALL *CallNonvirtualVoidMethod)
00426 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
00427 void (JNICALL *CallNonvirtualVoidMethodV)
00428 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00429 va_list args);
00430 void (JNICALL *CallNonvirtualVoidMethodA)
00431 (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
00432 const jvalue * args);
00433
00434 jfieldID (JNICALL *GetFieldID)
00435 (JNIEnv *env, jclass clazz, const char *name, const char *sig);
00436
00437 jobject (JNICALL *GetObjectField)
00438 (JNIEnv *env, jobject obj, jfieldID fieldID);
00439 jboolean (JNICALL *GetBooleanField)
00440 (JNIEnv *env, jobject obj, jfieldID fieldID);
00441 jbyte (JNICALL *GetByteField)
00442 (JNIEnv *env, jobject obj, jfieldID fieldID);
00443 jchar (JNICALL *GetCharField)
00444 (JNIEnv *env, jobject obj, jfieldID fieldID);
00445 jshort (JNICALL *GetShortField)
00446 (JNIEnv *env, jobject obj, jfieldID fieldID);
00447 jint (JNICALL *GetIntField)
00448 (JNIEnv *env, jobject obj, jfieldID fieldID);
00449 jlong (JNICALL *GetLongField)
00450 (JNIEnv *env, jobject obj, jfieldID fieldID);
00451 jfloat (JNICALL *GetFloatField)
00452 (JNIEnv *env, jobject obj, jfieldID fieldID);
00453 jdouble (JNICALL *GetDoubleField)
00454 (JNIEnv *env, jobject obj, jfieldID fieldID);
00455
00456 void (JNICALL *SetObjectField)
00457 (JNIEnv *env, jobject obj, jfieldID fieldID, jobject val);
00458 void (JNICALL *SetBooleanField)
00459 (JNIEnv *env, jobject obj, jfieldID fieldID, jboolean val);
00460 void (JNICALL *SetByteField)
00461 (JNIEnv *env, jobject obj, jfieldID fieldID, jbyte val);
00462 void (JNICALL *SetCharField)
00463 (JNIEnv *env, jobject obj, jfieldID fieldID, jchar val);
00464 void (JNICALL *SetShortField)
00465 (JNIEnv *env, jobject obj, jfieldID fieldID, jshort val);
00466 void (JNICALL *SetIntField)
00467 (JNIEnv *env, jobject obj, jfieldID fieldID, jint val);
00468 void (JNICALL *SetLongField)
00469 (JNIEnv *env, jobject obj, jfieldID fieldID, jlong val);
00470 void (JNICALL *SetFloatField)
00471 (JNIEnv *env, jobject obj, jfieldID fieldID, jfloat val);
00472 void (JNICALL *SetDoubleField)
00473 (JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val);
00474
00475 jmethodID (JNICALL *GetStaticMethodID)
00476 (JNIEnv *env, jclass clazz, const char *name, const char *sig);
00477
00478 jobject (JNICALL *CallStaticObjectMethod)
00479 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00480 jobject (JNICALL *CallStaticObjectMethodV)
00481 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00482 jobject (JNICALL *CallStaticObjectMethodA)
00483 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
00484
00485 jboolean (JNICALL *CallStaticBooleanMethod)
00486 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00487 jboolean (JNICALL *CallStaticBooleanMethodV)
00488 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00489 jboolean (JNICALL *CallStaticBooleanMethodA)
00490 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
00491
00492 jbyte (JNICALL *CallStaticByteMethod)
00493 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00494 jbyte (JNICALL *CallStaticByteMethodV)
00495 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00496 jbyte (JNICALL *CallStaticByteMethodA)
00497 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
00498
00499 jchar (JNICALL *CallStaticCharMethod)
00500 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00501 jchar (JNICALL *CallStaticCharMethodV)
00502 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00503 jchar (JNICALL *CallStaticCharMethodA)
00504 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
00505
00506 jshort (JNICALL *CallStaticShortMethod)
00507 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00508 jshort (JNICALL *CallStaticShortMethodV)
00509 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00510 jshort (JNICALL *CallStaticShortMethodA)
00511 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
00512
00513 jint (JNICALL *CallStaticIntMethod)
00514 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00515 jint (JNICALL *CallStaticIntMethodV)
00516 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00517 jint (JNICALL *CallStaticIntMethodA)
00518 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
00519
00520 jlong (JNICALL *CallStaticLongMethod)
00521 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00522 jlong (JNICALL *CallStaticLongMethodV)
00523 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00524 jlong (JNICALL *CallStaticLongMethodA)
00525 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
00526
00527 jfloat (JNICALL *CallStaticFloatMethod)
00528 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00529 jfloat (JNICALL *CallStaticFloatMethodV)
00530 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00531 jfloat (JNICALL *CallStaticFloatMethodA)
00532 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
00533
00534 jdouble (JNICALL *CallStaticDoubleMethod)
00535 (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
00536 jdouble (JNICALL *CallStaticDoubleMethodV)
00537 (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
00538 jdouble (JNICALL *CallStaticDoubleMethodA)
00539 (JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args);
00540
00541 void (JNICALL *CallStaticVoidMethod)
00542 (JNIEnv *env, jclass cls, jmethodID methodID, ...);
00543 void (JNICALL *CallStaticVoidMethodV)
00544 (JNIEnv *env, jclass cls, jmethodID methodID, va_list args);
00545 void (JNICALL *CallStaticVoidMethodA)
00546 (JNIEnv *env, jclass cls, jmethodID methodID, const jvalue * args);
00547
00548 jfieldID (JNICALL *GetStaticFieldID)
00549 (JNIEnv *env, jclass clazz, const char *name, const char *sig);
00550 jobject (JNICALL *GetStaticObjectField)
00551 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00552 jboolean (JNICALL *GetStaticBooleanField)
00553 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00554 jbyte (JNICALL *GetStaticByteField)
00555 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00556 jchar (JNICALL *GetStaticCharField)
00557 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00558 jshort (JNICALL *GetStaticShortField)
00559 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00560 jint (JNICALL *GetStaticIntField)
00561 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00562 jlong (JNICALL *GetStaticLongField)
00563 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00564 jfloat (JNICALL *GetStaticFloatField)
00565 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00566 jdouble (JNICALL *GetStaticDoubleField)
00567 (JNIEnv *env, jclass clazz, jfieldID fieldID);
00568
00569 void (JNICALL *SetStaticObjectField)
00570 (JNIEnv *env, jclass clazz, jfieldID fieldID, jobject value);
00571 void (JNICALL *SetStaticBooleanField)
00572 (JNIEnv *env, jclass clazz, jfieldID fieldID, jboolean value);
00573 void (JNICALL *SetStaticByteField)
00574 (JNIEnv *env, jclass clazz, jfieldID fieldID, jbyte value);
00575 void (JNICALL *SetStaticCharField)
00576 (JNIEnv *env, jclass clazz, jfieldID fieldID, jchar value);
00577 void (JNICALL *SetStaticShortField)
00578 (JNIEnv *env, jclass clazz, jfieldID fieldID, jshort value);
00579 void (JNICALL *SetStaticIntField)
00580 (JNIEnv *env, jclass clazz, jfieldID fieldID, jint value);
00581 void (JNICALL *SetStaticLongField)
00582 (JNIEnv *env, jclass clazz, jfieldID fieldID, jlong value);
00583 void (JNICALL *SetStaticFloatField)
00584 (JNIEnv *env, jclass clazz, jfieldID fieldID, jfloat value);
00585 void (JNICALL *SetStaticDoubleField)
00586 (JNIEnv *env, jclass clazz, jfieldID fieldID, jdouble value);
00587
00588 jstring (JNICALL *NewString)
00589 (JNIEnv *env, const jchar *unicode, jsize len);
00590 jsize (JNICALL *GetStringLength)
00591 (JNIEnv *env, jstring str);
00592 const jchar *(JNICALL *GetStringChars)
00593 (JNIEnv *env, jstring str, jboolean *isCopy);
00594 void (JNICALL *ReleaseStringChars)
00595 (JNIEnv *env, jstring str, const jchar *chars);
00596
00597 jstring (JNICALL *NewStringUTF)
00598 (JNIEnv *env, const char *utf);
00599 jsize (JNICALL *GetStringUTFLength)
00600 (JNIEnv *env, jstring str);
00601 const char* (JNICALL *GetStringUTFChars)
00602 (JNIEnv *env, jstring str, jboolean *isCopy);
00603 void (JNICALL *ReleaseStringUTFChars)
00604 (JNIEnv *env, jstring str, const char* chars);
00605
00606
00607 jsize (JNICALL *GetArrayLength)
00608 (JNIEnv *env, jarray array);
00609
00610 jobjectArray (JNICALL *NewObjectArray)
00611 (JNIEnv *env, jsize len, jclass clazz, jobject init);
00612 jobject (JNICALL *GetObjectArrayElement)
00613 (JNIEnv *env, jobjectArray array, jsize index);
00614 void (JNICALL *SetObjectArrayElement)
00615 (JNIEnv *env, jobjectArray array, jsize index, jobject val);
00616
00617 jbooleanArray (JNICALL *NewBooleanArray)
00618 (JNIEnv *env, jsize len);
00619 jbyteArray (JNICALL *NewByteArray)
00620 (JNIEnv *env, jsize len);
00621 jcharArray (JNICALL *NewCharArray)
00622 (JNIEnv *env, jsize len);
00623 jshortArray (JNICALL *NewShortArray)
00624 (JNIEnv *env, jsize len);
00625 jintArray (JNICALL *NewIntArray)
00626 (JNIEnv *env, jsize len);
00627 jlongArray (JNICALL *NewLongArray)
00628 (JNIEnv *env, jsize len);
00629 jfloatArray (JNICALL *NewFloatArray)
00630 (JNIEnv *env, jsize len);
00631 jdoubleArray (JNICALL *NewDoubleArray)
00632 (JNIEnv *env, jsize len);
00633
00634 jboolean * (JNICALL *GetBooleanArrayElements)
00635 (JNIEnv *env, jbooleanArray array, jboolean *isCopy);
00636 jbyte * (JNICALL *GetByteArrayElements)
00637 (JNIEnv *env, jbyteArray array, jboolean *isCopy);
00638 jchar * (JNICALL *GetCharArrayElements)
00639 (JNIEnv *env, jcharArray array, jboolean *isCopy);
00640 jshort * (JNICALL *GetShortArrayElements)
00641 (JNIEnv *env, jshortArray array, jboolean *isCopy);
00642 jint * (JNICALL *GetIntArrayElements)
00643 (JNIEnv *env, jintArray array, jboolean *isCopy);
00644 jlong * (JNICALL *GetLongArrayElements)
00645 (JNIEnv *env, jlongArray array, jboolean *isCopy);
00646 jfloat * (JNICALL *GetFloatArrayElements)
00647 (JNIEnv *env, jfloatArray array, jboolean *isCopy);
00648 jdouble * (JNICALL *GetDoubleArrayElements)
00649 (JNIEnv *env, jdoubleArray array, jboolean *isCopy);
00650
00651 void (JNICALL *ReleaseBooleanArrayElements)
00652 (JNIEnv *env, jbooleanArray array, jboolean *elems, jint mode);
00653 void (JNICALL *ReleaseByteArrayElements)
00654 (JNIEnv *env, jbyteArray array, jbyte *elems, jint mode);
00655 void (JNICALL *ReleaseCharArrayElements)
00656 (JNIEnv *env, jcharArray array, jchar *elems, jint mode);
00657 void (JNICALL *ReleaseShortArrayElements)
00658 (JNIEnv *env, jshortArray array, jshort *elems, jint mode);
00659 void (JNICALL *ReleaseIntArrayElements)
00660 (JNIEnv *env, jintArray array, jint *elems, jint mode);
00661 void (JNICALL *ReleaseLongArrayElements)
00662 (JNIEnv *env, jlongArray array, jlong *elems, jint mode);
00663 void (JNICALL *ReleaseFloatArrayElements)
00664 (JNIEnv *env, jfloatArray array, jfloat *elems, jint mode);
00665 void (JNICALL *ReleaseDoubleArrayElements)
00666 (JNIEnv *env, jdoubleArray array, jdouble *elems, jint mode);
00667
00668 void (JNICALL *GetBooleanArrayRegion)
00669 (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
00670 void (JNICALL *GetByteArrayRegion)
00671 (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
00672 void (JNICALL *GetCharArrayRegion)
00673 (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
00674 void (JNICALL *GetShortArrayRegion)
00675 (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
00676 void (JNICALL *GetIntArrayRegion)
00677 (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
00678 void (JNICALL *GetLongArrayRegion)
00679 (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
00680 void (JNICALL *GetFloatArrayRegion)
00681 (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
00682 void (JNICALL *GetDoubleArrayRegion)
00683 (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
00684
00685 void (JNICALL *SetBooleanArrayRegion)
00686 (JNIEnv *env, jbooleanArray array, jsize start, jsize l, const jboolean *buf);
00687 void (JNICALL *SetByteArrayRegion)
00688 (JNIEnv *env, jbyteArray array, jsize start, jsize len, const jbyte *buf);
00689 void (JNICALL *SetCharArrayRegion)
00690 (JNIEnv *env, jcharArray array, jsize start, jsize len, const jchar *buf);
00691 void (JNICALL *SetShortArrayRegion)
00692 (JNIEnv *env, jshortArray array, jsize start, jsize len, const jshort *buf);
00693 void (JNICALL *SetIntArrayRegion)
00694 (JNIEnv *env, jintArray array, jsize start, jsize len, const jint *buf);
00695 void (JNICALL *SetLongArrayRegion)
00696 (JNIEnv *env, jlongArray array, jsize start, jsize len, const jlong *buf);
00697 void (JNICALL *SetFloatArrayRegion)
00698 (JNIEnv *env, jfloatArray array, jsize start, jsize len, const jfloat *buf);
00699 void (JNICALL *SetDoubleArrayRegion)
00700 (JNIEnv *env, jdoubleArray array, jsize start, jsize len, const jdouble *buf);
00701
00702 jint (JNICALL *RegisterNatives)
00703 (JNIEnv *env, jclass clazz, const JNINativeMethod *methods,
00704 jint nMethods);
00705 jint (JNICALL *UnregisterNatives)
00706 (JNIEnv *env, jclass clazz);
00707
00708 jint (JNICALL *MonitorEnter)
00709 (JNIEnv *env, jobject obj);
00710 jint (JNICALL *MonitorExit)
00711 (JNIEnv *env, jobject obj);
00712
00713 jint (JNICALL *GetJavaVM)
00714 (JNIEnv *env, JavaVM **vm);
00715
00716 void (JNICALL *GetStringRegion)
00717 (JNIEnv *env, jstring str, jsize start, jsize len, jchar *buf);
00718 void (JNICALL *GetStringUTFRegion)
00719 (JNIEnv *env, jstring str, jsize start, jsize len, char *buf);
00720
00721 void * (JNICALL *GetPrimitiveArrayCritical)
00722 (JNIEnv *env, jarray array, jboolean *isCopy);
00723 void (JNICALL *ReleasePrimitiveArrayCritical)
00724 (JNIEnv *env, jarray array, void *carray, jint mode);
00725
00726 const jchar * (JNICALL *GetStringCritical)
00727 (JNIEnv *env, jstring string, jboolean *isCopy);
00728 void (JNICALL *ReleaseStringCritical)
00729 (JNIEnv *env, jstring string, const jchar *cstring);
00730
00731 jweak (JNICALL *NewWeakGlobalRef)
00732 (JNIEnv *env, jobject obj);
00733 void (JNICALL *DeleteWeakGlobalRef)
00734 (JNIEnv *env, jweak ref);
00735
00736 jboolean (JNICALL *ExceptionCheck)
00737 (JNIEnv *env);
00738
00739 jobject (JNICALL *NewDirectByteBuffer)
00740 (JNIEnv* env, void* address, jlong capacity);
00741 void* (JNICALL *GetDirectBufferAddress)
00742 (JNIEnv* env, jobject buf);
00743 jlong (JNICALL *GetDirectBufferCapacity)
00744 (JNIEnv* env, jobject buf);
00745
00746
00747
00748 jobjectRefType (JNICALL *GetObjectRefType)
00749 (JNIEnv* env, jobject obj);
00750 };
00751
00752
00753
00754
00755
00756
00757
00758
00759
00760
00761
00762
00763
00764 struct JNIEnv_ {
00765 const struct JNINativeInterface_ *functions;
00766 #ifdef __cplusplus
00767
00768 jint GetVersion() {
00769 return functions->GetVersion(this);
00770 }
00771 jclass DefineClass(const char *name, jobject loader, const jbyte *buf,
00772 jsize len) {
00773 return functions->DefineClass(this, name, loader, buf, len);
00774 }
00775 jclass FindClass(const char *name) {
00776 return functions->FindClass(this, name);
00777 }
00778 jmethodID FromReflectedMethod(jobject method) {
00779 return functions->FromReflectedMethod(this,method);
00780 }
00781 jfieldID FromReflectedField(jobject field) {
00782 return functions->FromReflectedField(this,field);
00783 }
00784
00785 jobject ToReflectedMethod(jclass cls, jmethodID methodID, jboolean isStatic) {
00786 return functions->ToReflectedMethod(this, cls, methodID, isStatic);
00787 }
00788
00789 jclass GetSuperclass(jclass sub) {
00790 return functions->GetSuperclass(this, sub);
00791 }
00792 jboolean IsAssignableFrom(jclass sub, jclass sup) {
00793 return functions->IsAssignableFrom(this, sub, sup);
00794 }
00795
00796 jobject ToReflectedField(jclass cls, jfieldID fieldID, jboolean isStatic) {
00797 return functions->ToReflectedField(this,cls,fieldID,isStatic);
00798 }
00799
00800 jint Throw(jthrowable obj) {
00801 return functions->Throw(this, obj);
00802 }
00803 jint ThrowNew(jclass clazz, const char *msg) {
00804 return functions->ThrowNew(this, clazz, msg);
00805 }
00806 jthrowable ExceptionOccurred() {
00807 return functions->ExceptionOccurred(this);
00808 }
00809 void ExceptionDescribe() {
00810 functions->ExceptionDescribe(this);
00811 }
00812 void ExceptionClear() {
00813 functions->ExceptionClear(this);
00814 }
00815 void FatalError(const char *msg) {
00816 functions->FatalError(this, msg);
00817 }
00818
00819 jint PushLocalFrame(jint capacity) {
00820 return functions->PushLocalFrame(this,capacity);
00821 }
00822 jobject PopLocalFrame(jobject result) {
00823 return functions->PopLocalFrame(this,result);
00824 }
00825
00826 jobject NewGlobalRef(jobject lobj) {
00827 return functions->NewGlobalRef(this,lobj);
00828 }
00829 void DeleteGlobalRef(jobject gref) {
00830 functions->DeleteGlobalRef(this,gref);
00831 }
00832 void DeleteLocalRef(jobject obj) {
00833 functions->DeleteLocalRef(this, obj);
00834 }
00835
00836 jboolean IsSameObject(jobject obj1, jobject obj2) {
00837 return functions->IsSameObject(this,obj1,obj2);
00838 }
00839
00840 jobject NewLocalRef(jobject ref) {
00841 return functions->NewLocalRef(this,ref);
00842 }
00843 jint EnsureLocalCapacity(jint capacity) {
00844 return functions->EnsureLocalCapacity(this,capacity);
00845 }
00846
00847 jobject AllocObject(jclass clazz) {
00848 return functions->AllocObject(this,clazz);
00849 }
00850 jobject NewObject(jclass clazz, jmethodID methodID, ...) {
00851 va_list args;
00852 jobject result;
00853 va_start(args, methodID);
00854 result = functions->NewObjectV(this,clazz,methodID,args);
00855 va_end(args);
00856 return result;
00857 }
00858 jobject NewObjectV(jclass clazz, jmethodID methodID,
00859 va_list args) {
00860 return functions->NewObjectV(this,clazz,methodID,args);
00861 }
00862 jobject NewObjectA(jclass clazz, jmethodID methodID,
00863 const jvalue *args) {
00864 return functions->NewObjectA(this,clazz,methodID,args);
00865 }
00866
00867 jclass GetObjectClass(jobject obj) {
00868 return functions->GetObjectClass(this,obj);
00869 }
00870 jboolean IsInstanceOf(jobject obj, jclass clazz) {
00871 return functions->IsInstanceOf(this,obj,clazz);
00872 }
00873
00874 jmethodID GetMethodID(jclass clazz, const char *name,
00875 const char *sig) {
00876 return functions->GetMethodID(this,clazz,name,sig);
00877 }
00878
00879 jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) {
00880 va_list args;
00881 jobject result;
00882 va_start(args,methodID);
00883 result = functions->CallObjectMethodV(this,obj,methodID,args);
00884 va_end(args);
00885 return result;
00886 }
00887 jobject CallObjectMethodV(jobject obj, jmethodID methodID,
00888 va_list args) {
00889 return functions->CallObjectMethodV(this,obj,methodID,args);
00890 }
00891 jobject CallObjectMethodA(jobject obj, jmethodID methodID,
00892 const jvalue * args) {
00893 return functions->CallObjectMethodA(this,obj,methodID,args);
00894 }
00895
00896 jboolean CallBooleanMethod(jobject obj,
00897 jmethodID methodID, ...) {
00898 va_list args;
00899 jboolean result;
00900 va_start(args,methodID);
00901 result = functions->CallBooleanMethodV(this,obj,methodID,args);
00902 va_end(args);
00903 return result;
00904 }
00905 jboolean CallBooleanMethodV(jobject obj, jmethodID methodID,
00906 va_list args) {
00907 return functions->CallBooleanMethodV(this,obj,methodID,args);
00908 }
00909 jboolean CallBooleanMethodA(jobject obj, jmethodID methodID,
00910 const jvalue * args) {
00911 return functions->CallBooleanMethodA(this,obj,methodID, args);
00912 }
00913
00914 jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) {
00915 va_list args;
00916 jbyte result;
00917 va_start(args,methodID);
00918 result = functions->CallByteMethodV(this,obj,methodID,args);
00919 va_end(args);
00920 return result;
00921 }
00922 jbyte CallByteMethodV(jobject obj, jmethodID methodID,
00923 va_list args) {
00924 return functions->CallByteMethodV(this,obj,methodID,args);
00925 }
00926 jbyte CallByteMethodA(jobject obj, jmethodID methodID,
00927 const jvalue * args) {
00928 return functions->CallByteMethodA(this,obj,methodID,args);
00929 }
00930
00931 jchar CallCharMethod(jobject obj, jmethodID methodID, ...) {
00932 va_list args;
00933 jchar result;
00934 va_start(args,methodID);
00935 result = functions->CallCharMethodV(this,obj,methodID,args);
00936 va_end(args);
00937 return result;
00938 }
00939 jchar CallCharMethodV(jobject obj, jmethodID methodID,
00940 va_list args) {
00941 return functions->CallCharMethodV(this,obj,methodID,args);
00942 }
00943 jchar CallCharMethodA(jobject obj, jmethodID methodID,
00944 const jvalue * args) {
00945 return functions->CallCharMethodA(this,obj,methodID,args);
00946 }
00947
00948 jshort CallShortMethod(jobject obj, jmethodID methodID, ...) {
00949 va_list args;
00950 jshort result;
00951 va_start(args,methodID);
00952 result = functions->CallShortMethodV(this,obj,methodID,args);
00953 va_end(args);
00954 return result;
00955 }
00956 jshort CallShortMethodV(jobject obj, jmethodID methodID,
00957 va_list args) {
00958 return functions->CallShortMethodV(this,obj,methodID,args);
00959 }
00960 jshort CallShortMethodA(jobject obj, jmethodID methodID,
00961 const jvalue * args) {
00962 return functions->CallShortMethodA(this,obj,methodID,args);
00963 }
00964
00965 jint CallIntMethod(jobject obj, jmethodID methodID, ...) {
00966 va_list args;
00967 jint result;
00968 va_start(args,methodID);
00969 result = functions->CallIntMethodV(this,obj,methodID,args);
00970 va_end(args);
00971 return result;
00972 }
00973 jint CallIntMethodV(jobject obj, jmethodID methodID,
00974 va_list args) {
00975 return functions->CallIntMethodV(this,obj,methodID,args);
00976 }
00977 jint CallIntMethodA(jobject obj, jmethodID methodID,
00978 const jvalue * args) {
00979 return functions->CallIntMethodA(this,obj,methodID,args);
00980 }
00981
00982 jlong CallLongMethod(jobject obj, jmethodID methodID, ...) {
00983 va_list args;
00984 jlong result;
00985 va_start(args,methodID);
00986 result = functions->CallLongMethodV(this,obj,methodID,args);
00987 va_end(args);
00988 return result;
00989 }
00990 jlong CallLongMethodV(jobject obj, jmethodID methodID,
00991 va_list args) {
00992 return functions->CallLongMethodV(this,obj,methodID,args);
00993 }
00994 jlong CallLongMethodA(jobject obj, jmethodID methodID,
00995 const jvalue * args) {
00996 return functions->CallLongMethodA(this,obj,methodID,args);
00997 }
00998
00999 jfloat CallFloatMethod(jobject obj, jmethodID methodID, ...) {
01000 va_list args;
01001 jfloat result;
01002 va_start(args,methodID);
01003 result = functions->CallFloatMethodV(this,obj,methodID,args);
01004 va_end(args);
01005 return result;
01006 }
01007 jfloat CallFloatMethodV(jobject obj, jmethodID methodID,
01008 va_list args) {
01009 return functions->CallFloatMethodV(this,obj,methodID,args);
01010 }
01011 jfloat CallFloatMethodA(jobject obj, jmethodID methodID,
01012 const jvalue * args) {
01013 return functions->CallFloatMethodA(this,obj,methodID,args);
01014 }
01015
01016 jdouble CallDoubleMethod(jobject obj, jmethodID methodID, ...) {
01017 va_list args;
01018 jdouble result;
01019 va_start(args,methodID);
01020 result = functions->CallDoubleMethodV(this,obj,methodID,args);
01021 va_end(args);
01022 return result;
01023 }
01024 jdouble CallDoubleMethodV(jobject obj, jmethodID methodID,
01025 va_list args) {
01026 return functions->CallDoubleMethodV(this,obj,methodID,args);
01027 }
01028 jdouble CallDoubleMethodA(jobject obj, jmethodID methodID,
01029 const jvalue * args) {
01030 return functions->CallDoubleMethodA(this,obj,methodID,args);
01031 }
01032
01033 void CallVoidMethod(jobject obj, jmethodID methodID, ...) {
01034 va_list args;
01035 va_start(args,methodID);
01036 functions->CallVoidMethodV(this,obj,methodID,args);
01037 va_end(args);
01038 }
01039 void CallVoidMethodV(jobject obj, jmethodID methodID,
01040 va_list args) {
01041 functions->CallVoidMethodV(this,obj,methodID,args);
01042 }
01043 void CallVoidMethodA(jobject obj, jmethodID methodID,
01044 const jvalue * args) {
01045 functions->CallVoidMethodA(this,obj,methodID,args);
01046 }
01047
01048 jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz,
01049 jmethodID methodID, ...) {
01050 va_list args;
01051 jobject result;
01052 va_start(args,methodID);
01053 result = functions->CallNonvirtualObjectMethodV(this,obj,clazz,
01054 methodID,args);
01055 va_end(args);
01056 return result;
01057 }
01058 jobject CallNonvirtualObjectMethodV(jobject obj, jclass clazz,
01059 jmethodID methodID, va_list args) {
01060 return functions->CallNonvirtualObjectMethodV(this,obj,clazz,
01061 methodID,args);
01062 }
01063 jobject CallNonvirtualObjectMethodA(jobject obj, jclass clazz,
01064 jmethodID methodID, const jvalue * args) {
01065 return functions->CallNonvirtualObjectMethodA(this,obj,clazz,
01066 methodID,args);
01067 }
01068
01069 jboolean CallNonvirtualBooleanMethod(jobject obj, jclass clazz,
01070 jmethodID methodID, ...) {
01071 va_list args;
01072 jboolean result;
01073 va_start(args,methodID);
01074 result = functions->CallNonvirtualBooleanMethodV(this,obj,clazz,
01075 methodID,args);
01076 va_end(args);
01077 return result;
01078 }
01079 jboolean CallNonvirtualBooleanMethodV(jobject obj, jclass clazz,
01080 jmethodID methodID, va_list args) {
01081 return functions->CallNonvirtualBooleanMethodV(this,obj,clazz,
01082 methodID,args);
01083 }
01084 jboolean CallNonvirtualBooleanMethodA(jobject obj, jclass clazz,
01085 jmethodID methodID, const jvalue * args) {
01086 return functions->CallNonvirtualBooleanMethodA(this,obj,clazz,
01087 methodID, args);
01088 }
01089
01090 jbyte CallNonvirtualByteMethod(jobject obj, jclass clazz,
01091 jmethodID methodID, ...) {
01092 va_list args;
01093 jbyte result;
01094 va_start(args,methodID);
01095 result = functions->CallNonvirtualByteMethodV(this,obj,clazz,
01096 methodID,args);
01097 va_end(args);
01098 return result;
01099 }
01100 jbyte CallNonvirtualByteMethodV(jobject obj, jclass clazz,
01101 jmethodID methodID, va_list args) {
01102 return functions->CallNonvirtualByteMethodV(this,obj,clazz,
01103 methodID,args);
01104 }
01105 jbyte CallNonvirtualByteMethodA(jobject obj, jclass clazz,
01106 jmethodID methodID, const jvalue * args) {
01107 return functions->CallNonvirtualByteMethodA(this,obj,clazz,
01108 methodID,args);
01109 }
01110
01111 jchar CallNonvirtualCharMethod(jobject obj, jclass clazz,
01112 jmethodID methodID, ...) {
01113 va_list args;
01114 jchar result;
01115 va_start(args,methodID);
01116 result = functions->CallNonvirtualCharMethodV(this,obj,clazz,
01117 methodID,args);
01118 va_end(args);
01119 return result;
01120 }
01121 jchar CallNonvirtualCharMethodV(jobject obj, jclass clazz,
01122 jmethodID methodID, va_list args) {
01123 return functions->CallNonvirtualCharMethodV(this,obj,clazz,
01124 methodID,args);
01125 }
01126 jchar CallNonvirtualCharMethodA(jobject obj, jclass clazz,
01127 jmethodID methodID, const jvalue * args) {
01128 return functions->CallNonvirtualCharMethodA(this,obj,clazz,
01129 methodID,args);
01130 }
01131
01132 jshort CallNonvirtualShortMethod(jobject obj, jclass clazz,
01133 jmethodID methodID, ...) {
01134 va_list args;
01135 jshort result;
01136 va_start(args,methodID);
01137 result = functions->CallNonvirtualShortMethodV(this,obj,clazz,
01138 methodID,args);
01139 va_end(args);
01140 return result;
01141 }
01142 jshort CallNonvirtualShortMethodV(jobject obj, jclass clazz,
01143 jmethodID methodID, va_list args) {
01144 return functions->CallNonvirtualShortMethodV(this,obj,clazz,
01145 methodID,args);
01146 }
01147 jshort CallNonvirtualShortMethodA(jobject obj, jclass clazz,
01148 jmethodID methodID, const jvalue * args) {
01149 return functions->CallNonvirtualShortMethodA(this,obj,clazz,
01150 methodID,args);
01151 }
01152
01153 jint CallNonvirtualIntMethod(jobject obj, jclass clazz,
01154 jmethodID methodID, ...) {
01155 va_list args;
01156 jint result;
01157 va_start(args,methodID);
01158 result = functions->CallNonvirtualIntMethodV(this,obj,clazz,
01159 methodID,args);
01160 va_end(args);
01161 return result;
01162 }
01163 jint CallNonvirtualIntMethodV(jobject obj, jclass clazz,
01164 jmethodID methodID, va_list args) {
01165 return functions->CallNonvirtualIntMethodV(this,obj,clazz,
01166 methodID,args);
01167 }
01168 jint CallNonvirtualIntMethodA(jobject obj, jclass clazz,
01169 jmethodID methodID, const jvalue * args) {
01170 return functions->CallNonvirtualIntMethodA(this,obj,clazz,
01171 methodID,args);
01172 }
01173
01174 jlong CallNonvirtualLongMethod(jobject obj, jclass clazz,
01175 jmethodID methodID, ...) {
01176 va_list args;
01177 jlong result;
01178 va_start(args,methodID);
01179 result = functions->CallNonvirtualLongMethodV(this,obj,clazz,
01180 methodID,args);
01181 va_end(args);
01182 return result;
01183 }
01184 jlong CallNonvirtualLongMethodV(jobject obj, jclass clazz,
01185 jmethodID methodID, va_list args) {
01186 return functions->CallNonvirtualLongMethodV(this,obj,clazz,
01187 methodID,args);
01188 }
01189 jlong CallNonvirtualLongMethodA(jobject obj, jclass clazz,
01190 jmethodID methodID, const jvalue * args) {
01191 return functions->CallNonvirtualLongMethodA(this,obj,clazz,
01192 methodID,args);
01193 }
01194
01195 jfloat CallNonvirtualFloatMethod(jobject obj, jclass clazz,
01196 jmethodID methodID, ...) {
01197 va_list args;
01198 jfloat result;
01199 va_start(args,methodID);
01200 result = functions->CallNonvirtualFloatMethodV(this,obj,clazz,
01201 methodID,args);
01202 va_end(args);
01203 return result;
01204 }
01205 jfloat CallNonvirtualFloatMethodV(jobject obj, jclass clazz,
01206 jmethodID methodID,
01207 va_list args) {
01208 return functions->CallNonvirtualFloatMethodV(this,obj,clazz,
01209 methodID,args);
01210 }
01211 jfloat CallNonvirtualFloatMethodA(jobject obj, jclass clazz,
01212 jmethodID methodID,
01213 const jvalue * args) {
01214 return functions->CallNonvirtualFloatMethodA(this,obj,clazz,
01215 methodID,args);
01216 }
01217
01218 jdouble CallNonvirtualDoubleMethod(jobject obj, jclass clazz,
01219 jmethodID methodID, ...) {
01220 va_list args;
01221 jdouble result;
01222 va_start(args,methodID);
01223 result = functions->CallNonvirtualDoubleMethodV(this,obj,clazz,
01224 methodID,args);
01225 va_end(args);
01226 return result;
01227 }
01228 jdouble CallNonvirtualDoubleMethodV(jobject obj, jclass clazz,
01229 jmethodID methodID,
01230 va_list args) {
01231 return functions->CallNonvirtualDoubleMethodV(this,obj,clazz,
01232 methodID,args);
01233 }
01234 jdouble CallNonvirtualDoubleMethodA(jobject obj, jclass clazz,
01235 jmethodID methodID,
01236 const jvalue * args) {
01237 return functions->CallNonvirtualDoubleMethodA(this,obj,clazz,
01238 methodID,args);
01239 }
01240
01241 void CallNonvirtualVoidMethod(jobject obj, jclass clazz,
01242 jmethodID methodID, ...) {
01243 va_list args;
01244 va_start(args,methodID);
01245 functions->CallNonvirtualVoidMethodV(this,obj,clazz,methodID,args);
01246 va_end(args);
01247 }
01248 void CallNonvirtualVoidMethodV(jobject obj, jclass clazz,
01249 jmethodID methodID,
01250 va_list args) {
01251 functions->CallNonvirtualVoidMethodV(this,obj,clazz,methodID,args);
01252 }
01253 void CallNonvirtualVoidMethodA(jobject obj, jclass clazz,
01254 jmethodID methodID,
01255 const jvalue * args) {
01256 functions->CallNonvirtualVoidMethodA(this,obj,clazz,methodID,args);
01257 }
01258
01259 jfieldID GetFieldID(jclass clazz, const char *name,
01260 const char *sig) {
01261 return functions->GetFieldID(this,clazz,name,sig);
01262 }
01263
01264 jobject GetObjectField(jobject obj, jfieldID fieldID) {
01265 return functions->GetObjectField(this,obj,fieldID);
01266 }
01267 jboolean GetBooleanField(jobject obj, jfieldID fieldID) {
01268 return functions->GetBooleanField(this,obj,fieldID);
01269 }
01270 jbyte GetByteField(jobject obj, jfieldID fieldID) {
01271 return functions->GetByteField(this,obj,fieldID);
01272 }
01273 jchar GetCharField(jobject obj, jfieldID fieldID) {
01274 return functions->GetCharField(this,obj,fieldID);
01275 }
01276 jshort GetShortField(jobject obj, jfieldID fieldID) {
01277 return functions->GetShortField(this,obj,fieldID);
01278 }
01279 jint GetIntField(jobject obj, jfieldID fieldID) {
01280 return functions->GetIntField(this,obj,fieldID);
01281 }
01282 jlong GetLongField(jobject obj, jfieldID fieldID) {
01283 return functions->GetLongField(this,obj,fieldID);
01284 }
01285 jfloat GetFloatField(jobject obj, jfieldID fieldID) {
01286 return functions->GetFloatField(this,obj,fieldID);
01287 }
01288 jdouble GetDoubleField(jobject obj, jfieldID fieldID) {
01289 return functions->GetDoubleField(this,obj,fieldID);
01290 }
01291
01292 void SetObjectField(jobject obj, jfieldID fieldID, jobject val) {
01293 functions->SetObjectField(this,obj,fieldID,val);
01294 }
01295 void SetBooleanField(jobject obj, jfieldID fieldID,
01296 jboolean val) {
01297 functions->SetBooleanField(this,obj,fieldID,val);
01298 }
01299 void SetByteField(jobject obj, jfieldID fieldID,
01300 jbyte val) {
01301 functions->SetByteField(this,obj,fieldID,val);
01302 }
01303 void SetCharField(jobject obj, jfieldID fieldID,
01304 jchar val) {
01305 functions->SetCharField(this,obj,fieldID,val);
01306 }
01307 void SetShortField(jobject obj, jfieldID fieldID,
01308 jshort val) {
01309 functions->SetShortField(this,obj,fieldID,val);
01310 }
01311 void SetIntField(jobject obj, jfieldID fieldID,
01312 jint val) {
01313 functions->SetIntField(this,obj,fieldID,val);
01314 }
01315 void SetLongField(jobject obj, jfieldID fieldID,
01316 jlong val) {
01317 functions->SetLongField(this,obj,fieldID,val);
01318 }
01319 void SetFloatField(jobject obj, jfieldID fieldID,
01320 jfloat val) {
01321 functions->SetFloatField(this,obj,fieldID,val);
01322 }
01323 void SetDoubleField(jobject obj, jfieldID fieldID,
01324 jdouble val) {
01325 functions->SetDoubleField(this,obj,fieldID,val);
01326 }
01327
01328 jmethodID GetStaticMethodID(jclass clazz, const char *name,
01329 const char *sig) {
01330 return functions->GetStaticMethodID(this,clazz,name,sig);
01331 }
01332
01333 jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID,
01334 ...) {
01335 va_list args;
01336 jobject result;
01337 va_start(args,methodID);
01338 result = functions->CallStaticObjectMethodV(this,clazz,methodID,args);
01339 va_end(args);
01340 return result;
01341 }
01342 jobject CallStaticObjectMethodV(jclass clazz, jmethodID methodID,
01343 va_list args) {
01344 return functions->CallStaticObjectMethodV(this,clazz,methodID,args);
01345 }
01346 jobject CallStaticObjectMethodA(jclass clazz, jmethodID methodID,
01347 const jvalue *args) {
01348 return functions->CallStaticObjectMethodA(this,clazz,methodID,args);
01349 }
01350
01351 jboolean CallStaticBooleanMethod(jclass clazz,
01352 jmethodID methodID, ...) {
01353 va_list args;
01354 jboolean result;
01355 va_start(args,methodID);
01356 result = functions->CallStaticBooleanMethodV(this,clazz,methodID,args);
01357 va_end(args);
01358 return result;
01359 }
01360 jboolean CallStaticBooleanMethodV(jclass clazz,
01361 jmethodID methodID, va_list args) {
01362 return functions->CallStaticBooleanMethodV(this,clazz,methodID,args);
01363 }
01364 jboolean CallStaticBooleanMethodA(jclass clazz,
01365 jmethodID methodID, const jvalue *args) {
01366 return functions->CallStaticBooleanMethodA(this,clazz,methodID,args);
01367 }
01368
01369 jbyte CallStaticByteMethod(jclass clazz,
01370 jmethodID methodID, ...) {
01371 va_list args;
01372 jbyte result;
01373 va_start(args,methodID);
01374 result = functions->CallStaticByteMethodV(this,clazz,methodID,args);
01375 va_end(args);
01376 return result;
01377 }
01378 jbyte CallStaticByteMethodV(jclass clazz,
01379 jmethodID methodID, va_list args) {
01380 return functions->CallStaticByteMethodV(this,clazz,methodID,args);
01381 }
01382 jbyte CallStaticByteMethodA(jclass clazz,
01383 jmethodID methodID, const jvalue *args) {
01384 return functions->CallStaticByteMethodA(this,clazz,methodID,args);
01385 }
01386
01387 jchar CallStaticCharMethod(jclass clazz,
01388 jmethodID methodID, ...) {
01389 va_list args;
01390 jchar result;
01391 va_start(args,methodID);
01392 result = functions->CallStaticCharMethodV(this,clazz,methodID,args);
01393 va_end(args);
01394 return result;
01395 }
01396 jchar CallStaticCharMethodV(jclass clazz,
01397 jmethodID methodID, va_list args) {
01398 return functions->CallStaticCharMethodV(this,clazz,methodID,args);
01399 }
01400 jchar CallStaticCharMethodA(jclass clazz,
01401 jmethodID methodID, const jvalue *args) {
01402 return functions->CallStaticCharMethodA(this,clazz,methodID,args);
01403 }
01404
01405 jshort CallStaticShortMethod(jclass clazz,
01406 jmethodID methodID, ...) {
01407 va_list args;
01408 jshort result;
01409 va_start(args,methodID);
01410 result = functions->CallStaticShortMethodV(this,clazz,methodID,args);
01411 va_end(args);
01412 return result;
01413 }
01414 jshort CallStaticShortMethodV(jclass clazz,
01415 jmethodID methodID, va_list args) {
01416 return functions->CallStaticShortMethodV(this,clazz,methodID,args);
01417 }
01418 jshort CallStaticShortMethodA(jclass clazz,
01419 jmethodID methodID, const jvalue *args) {
01420 return functions->CallStaticShortMethodA(this,clazz,methodID,args);
01421 }
01422
01423 jint CallStaticIntMethod(jclass clazz,
01424 jmethodID methodID, ...) {
01425 va_list args;
01426 jint result;
01427 va_start(args,methodID);
01428 result = functions->CallStaticIntMethodV(this,clazz,methodID,args);
01429 va_end(args);
01430 return result;
01431 }
01432 jint CallStaticIntMethodV(jclass clazz,
01433 jmethodID methodID, va_list args) {
01434 return functions->CallStaticIntMethodV(this,clazz,methodID,args);
01435 }
01436 jint CallStaticIntMethodA(jclass clazz,
01437 jmethodID methodID, const jvalue *args) {
01438 return functions->CallStaticIntMethodA(this,clazz,methodID,args);
01439 }
01440
01441 jlong CallStaticLongMethod(jclass clazz,
01442 jmethodID methodID, ...) {
01443 va_list args;
01444 jlong result;
01445 va_start(args,methodID);
01446 result = functions->CallStaticLongMethodV(this,clazz,methodID,args);
01447 va_end(args);
01448 return result;
01449 }
01450 jlong CallStaticLongMethodV(jclass clazz,
01451 jmethodID methodID, va_list args) {
01452 return functions->CallStaticLongMethodV(this,clazz,methodID,args);
01453 }
01454 jlong CallStaticLongMethodA(jclass clazz,
01455 jmethodID methodID, const jvalue *args) {
01456 return functions->CallStaticLongMethodA(this,clazz,methodID,args);
01457 }
01458
01459 jfloat CallStaticFloatMethod(jclass clazz,
01460 jmethodID methodID, ...) {
01461 va_list args;
01462 jfloat result;
01463 va_start(args,methodID);
01464 result = functions->CallStaticFloatMethodV(this,clazz,methodID,args);
01465 va_end(args);
01466 return result;
01467 }
01468 jfloat CallStaticFloatMethodV(jclass clazz,
01469 jmethodID methodID, va_list args) {
01470 return functions->CallStaticFloatMethodV(this,clazz,methodID,args);
01471 }
01472 jfloat CallStaticFloatMethodA(jclass clazz,
01473 jmethodID methodID, const jvalue *args) {
01474 return functions->CallStaticFloatMethodA(this,clazz,methodID,args);
01475 }
01476
01477 jdouble CallStaticDoubleMethod(jclass clazz,
01478 jmethodID methodID, ...) {
01479 va_list args;
01480 jdouble result;
01481 va_start(args,methodID);
01482 result = functions->CallStaticDoubleMethodV(this,clazz,methodID,args);
01483 va_end(args);
01484 return result;
01485 }
01486 jdouble CallStaticDoubleMethodV(jclass clazz,
01487 jmethodID methodID, va_list args) {
01488 return functions->CallStaticDoubleMethodV(this,clazz,methodID,args);
01489 }
01490 jdouble CallStaticDoubleMethodA(jclass clazz,
01491 jmethodID methodID, const jvalue *args) {
01492 return functions->CallStaticDoubleMethodA(this,clazz,methodID,args);
01493 }
01494
01495 void CallStaticVoidMethod(jclass cls, jmethodID methodID, ...) {
01496 va_list args;
01497 va_start(args,methodID);
01498 functions->CallStaticVoidMethodV(this,cls,methodID,args);
01499 va_end(args);
01500 }
01501 void CallStaticVoidMethodV(jclass cls, jmethodID methodID,
01502 va_list args) {
01503 functions->CallStaticVoidMethodV(this,cls,methodID,args);
01504 }
01505 void CallStaticVoidMethodA(jclass cls, jmethodID methodID,
01506 const jvalue * args) {
01507 functions->CallStaticVoidMethodA(this,cls,methodID,args);
01508 }
01509
01510 jfieldID GetStaticFieldID(jclass clazz, const char *name,
01511 const char *sig) {
01512 return functions->GetStaticFieldID(this,clazz,name,sig);
01513 }
01514 jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) {
01515 return functions->GetStaticObjectField(this,clazz,fieldID);
01516 }
01517 jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) {
01518 return functions->GetStaticBooleanField(this,clazz,fieldID);
01519 }
01520 jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) {
01521 return functions->GetStaticByteField(this,clazz,fieldID);
01522 }
01523 jchar GetStaticCharField(jclass clazz, jfieldID fieldID) {
01524 return functions->GetStaticCharField(this,clazz,fieldID);
01525 }
01526 jshort GetStaticShortField(jclass clazz, jfieldID fieldID) {
01527 return functions->GetStaticShortField(this,clazz,fieldID);
01528 }
01529 jint GetStaticIntField(jclass clazz, jfieldID fieldID) {
01530 return functions->GetStaticIntField(this,clazz,fieldID);
01531 }
01532 jlong GetStaticLongField(jclass clazz, jfieldID fieldID) {
01533 return functions->GetStaticLongField(this,clazz,fieldID);
01534 }
01535 jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) {
01536 return functions->GetStaticFloatField(this,clazz,fieldID);
01537 }
01538 jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) {
01539 return functions->GetStaticDoubleField(this,clazz,fieldID);
01540 }
01541
01542 void SetStaticObjectField(jclass clazz, jfieldID fieldID,
01543 jobject value) {
01544 functions->SetStaticObjectField(this,clazz,fieldID,value);
01545 }
01546 void SetStaticBooleanField(jclass clazz, jfieldID fieldID,
01547 jboolean value) {
01548 functions->SetStaticBooleanField(this,clazz,fieldID,value);
01549 }
01550 void SetStaticByteField(jclass clazz, jfieldID fieldID,
01551 jbyte value) {
01552 functions->SetStaticByteField(this,clazz,fieldID,value);
01553 }
01554 void SetStaticCharField(jclass clazz, jfieldID fieldID,
01555 jchar value) {
01556 functions->SetStaticCharField(this,clazz,fieldID,value);
01557 }
01558 void SetStaticShortField(jclass clazz, jfieldID fieldID,
01559 jshort value) {
01560 functions->SetStaticShortField(this,clazz,fieldID,value);
01561 }
01562 void SetStaticIntField(jclass clazz, jfieldID fieldID,
01563 jint value) {
01564 functions->SetStaticIntField(this,clazz,fieldID,value);
01565 }
01566 void SetStaticLongField(jclass clazz, jfieldID fieldID,
01567 jlong value) {
01568 functions->SetStaticLongField(this,clazz,fieldID,value);
01569 }
01570 void SetStaticFloatField(jclass clazz, jfieldID fieldID,
01571 jfloat value) {
01572 functions->SetStaticFloatField(this,clazz,fieldID,value);
01573 }
01574 void SetStaticDoubleField(jclass clazz, jfieldID fieldID,
01575 jdouble value) {
01576 functions->SetStaticDoubleField(this,clazz,fieldID,value);
01577 }
01578
01579 jstring NewString(const jchar *unicode, jsize len) {
01580 return functions->NewString(this,unicode,len);
01581 }
01582 jsize GetStringLength(jstring str) {
01583 return functions->GetStringLength(this,str);
01584 }
01585 const jchar *GetStringChars(jstring str, jboolean *isCopy) {
01586 return functions->GetStringChars(this,str,isCopy);
01587 }
01588 void ReleaseStringChars(jstring str, const jchar *chars) {
01589 functions->ReleaseStringChars(this,str,chars);
01590 }
01591
01592 jstring NewStringUTF(const char *utf) {
01593 return functions->NewStringUTF(this,utf);
01594 }
01595 jsize GetStringUTFLength(jstring str) {
01596 return functions->GetStringUTFLength(this,str);
01597 }
01598 const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
01599 return functions->GetStringUTFChars(this,str,isCopy);
01600 }
01601 void ReleaseStringUTFChars(jstring str, const char* chars) {
01602 functions->ReleaseStringUTFChars(this,str,chars);
01603 }
01604
01605 jsize GetArrayLength(jarray array) {
01606 return functions->GetArrayLength(this,array);
01607 }
01608
01609 jobjectArray NewObjectArray(jsize len, jclass clazz,
01610 jobject init) {
01611 return functions->NewObjectArray(this,len,clazz,init);
01612 }
01613 jobject GetObjectArrayElement(jobjectArray array, jsize index) {
01614 return functions->GetObjectArrayElement(this,array,index);
01615 }
01616 void SetObjectArrayElement(jobjectArray array, jsize index,
01617 jobject val) {
01618 functions->SetObjectArrayElement(this,array,index,val);
01619 }
01620
01621 jbooleanArray NewBooleanArray(jsize len) {
01622 return functions->NewBooleanArray(this,len);
01623 }
01624 jbyteArray NewByteArray(jsize len) {
01625 return functions->NewByteArray(this,len);
01626 }
01627 jcharArray NewCharArray(jsize len) {
01628 return functions->NewCharArray(this,len);
01629 }
01630 jshortArray NewShortArray(jsize len) {
01631 return functions->NewShortArray(this,len);
01632 }
01633 jintArray NewIntArray(jsize len) {
01634 return functions->NewIntArray(this,len);
01635 }
01636 jlongArray NewLongArray(jsize len) {
01637 return functions->NewLongArray(this,len);
01638 }
01639 jfloatArray NewFloatArray(jsize len) {
01640 return functions->NewFloatArray(this,len);
01641 }
01642 jdoubleArray NewDoubleArray(jsize len) {
01643 return functions->NewDoubleArray(this,len);
01644 }
01645
01646 jboolean * GetBooleanArrayElements(jbooleanArray array, jboolean *isCopy) {
01647 return functions->GetBooleanArrayElements(this,array,isCopy);
01648 }
01649 jbyte * GetByteArrayElements(jbyteArray array, jboolean *isCopy) {
01650 return functions->GetByteArrayElements(this,array,isCopy);
01651 }
01652 jchar * GetCharArrayElements(jcharArray array, jboolean *isCopy) {
01653 return functions->GetCharArrayElements(this,array,isCopy);
01654 }
01655 jshort * GetShortArrayElements(jshortArray array, jboolean *isCopy) {
01656 return functions->GetShortArrayElements(this,array,isCopy);
01657 }
01658 jint * GetIntArrayElements(jintArray array, jboolean *isCopy) {
01659 return functions->GetIntArrayElements(this,array,isCopy);
01660 }
01661 jlong * GetLongArrayElements(jlongArray array, jboolean *isCopy) {
01662 return functions->GetLongArrayElements(this,array,isCopy);
01663 }
01664 jfloat * GetFloatArrayElements(jfloatArray array, jboolean *isCopy) {
01665 return functions->GetFloatArrayElements(this,array,isCopy);
01666 }
01667 jdouble * GetDoubleArrayElements(jdoubleArray array, jboolean *isCopy) {
01668 return functions->GetDoubleArrayElements(this,array,isCopy);
01669 }
01670
01671 void ReleaseBooleanArrayElements(jbooleanArray array,
01672 jboolean *elems,
01673 jint mode) {
01674 functions->ReleaseBooleanArrayElements(this,array,elems,mode);
01675 }
01676 void ReleaseByteArrayElements(jbyteArray array,
01677 jbyte *elems,
01678 jint mode) {
01679 functions->ReleaseByteArrayElements(this,array,elems,mode);
01680 }
01681 void ReleaseCharArrayElements(jcharArray array,
01682 jchar *elems,
01683 jint mode) {
01684 functions->ReleaseCharArrayElements(this,array,elems,mode);
01685 }
01686 void ReleaseShortArrayElements(jshortArray array,
01687 jshort *elems,
01688 jint mode) {
01689 functions->ReleaseShortArrayElements(this,array,elems,mode);
01690 }
01691 void ReleaseIntArrayElements(jintArray array,
01692 jint *elems,
01693 jint mode) {
01694 functions->ReleaseIntArrayElements(this,array,elems,mode);
01695 }
01696 void ReleaseLongArrayElements(jlongArray array,
01697 jlong *elems,
01698 jint mode) {
01699 functions->ReleaseLongArrayElements(this,array,elems,mode);
01700 }
01701 void ReleaseFloatArrayElements(jfloatArray array,
01702 jfloat *elems,
01703 jint mode) {
01704 functions->ReleaseFloatArrayElements(this,array,elems,mode);
01705 }
01706 void ReleaseDoubleArrayElements(jdoubleArray array,
01707 jdouble *elems,
01708 jint mode) {
01709 functions->ReleaseDoubleArrayElements(this,array,elems,mode);
01710 }
01711
01712 void GetBooleanArrayRegion(jbooleanArray array,
01713 jsize start, jsize len, jboolean *buf) {
01714 functions->GetBooleanArrayRegion(this,array,start,len,buf);
01715 }
01716 void GetByteArrayRegion(jbyteArray array,
01717 jsize start, jsize len, jbyte *buf) {
01718 functions->GetByteArrayRegion(this,array,start,len,buf);
01719 }
01720 void GetCharArrayRegion(jcharArray array,
01721 jsize start, jsize len, jchar *buf) {
01722 functions->GetCharArrayRegion(this,array,start,len,buf);
01723 }
01724 void GetShortArrayRegion(jshortArray array,
01725 jsize start, jsize len, jshort *buf) {
01726 functions->GetShortArrayRegion(this,array,start,len,buf);
01727 }
01728 void GetIntArrayRegion(jintArray array,
01729 jsize start, jsize len, jint *buf) {
01730 functions->GetIntArrayRegion(this,array,start,len,buf);
01731 }
01732 void GetLongArrayRegion(jlongArray array,
01733 jsize start, jsize len, jlong *buf) {
01734 functions->GetLongArrayRegion(this,array,start,len,buf);
01735 }
01736 void GetFloatArrayRegion(jfloatArray array,
01737 jsize start, jsize len, jfloat *buf) {
01738 functions->GetFloatArrayRegion(this,array,start,len,buf);
01739 }
01740 void GetDoubleArrayRegion(jdoubleArray array,
01741 jsize start, jsize len, jdouble *buf) {
01742 functions->GetDoubleArrayRegion(this,array,start,len,buf);
01743 }
01744
01745 void SetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len,
01746 const jboolean *buf) {
01747 functions->SetBooleanArrayRegion(this,array,start,len,buf);
01748 }
01749 void SetByteArrayRegion(jbyteArray array, jsize start, jsize len,
01750 const jbyte *buf) {
01751 functions->SetByteArrayRegion(this,array,start,len,buf);
01752 }
01753 void SetCharArrayRegion(jcharArray array, jsize start, jsize len,
01754 const jchar *buf) {
01755 functions->SetCharArrayRegion(this,array,start,len,buf);
01756 }
01757 void SetShortArrayRegion(jshortArray array, jsize start, jsize len,
01758 const jshort *buf) {
01759 functions->SetShortArrayRegion(this,array,start,len,buf);
01760 }
01761 void SetIntArrayRegion(jintArray array, jsize start, jsize len,
01762 const jint *buf) {
01763 functions->SetIntArrayRegion(this,array,start,len,buf);
01764 }
01765 void SetLongArrayRegion(jlongArray array, jsize start, jsize len,
01766 const jlong *buf) {
01767 functions->SetLongArrayRegion(this,array,start,len,buf);
01768 }
01769 void SetFloatArrayRegion(jfloatArray array, jsize start, jsize len,
01770 const jfloat *buf) {
01771 functions->SetFloatArrayRegion(this,array,start,len,buf);
01772 }
01773 void SetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len,
01774 const jdouble *buf) {
01775 functions->SetDoubleArrayRegion(this,array,start,len,buf);
01776 }
01777
01778 jint RegisterNatives(jclass clazz, const JNINativeMethod *methods,
01779 jint nMethods) {
01780 return functions->RegisterNatives(this,clazz,methods,nMethods);
01781 }
01782 jint UnregisterNatives(jclass clazz) {
01783 return functions->UnregisterNatives(this,clazz);
01784 }
01785
01786 jint MonitorEnter(jobject obj) {
01787 return functions->MonitorEnter(this,obj);
01788 }
01789 jint MonitorExit(jobject obj) {
01790 return functions->MonitorExit(this,obj);
01791 }
01792
01793 jint GetJavaVM(JavaVM **vm) {
01794 return functions->GetJavaVM(this,vm);
01795 }
01796
01797 void GetStringRegion(jstring str, jsize start, jsize len, jchar *buf) {
01798 functions->GetStringRegion(this,str,start,len,buf);
01799 }
01800 void GetStringUTFRegion(jstring str, jsize start, jsize len, char *buf) {
01801 functions->GetStringUTFRegion(this,str,start,len,buf);
01802 }
01803
01804 void * GetPrimitiveArrayCritical(jarray array, jboolean *isCopy) {
01805 return functions->GetPrimitiveArrayCritical(this,array,isCopy);
01806 }
01807 void ReleasePrimitiveArrayCritical(jarray array, void *carray, jint mode) {
01808 functions->ReleasePrimitiveArrayCritical(this,array,carray,mode);
01809 }
01810
01811 const jchar * GetStringCritical(jstring string, jboolean *isCopy) {
01812 return functions->GetStringCritical(this,string,isCopy);
01813 }
01814 void ReleaseStringCritical(jstring string, const jchar *cstring) {
01815 functions->ReleaseStringCritical(this,string,cstring);
01816 }
01817
01818 jweak NewWeakGlobalRef(jobject obj) {
01819 return functions->NewWeakGlobalRef(this,obj);
01820 }
01821 void DeleteWeakGlobalRef(jweak ref) {
01822 functions->DeleteWeakGlobalRef(this,ref);
01823 }
01824
01825 jboolean ExceptionCheck() {
01826 return functions->ExceptionCheck(this);
01827 }
01828
01829 jobject NewDirectByteBuffer(void* address, jlong capacity) {
01830 return functions->NewDirectByteBuffer(this, address, capacity);
01831 }
01832 void* GetDirectBufferAddress(jobject buf) {
01833 return functions->GetDirectBufferAddress(this, buf);
01834 }
01835 jlong GetDirectBufferCapacity(jobject buf) {
01836 return functions->GetDirectBufferCapacity(this, buf);
01837 }
01838 jobjectRefType GetObjectRefType(jobject obj) {
01839 return functions->GetObjectRefType(this, obj);
01840 }
01841
01842 #endif
01843 };
01844
01845 typedef struct JavaVMOption {
01846 char *optionString;
01847 void *extraInfo;
01848 } JavaVMOption;
01849
01850 typedef struct JavaVMInitArgs {
01851 jint version;
01852
01853 jint nOptions;
01854 JavaVMOption *options;
01855 jboolean ignoreUnrecognized;
01856 } JavaVMInitArgs;
01857
01858 typedef struct JavaVMAttachArgs {
01859 jint version;
01860
01861 char *name;
01862 jobject group;
01863 } JavaVMAttachArgs;
01864
01865
01866
01867 #define JDK1_2
01868 #define JDK1_4
01869
01870
01871
01872 struct JNIInvokeInterface_ {
01873 void *reserved0;
01874 void *reserved1;
01875 void *reserved2;
01876
01877 jint (JNICALL *DestroyJavaVM)(JavaVM *vm);
01878
01879 jint (JNICALL *AttachCurrentThread)(JavaVM *vm, void **penv, void *args);
01880
01881 jint (JNICALL *DetachCurrentThread)(JavaVM *vm);
01882
01883 jint (JNICALL *GetEnv)(JavaVM *vm, void **penv, jint version);
01884
01885 jint (JNICALL *AttachCurrentThreadAsDaemon)(JavaVM *vm, void **penv, void *args);
01886 };
01887
01888 struct JavaVM_ {
01889 const struct JNIInvokeInterface_ *functions;
01890 #ifdef __cplusplus
01891
01892 jint DestroyJavaVM() {
01893 return functions->DestroyJavaVM(this);
01894 }
01895 jint AttachCurrentThread(void **penv, void *args) {
01896 return functions->AttachCurrentThread(this, penv, args);
01897 }
01898 jint DetachCurrentThread() {
01899 return functions->DetachCurrentThread(this);
01900 }
01901
01902 jint GetEnv(void **penv, jint version) {
01903 return functions->GetEnv(this, penv, version);
01904 }
01905 jint AttachCurrentThreadAsDaemon(void **penv, void *args) {
01906 return functions->AttachCurrentThreadAsDaemon(this, penv, args);
01907 }
01908 #endif
01909 };
01910
01911 #ifdef _JNI_IMPLEMENTATION_
01912 #define _JNI_IMPORT_OR_EXPORT_ JNIEXPORT
01913 #else
01914 #define _JNI_IMPORT_OR_EXPORT_ JNIIMPORT
01915 #endif
01916 _JNI_IMPORT_OR_EXPORT_ jint JNICALL
01917 JNI_GetDefaultJavaVMInitArgs(void *args);
01918
01919 _JNI_IMPORT_OR_EXPORT_ jint JNICALL
01920 JNI_CreateJavaVM(JavaVM **pvm, void **penv, void *args);
01921
01922 _JNI_IMPORT_OR_EXPORT_ jint JNICALL
01923 JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *);
01924
01925
01926 JNIEXPORT jint JNICALL
01927 JNI_OnLoad(JavaVM *vm, void *reserved);
01928
01929 JNIEXPORT void JNICALL
01930 JNI_OnUnload(JavaVM *vm, void *reserved);
01931
01932 #define JNI_VERSION_1_1 0x00010001
01933 #define JNI_VERSION_1_2 0x00010002
01934 #define JNI_VERSION_1_4 0x00010004
01935 #define JNI_VERSION_1_6 0x00010006
01936
01937 #ifdef __cplusplus
01938 }
01939 #endif
01940
01941 #endif
01942
01943
01944