Codemesh Runtime v3 C++ API Reference  3.9.205
xmog.h
1 //
2 // Copyright (c) 1999-2020 by Codemesh, Inc.. ALL RIGHTS RESERVED.
3 //
4 
5 
6 
7 #ifndef xmog_inc
8 #define xmog_inc
9 
10 
110 
111 #include "xmog-config.h"
112 
113 
115 
116 
117 // in JuggerNET, we have a problem to be worked around
118 #if !defined(XMOG_DOTNET_WORKAROUND)
119 # if( XMOG_WINDOWS == 1 ) && defined(_MSC_VER)
120 # define XMOG_DOTNET_WORKAROUND 0
121 # else
122 # define XMOG_DOTNET_WORKAROUND 0
123 # endif
124 #endif
125 
126 #if (XMOG_DOTNET_WORKAROUND == 1)
127 # define XMOG_SEH_NO_RETVAL_0(x) __try { functions->x(this); } __except(1) { /*printf("*** SEH in %s ***\n", #x );*/ functions->x(this); }
128 # define XMOG_SEH_NO_RETVAL_1(x,a1) __try { functions->x(this,a1); } __except(1) { /*printf("*** SEH in %s ***\n", #x );*/ functions->x(this,a1); }
129 # define XMOG_SEH_NO_RETVAL_2(x,a1,a2) __try { functions->x(this,a1,a2); } __except(1) { /*printf("*** SEH in %s ***\n", #x );*/ functions->x(this,a1,a2); }
130 # define XMOG_SEH_NO_RETVAL_3(x,a1,a2,a3) __try { functions->x(this,a1,a2,a3); } __except(1) { /*printf("*** SEH in %s ***\n", #x );*/ functions->x(this,a1,a2,a3); }
131 # define XMOG_SEH_NO_RETVAL_4(x,a1,a2,a3,a4) __try { functions->x(this,a1,a2,a3,a4); } __except(1) { /*printf("*** SEH in %s ***\n", #x );*/ functions->x(this,a1,a2,a3,a4); }
132 # define XMOG_SEH_NO_RETVAL_5(x,a1,a2,a3,a4,a5) __try { functions->x(this,a1,a2,a3,a4,a5); } __except(1) { /*printf("*** SEH in %s ***\n", #x );*/ functions->x(this,a1,a2,a3,a4,a5); }
133 # define XMOG_SEH_RETVAL_0(x) __try { return functions->x(this); } __except(1) { /*printf("*** SEH in %s ***\n", #x );*/ return functions->x(this); }
134 # define XMOG_SEH_RETVAL_1(x,a1) __try { return functions->x(this,a1); } __except(1) { /*printf("*** SEH in %s ***\n", #x );*/ return functions->x(this,a1); }
135 # define XMOG_SEH_RETVAL_2(x,a1,a2) __try { return functions->x(this,a1,a2); } __except(1) { /*printf("*** SEH in %s ***\n", #x );*/ return functions->x(this,a1,a2); }
136 # define XMOG_SEH_RETVAL_3(x,a1,a2,a3) __try { return functions->x(this,a1,a2,a3); } __except(1) { /*printf("*** SEH in %s ***\n", #x );*/ return functions->x(this,a1,a2,a3); }
137 # define XMOG_SEH_RETVAL_4(x,a1,a2,a3,a4) __try { return functions->x(this,a1,a2,a3,a4); } __except(1) { /*printf("*** SEH in %s ***\n", #x );*/ return functions->x(this,a1,a2,a3,a4); }
138 # define XMOG_SEH_RETVAL_5(x,a1,a2,a3,a4,a5) __try { return functions->x(this,a1,a2,a3,a4,a5); } __except(1) { /*printf("*** SEH in %s ***\n", #x );*/ return functions->x(this,a1,a2,a3,a4,a5); }
139 #else
140 # define XMOG_SEH_NO_RETVAL_0(x) functions->x(this);
141 # define XMOG_SEH_NO_RETVAL_1(x,a1) functions->x(this,a1);
142 # define XMOG_SEH_NO_RETVAL_2(x,a1,a2) functions->x(this,a1,a2);
143 # define XMOG_SEH_NO_RETVAL_3(x,a1,a2,a3) functions->x(this,a1,a2,a3);
144 # define XMOG_SEH_NO_RETVAL_4(x,a1,a2,a3,a4) functions->x(this,a1,a2,a3,a4);
145 # define XMOG_SEH_NO_RETVAL_5(x,a1,a2,a3,a4,a5) functions->x(this,a1,a2,a3,a4,a5);
146 # define XMOG_SEH_RETVAL_0(x) return functions->x(this);
147 # define XMOG_SEH_RETVAL_1(x,a1) return functions->x(this,a1);
148 # define XMOG_SEH_RETVAL_2(x,a1,a2) return functions->x(this,a1,a2);
149 # define XMOG_SEH_RETVAL_3(x,a1,a2,a3) return functions->x(this,a1,a2,a3);
150 # define XMOG_SEH_RETVAL_4(x,a1,a2,a3,a4) return functions->x(this,a1,a2,a3,a4);
151 # define XMOG_SEH_RETVAL_5(x,a1,a2,a3,a4,a5) return functions->x(this,a1,a2,a3,a4,a5);
152 #endif
153 
154 
155 #if (XMOG_USE_EXTERNAL_JNI_DEFINITIONS==1)
156 
157 # include <jni.h>
158 
159 #else
160 
161 # include <stdio.h>
162 # include <stdarg.h>
163 # if (XMOG_HAS_SYS_INTTYPES==1)
164 # include <sys/inttypes.h>
165 # endif
166 
167 # if (XMOG_WINDOWS==1)
168 
169 # define JNIEXPORT __declspec(dllexport)
170 # define JNIIMPORT __declspec(dllimport)
171 # define JNICALL __stdcall
172 
173  typedef long jint;
174  typedef __int64 jlong;
175  typedef signed char jbyte;
176 
177 # else
178 
179 # define JNIEXPORT
180 # define JNIIMPORT
181 # define JNICALL
182 
183 # if (XMOG_AIX==1)
184  typedef int32_t jint;
185  typedef int64_t jlong;
186 # else
187  typedef int jint;
188 # if defined(_LP64) || defined(__64BIT__)
189  typedef long jlong;
190 # else
191  typedef long long jlong;
192 # endif
193 # endif
194 
195  typedef signed char jbyte;
196 
197 # endif
198 
199 # ifdef __cplusplus
200 extern "C" {
201 # endif
202 
203 
204 typedef unsigned char jboolean;
205 typedef unsigned short jchar;
206 typedef short jshort;
207 typedef float jfloat;
208 typedef double jdouble;
209 
210 #if (XMOG_AIX==1) && defined(__64BIT__)
211  typedef jlong jsize;
212 #else
213  typedef jint jsize;
214 #endif
215 
216 #ifdef __cplusplus
217 
218 class _jobject {};
219 class _jclass : public _jobject {};
220 class _jthrowable : public _jobject {};
221 class _jstring : public _jobject {};
222 class _jarray : public _jobject {};
223 class _jbooleanArray : public _jarray {};
224 class _jbyteArray : public _jarray {};
225 class _jcharArray : public _jarray {};
226 class _jshortArray : public _jarray {};
227 class _jintArray : public _jarray {};
228 class _jlongArray : public _jarray {};
229 class _jfloatArray : public _jarray {};
230 class _jdoubleArray : public _jarray {};
231 class _jobjectArray : public _jarray {};
232 
233 typedef _jobject *jobject;
234 typedef _jclass *jclass;
235 typedef _jthrowable *jthrowable;
236 typedef _jstring *jstring;
237 typedef _jarray *jarray;
238 typedef _jbooleanArray *jbooleanArray;
239 typedef _jbyteArray *jbyteArray;
240 typedef _jcharArray *jcharArray;
241 typedef _jshortArray *jshortArray;
242 typedef _jintArray *jintArray;
243 typedef _jlongArray *jlongArray;
244 typedef _jfloatArray *jfloatArray;
245 typedef _jdoubleArray *jdoubleArray;
246 typedef _jobjectArray *jobjectArray;
247 
248 #else
249 
250 struct _jobject;
251 
252 typedef struct _jobject *jobject;
253 typedef jobject jclass;
254 typedef jobject jthrowable;
255 typedef jobject jstring;
256 typedef jobject jarray;
257 typedef jarray jbooleanArray;
258 typedef jarray jbyteArray;
259 typedef jarray jcharArray;
260 typedef jarray jshortArray;
261 typedef jarray jintArray;
262 typedef jarray jlongArray;
263 typedef jarray jfloatArray;
264 typedef jarray jdoubleArray;
265 typedef jarray jobjectArray;
266 
267 #endif
268 
269 typedef jobject jweak;
270 
278 typedef union jvalue {
279  jboolean z;
280  jbyte b;
281  jchar c;
282  jshort s;
283  jint i;
284  jlong j;
285  jfloat f;
286  jdouble d;
287  jobject l;
288 } jvalue;
289 
290 struct _jfieldID;
291 typedef struct _jfieldID *jfieldID;
292 
293 struct _jmethodID;
294 typedef struct _jmethodID *jmethodID;
295 
296 /*
297  * jboolean constants
298  */
299 
300 #define JNI_FALSE 0
301 #define JNI_TRUE 1
302 
303 /*
304  * possible return values for JNI functions.
305  */
306 
307 #define JNI_OK 0 /* success */
308 #define JNI_ERR (-1) /* unknown error */
309 #define JNI_EDETACHED (-2) /* thread detached from the VM */
310 #define JNI_EVERSION (-3) /* JNI version error */
311 #define JNI_ENOMEM (-4) /* not enough memory */
312 #define JNI_EEXIST (-5) /* VM already created */
313 #define JNI_EINVAL (-6) /* invalid arguments */
314 
315 /*
316  * used in ReleaseScalarArrayElements
317  */
318 
319 #define JNI_COMMIT 1
320 #define JNI_ABORT 2
321 
322 /*
323  * used in RegisterNatives to describe native method name, signature,
324  * and function pointer.
325  */
326 
327 typedef struct {
328  char *name;
329  char *signature;
330  void *fnPtr;
331 } JNINativeMethod;
332 
333 /*
334  * JNI Native Method Interface.
335  */
336 
337 struct JNINativeInterface_;
338 
339 struct JNIEnv_;
340 
341 #ifdef __cplusplus
342 typedef JNIEnv_ JNIEnv;
343 #else
344 typedef const struct JNINativeInterface_ *JNIEnv;
345 #endif
346 
347 /*
348  * JNI Invocation Interface.
349  */
350 
351 struct JNIInvokeInterface_;
352 
353 struct JavaVM_;
354 
355 #ifdef __cplusplus
356 typedef JavaVM_ JavaVM;
357 #else
358 typedef const struct JNIInvokeInterface_ *JavaVM;
359 #endif
360 
361 struct JNINativeInterface_ {
362  void *reserved0;
363  void *reserved1;
364  void *reserved2;
365 
366  void *reserved3;
367  jint (JNICALL *GetVersion)(JNIEnv *env);
368 
369  jclass (JNICALL *DefineClass)
370  (JNIEnv *env, const char *name, jobject loader, const jbyte *buf,
371  jsize len);
372  jclass (JNICALL *FindClass)
373  (JNIEnv *env, const char *name);
374 
375  jmethodID (JNICALL *FromReflectedMethod)
376  (JNIEnv *env, jobject method);
377  jfieldID (JNICALL *FromReflectedField)
378  (JNIEnv *env, jobject field);
379 
380  jobject (JNICALL *ToReflectedMethod)
381  (JNIEnv *env, jclass cls, jmethodID methodID, jboolean isStatic);
382 
383  jclass (JNICALL *GetSuperclass)
384  (JNIEnv *env, jclass sub);
385  jboolean (JNICALL *IsAssignableFrom)
386  (JNIEnv *env, jclass sub, jclass sup);
387 
388  jobject (JNICALL *ToReflectedField)
389  (JNIEnv *env, jclass cls, jfieldID fieldID, jboolean isStatic);
390 
391  jint (JNICALL *Throw)
392  (JNIEnv *env, jthrowable obj);
393  jint (JNICALL *ThrowNew)
394  (JNIEnv *env, jclass clazz, const char *msg);
395  jthrowable (JNICALL *ExceptionOccurred)
396  (JNIEnv *env);
397  void (JNICALL *ExceptionDescribe)
398  (JNIEnv *env);
399  void (JNICALL *ExceptionClear)
400  (JNIEnv *env);
401  void (JNICALL *FatalError)
402  (JNIEnv *env, const char *msg);
403 
404  jint (JNICALL *PushLocalFrame)
405  (JNIEnv *env, jint capacity);
406  jobject (JNICALL *PopLocalFrame)
407  (JNIEnv *env, jobject result);
408 
409  jobject (JNICALL *NewGlobalRef)
410  (JNIEnv *env, jobject lobj);
411  void (JNICALL *DeleteGlobalRef)
412  (JNIEnv *env, jobject gref);
413  void (JNICALL *DeleteLocalRef)
414  (JNIEnv *env, jobject obj);
415  jboolean (JNICALL *IsSameObject)
416  (JNIEnv *env, jobject obj1, jobject obj2);
417  jobject (JNICALL *NewLocalRef)
418  (JNIEnv *env, jobject ref);
419  jint (JNICALL *EnsureLocalCapacity)
420  (JNIEnv *env, jint capacity);
421 
422  jobject (JNICALL *AllocObject)
423  (JNIEnv *env, jclass clazz);
424  jobject (JNICALL *NewObject)
425  (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
426  jobject (JNICALL *NewObjectV)
427  (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
428  jobject (JNICALL *NewObjectA)
429  (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
430 
431  jclass (JNICALL *GetObjectClass)
432  (JNIEnv *env, jobject obj);
433  jboolean (JNICALL *IsInstanceOf)
434  (JNIEnv *env, jobject obj, jclass clazz);
435 
436  jmethodID (JNICALL *GetMethodID)
437  (JNIEnv *env, jclass clazz, const char *name, const char *sig);
438 
439  jobject (JNICALL *CallObjectMethod)
440  (JNIEnv *env, jobject obj, jmethodID methodID, ...);
441  jobject (JNICALL *CallObjectMethodV)
442  (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
443  jobject (JNICALL *CallObjectMethodA)
444  (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args);
445 
446  jboolean (JNICALL *CallBooleanMethod)
447  (JNIEnv *env, jobject obj, jmethodID methodID, ...);
448  jboolean (JNICALL *CallBooleanMethodV)
449  (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
450  jboolean (JNICALL *CallBooleanMethodA)
451  (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args);
452 
453  jbyte (JNICALL *CallByteMethod)
454  (JNIEnv *env, jobject obj, jmethodID methodID, ...);
455  jbyte (JNICALL *CallByteMethodV)
456  (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
457  jbyte (JNICALL *CallByteMethodA)
458  (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
459 
460  jchar (JNICALL *CallCharMethod)
461  (JNIEnv *env, jobject obj, jmethodID methodID, ...);
462  jchar (JNICALL *CallCharMethodV)
463  (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
464  jchar (JNICALL *CallCharMethodA)
465  (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
466 
467  jshort (JNICALL *CallShortMethod)
468  (JNIEnv *env, jobject obj, jmethodID methodID, ...);
469  jshort (JNICALL *CallShortMethodV)
470  (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
471  jshort (JNICALL *CallShortMethodA)
472  (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
473 
474  jint (JNICALL *CallIntMethod)
475  (JNIEnv *env, jobject obj, jmethodID methodID, ...);
476  jint (JNICALL *CallIntMethodV)
477  (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
478  jint (JNICALL *CallIntMethodA)
479  (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
480 
481  jlong (JNICALL *CallLongMethod)
482  (JNIEnv *env, jobject obj, jmethodID methodID, ...);
483  jlong (JNICALL *CallLongMethodV)
484  (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
485  jlong (JNICALL *CallLongMethodA)
486  (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
487 
488  jfloat (JNICALL *CallFloatMethod)
489  (JNIEnv *env, jobject obj, jmethodID methodID, ...);
490  jfloat (JNICALL *CallFloatMethodV)
491  (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
492  jfloat (JNICALL *CallFloatMethodA)
493  (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
494 
495  jdouble (JNICALL *CallDoubleMethod)
496  (JNIEnv *env, jobject obj, jmethodID methodID, ...);
497  jdouble (JNICALL *CallDoubleMethodV)
498  (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
499  jdouble (JNICALL *CallDoubleMethodA)
500  (JNIEnv *env, jobject obj, jmethodID methodID, jvalue *args);
501 
502  void (JNICALL *CallVoidMethod)
503  (JNIEnv *env, jobject obj, jmethodID methodID, ...);
504  void (JNICALL *CallVoidMethodV)
505  (JNIEnv *env, jobject obj, jmethodID methodID, va_list args);
506  void (JNICALL *CallVoidMethodA)
507  (JNIEnv *env, jobject obj, jmethodID methodID, jvalue * args);
508 
509  jobject (JNICALL *CallNonvirtualObjectMethod)
510  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
511  jobject (JNICALL *CallNonvirtualObjectMethodV)
512  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
513  va_list args);
514  jobject (JNICALL *CallNonvirtualObjectMethodA)
515  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
516  jvalue * args);
517 
518  jboolean (JNICALL *CallNonvirtualBooleanMethod)
519  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
520  jboolean (JNICALL *CallNonvirtualBooleanMethodV)
521  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
522  va_list args);
523  jboolean (JNICALL *CallNonvirtualBooleanMethodA)
524  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
525  jvalue * args);
526 
527  jbyte (JNICALL *CallNonvirtualByteMethod)
528  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
529  jbyte (JNICALL *CallNonvirtualByteMethodV)
530  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
531  va_list args);
532  jbyte (JNICALL *CallNonvirtualByteMethodA)
533  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
534  jvalue *args);
535 
536  jchar (JNICALL *CallNonvirtualCharMethod)
537  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
538  jchar (JNICALL *CallNonvirtualCharMethodV)
539  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
540  va_list args);
541  jchar (JNICALL *CallNonvirtualCharMethodA)
542  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
543  jvalue *args);
544 
545  jshort (JNICALL *CallNonvirtualShortMethod)
546  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
547  jshort (JNICALL *CallNonvirtualShortMethodV)
548  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
549  va_list args);
550  jshort (JNICALL *CallNonvirtualShortMethodA)
551  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
552  jvalue *args);
553 
554  jint (JNICALL *CallNonvirtualIntMethod)
555  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
556  jint (JNICALL *CallNonvirtualIntMethodV)
557  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
558  va_list args);
559  jint (JNICALL *CallNonvirtualIntMethodA)
560  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
561  jvalue *args);
562 
563  jlong (JNICALL *CallNonvirtualLongMethod)
564  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
565  jlong (JNICALL *CallNonvirtualLongMethodV)
566  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
567  va_list args);
568  jlong (JNICALL *CallNonvirtualLongMethodA)
569  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
570  jvalue *args);
571 
572  jfloat (JNICALL *CallNonvirtualFloatMethod)
573  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
574  jfloat (JNICALL *CallNonvirtualFloatMethodV)
575  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
576  va_list args);
577  jfloat (JNICALL *CallNonvirtualFloatMethodA)
578  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
579  jvalue *args);
580 
581  jdouble (JNICALL *CallNonvirtualDoubleMethod)
582  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
583  jdouble (JNICALL *CallNonvirtualDoubleMethodV)
584  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
585  va_list args);
586  jdouble (JNICALL *CallNonvirtualDoubleMethodA)
587  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
588  jvalue *args);
589 
590  void (JNICALL *CallNonvirtualVoidMethod)
591  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...);
592  void (JNICALL *CallNonvirtualVoidMethodV)
593  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
594  va_list args);
595  void (JNICALL *CallNonvirtualVoidMethodA)
596  (JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID,
597  jvalue * args);
598 
599  jfieldID (JNICALL *GetFieldID)
600  (JNIEnv *env, jclass clazz, const char *name, const char *sig);
601 
602  jobject (JNICALL *GetObjectField)
603  (JNIEnv *env, jobject obj, jfieldID fieldID);
604  jboolean (JNICALL *GetBooleanField)
605  (JNIEnv *env, jobject obj, jfieldID fieldID);
606  jbyte (JNICALL *GetByteField)
607  (JNIEnv *env, jobject obj, jfieldID fieldID);
608  jchar (JNICALL *GetCharField)
609  (JNIEnv *env, jobject obj, jfieldID fieldID);
610  jshort (JNICALL *GetShortField)
611  (JNIEnv *env, jobject obj, jfieldID fieldID);
612  jint (JNICALL *GetIntField)
613  (JNIEnv *env, jobject obj, jfieldID fieldID);
614  jlong (JNICALL *GetLongField)
615  (JNIEnv *env, jobject obj, jfieldID fieldID);
616  jfloat (JNICALL *GetFloatField)
617  (JNIEnv *env, jobject obj, jfieldID fieldID);
618  jdouble (JNICALL *GetDoubleField)
619  (JNIEnv *env, jobject obj, jfieldID fieldID);
620 
621  void (JNICALL *SetObjectField)
622  (JNIEnv *env, jobject obj, jfieldID fieldID, jobject val);
623  void (JNICALL *SetBooleanField)
624  (JNIEnv *env, jobject obj, jfieldID fieldID, jboolean val);
625  void (JNICALL *SetByteField)
626  (JNIEnv *env, jobject obj, jfieldID fieldID, jbyte val);
627  void (JNICALL *SetCharField)
628  (JNIEnv *env, jobject obj, jfieldID fieldID, jchar val);
629  void (JNICALL *SetShortField)
630  (JNIEnv *env, jobject obj, jfieldID fieldID, jshort val);
631  void (JNICALL *SetIntField)
632  (JNIEnv *env, jobject obj, jfieldID fieldID, jint val);
633  void (JNICALL *SetLongField)
634  (JNIEnv *env, jobject obj, jfieldID fieldID, jlong val);
635  void (JNICALL *SetFloatField)
636  (JNIEnv *env, jobject obj, jfieldID fieldID, jfloat val);
637  void (JNICALL *SetDoubleField)
638  (JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val);
639 
640  jmethodID (JNICALL *GetStaticMethodID)
641  (JNIEnv *env, jclass clazz, const char *name, const char *sig);
642 
643  jobject (JNICALL *CallStaticObjectMethod)
644  (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
645  jobject (JNICALL *CallStaticObjectMethodV)
646  (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
647  jobject (JNICALL *CallStaticObjectMethodA)
648  (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
649 
650  jboolean (JNICALL *CallStaticBooleanMethod)
651  (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
652  jboolean (JNICALL *CallStaticBooleanMethodV)
653  (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
654  jboolean (JNICALL *CallStaticBooleanMethodA)
655  (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
656 
657  jbyte (JNICALL *CallStaticByteMethod)
658  (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
659  jbyte (JNICALL *CallStaticByteMethodV)
660  (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
661  jbyte (JNICALL *CallStaticByteMethodA)
662  (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
663 
664  jchar (JNICALL *CallStaticCharMethod)
665  (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
666  jchar (JNICALL *CallStaticCharMethodV)
667  (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
668  jchar (JNICALL *CallStaticCharMethodA)
669  (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
670 
671  jshort (JNICALL *CallStaticShortMethod)
672  (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
673  jshort (JNICALL *CallStaticShortMethodV)
674  (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
675  jshort (JNICALL *CallStaticShortMethodA)
676  (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
677 
678  jint (JNICALL *CallStaticIntMethod)
679  (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
680  jint (JNICALL *CallStaticIntMethodV)
681  (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
682  jint (JNICALL *CallStaticIntMethodA)
683  (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
684 
685  jlong (JNICALL *CallStaticLongMethod)
686  (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
687  jlong (JNICALL *CallStaticLongMethodV)
688  (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
689  jlong (JNICALL *CallStaticLongMethodA)
690  (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
691 
692  jfloat (JNICALL *CallStaticFloatMethod)
693  (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
694  jfloat (JNICALL *CallStaticFloatMethodV)
695  (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
696  jfloat (JNICALL *CallStaticFloatMethodA)
697  (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
698 
699  jdouble (JNICALL *CallStaticDoubleMethod)
700  (JNIEnv *env, jclass clazz, jmethodID methodID, ...);
701  jdouble (JNICALL *CallStaticDoubleMethodV)
702  (JNIEnv *env, jclass clazz, jmethodID methodID, va_list args);
703  jdouble (JNICALL *CallStaticDoubleMethodA)
704  (JNIEnv *env, jclass clazz, jmethodID methodID, jvalue *args);
705 
706  void (JNICALL *CallStaticVoidMethod)
707  (JNIEnv *env, jclass cls, jmethodID methodID, ...);
708  void (JNICALL *CallStaticVoidMethodV)
709  (JNIEnv *env, jclass cls, jmethodID methodID, va_list args);
710  void (JNICALL *CallStaticVoidMethodA)
711  (JNIEnv *env, jclass cls, jmethodID methodID, jvalue * args);
712 
713  jfieldID (JNICALL *GetStaticFieldID)
714  (JNIEnv *env, jclass clazz, const char *name, const char *sig);
715  jobject (JNICALL *GetStaticObjectField)
716  (JNIEnv *env, jclass clazz, jfieldID fieldID);
717  jboolean (JNICALL *GetStaticBooleanField)
718  (JNIEnv *env, jclass clazz, jfieldID fieldID);
719  jbyte (JNICALL *GetStaticByteField)
720  (JNIEnv *env, jclass clazz, jfieldID fieldID);
721  jchar (JNICALL *GetStaticCharField)
722  (JNIEnv *env, jclass clazz, jfieldID fieldID);
723  jshort (JNICALL *GetStaticShortField)
724  (JNIEnv *env, jclass clazz, jfieldID fieldID);
725  jint (JNICALL *GetStaticIntField)
726  (JNIEnv *env, jclass clazz, jfieldID fieldID);
727  jlong (JNICALL *GetStaticLongField)
728  (JNIEnv *env, jclass clazz, jfieldID fieldID);
729  jfloat (JNICALL *GetStaticFloatField)
730  (JNIEnv *env, jclass clazz, jfieldID fieldID);
731  jdouble (JNICALL *GetStaticDoubleField)
732  (JNIEnv *env, jclass clazz, jfieldID fieldID);
733 
734  void (JNICALL *SetStaticObjectField)
735  (JNIEnv *env, jclass clazz, jfieldID fieldID, jobject value);
736  void (JNICALL *SetStaticBooleanField)
737  (JNIEnv *env, jclass clazz, jfieldID fieldID, jboolean value);
738  void (JNICALL *SetStaticByteField)
739  (JNIEnv *env, jclass clazz, jfieldID fieldID, jbyte value);
740  void (JNICALL *SetStaticCharField)
741  (JNIEnv *env, jclass clazz, jfieldID fieldID, jchar value);
742  void (JNICALL *SetStaticShortField)
743  (JNIEnv *env, jclass clazz, jfieldID fieldID, jshort value);
744  void (JNICALL *SetStaticIntField)
745  (JNIEnv *env, jclass clazz, jfieldID fieldID, jint value);
746  void (JNICALL *SetStaticLongField)
747  (JNIEnv *env, jclass clazz, jfieldID fieldID, jlong value);
748  void (JNICALL *SetStaticFloatField)
749  (JNIEnv *env, jclass clazz, jfieldID fieldID, jfloat value);
750  void (JNICALL *SetStaticDoubleField)
751  (JNIEnv *env, jclass clazz, jfieldID fieldID, jdouble value);
752 
753  jstring (JNICALL *NewString)
754  (JNIEnv *env, const jchar *unicode, jsize len);
755  jsize (JNICALL *GetStringLength)
756  (JNIEnv *env, jstring str);
757  const jchar *(JNICALL *GetStringChars)
758  (JNIEnv *env, jstring str, jboolean *isCopy);
759  void (JNICALL *ReleaseStringChars)
760  (JNIEnv *env, jstring str, const jchar *chars);
761 
762  jstring (JNICALL *NewStringUTF)
763  (JNIEnv *env, const char *utf);
764  jsize (JNICALL *GetStringUTFLength)
765  (JNIEnv *env, jstring str);
766  const char* (JNICALL *GetStringUTFChars)
767  (JNIEnv *env, jstring str, jboolean *isCopy);
768  void (JNICALL *ReleaseStringUTFChars)
769  (JNIEnv *env, jstring str, const char* chars);
770 
771 
772  jsize (JNICALL *GetArrayLength)
773  (JNIEnv *env, jarray array);
774 
775  jobjectArray (JNICALL *NewObjectArray)
776  (JNIEnv *env, jsize len, jclass clazz, jobject init);
777  jobject (JNICALL *GetObjectArrayElement)
778  (JNIEnv *env, jobjectArray array, jsize index);
779  void (JNICALL *SetObjectArrayElement)
780  (JNIEnv *env, jobjectArray array, jsize index, jobject val);
781 
782  jbooleanArray (JNICALL *NewBooleanArray)
783  (JNIEnv *env, jsize len);
784  jbyteArray (JNICALL *NewByteArray)
785  (JNIEnv *env, jsize len);
786  jcharArray (JNICALL *NewCharArray)
787  (JNIEnv *env, jsize len);
788  jshortArray (JNICALL *NewShortArray)
789  (JNIEnv *env, jsize len);
790  jintArray (JNICALL *NewIntArray)
791  (JNIEnv *env, jsize len);
792  jlongArray (JNICALL *NewLongArray)
793  (JNIEnv *env, jsize len);
794  jfloatArray (JNICALL *NewFloatArray)
795  (JNIEnv *env, jsize len);
796  jdoubleArray (JNICALL *NewDoubleArray)
797  (JNIEnv *env, jsize len);
798 
799  jboolean * (JNICALL *GetBooleanArrayElements)
800  (JNIEnv *env, jbooleanArray array, jboolean *isCopy);
801  jbyte * (JNICALL *GetByteArrayElements)
802  (JNIEnv *env, jbyteArray array, jboolean *isCopy);
803  jchar * (JNICALL *GetCharArrayElements)
804  (JNIEnv *env, jcharArray array, jboolean *isCopy);
805  jshort * (JNICALL *GetShortArrayElements)
806  (JNIEnv *env, jshortArray array, jboolean *isCopy);
807  jint * (JNICALL *GetIntArrayElements)
808  (JNIEnv *env, jintArray array, jboolean *isCopy);
809  jlong * (JNICALL *GetLongArrayElements)
810  (JNIEnv *env, jlongArray array, jboolean *isCopy);
811  jfloat * (JNICALL *GetFloatArrayElements)
812  (JNIEnv *env, jfloatArray array, jboolean *isCopy);
813  jdouble * (JNICALL *GetDoubleArrayElements)
814  (JNIEnv *env, jdoubleArray array, jboolean *isCopy);
815 
816  void (JNICALL *ReleaseBooleanArrayElements)
817  (JNIEnv *env, jbooleanArray array, jboolean *elems, jint mode);
818  void (JNICALL *ReleaseByteArrayElements)
819  (JNIEnv *env, jbyteArray array, jbyte *elems, jint mode);
820  void (JNICALL *ReleaseCharArrayElements)
821  (JNIEnv *env, jcharArray array, jchar *elems, jint mode);
822  void (JNICALL *ReleaseShortArrayElements)
823  (JNIEnv *env, jshortArray array, jshort *elems, jint mode);
824  void (JNICALL *ReleaseIntArrayElements)
825  (JNIEnv *env, jintArray array, jint *elems, jint mode);
826  void (JNICALL *ReleaseLongArrayElements)
827  (JNIEnv *env, jlongArray array, jlong *elems, jint mode);
828  void (JNICALL *ReleaseFloatArrayElements)
829  (JNIEnv *env, jfloatArray array, jfloat *elems, jint mode);
830  void (JNICALL *ReleaseDoubleArrayElements)
831  (JNIEnv *env, jdoubleArray array, jdouble *elems, jint mode);
832 
833  void (JNICALL *GetBooleanArrayRegion)
834  (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
835  void (JNICALL *GetByteArrayRegion)
836  (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
837  void (JNICALL *GetCharArrayRegion)
838  (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
839  void (JNICALL *GetShortArrayRegion)
840  (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
841  void (JNICALL *GetIntArrayRegion)
842  (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
843  void (JNICALL *GetLongArrayRegion)
844  (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
845  void (JNICALL *GetFloatArrayRegion)
846  (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
847  void (JNICALL *GetDoubleArrayRegion)
848  (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
849 
850  void (JNICALL *SetBooleanArrayRegion)
851  (JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf);
852  void (JNICALL *SetByteArrayRegion)
853  (JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf);
854  void (JNICALL *SetCharArrayRegion)
855  (JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf);
856  void (JNICALL *SetShortArrayRegion)
857  (JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf);
858  void (JNICALL *SetIntArrayRegion)
859  (JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf);
860  void (JNICALL *SetLongArrayRegion)
861  (JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf);
862  void (JNICALL *SetFloatArrayRegion)
863  (JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf);
864  void (JNICALL *SetDoubleArrayRegion)
865  (JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf);
866 
867  jint (JNICALL *RegisterNatives)
868  (JNIEnv *env, jclass clazz, const JNINativeMethod *methods,
869  jint nMethods);
870  jint (JNICALL *UnregisterNatives)
871  (JNIEnv *env, jclass clazz);
872 
873  jint (JNICALL *MonitorEnter)
874  (JNIEnv *env, jobject obj);
875  jint (JNICALL *MonitorExit)
876  (JNIEnv *env, jobject obj);
877 
878  jint (JNICALL *GetJavaVM)
879  (JNIEnv *env, JavaVM **vm);
880 
881  void (JNICALL *GetStringRegion)
882  (JNIEnv *env, jstring str, jsize start, jsize len, jchar *buf);
883  void (JNICALL *GetStringUTFRegion)
884  (JNIEnv *env, jstring str, jsize start, jsize len, char *buf);
885 
886  void * (JNICALL *GetPrimitiveArrayCritical)
887  (JNIEnv *env, jarray array, jboolean *isCopy);
888  void (JNICALL *ReleasePrimitiveArrayCritical)
889  (JNIEnv *env, jarray array, void *carray, jint mode);
890 
891  const jchar * (JNICALL *GetStringCritical)
892  (JNIEnv *env, jstring string, jboolean *isCopy);
893  void (JNICALL *ReleaseStringCritical)
894  (JNIEnv *env, jstring string, const jchar *cstring);
895 
896  jweak (JNICALL *NewWeakGlobalRef)
897  (JNIEnv *env, jobject obj);
898  void (JNICALL *DeleteWeakGlobalRef)
899  (JNIEnv *env, jweak ref);
900 
901  jboolean (JNICALL *ExceptionCheck)
902  (JNIEnv *env);
903 
904  jobject (JNICALL *NewDirectByteBuffer)
905  (JNIEnv* env, void* address, jlong capacity);
906  void* (JNICALL *GetDirectBufferAddress)
907  (JNIEnv* env, jobject buf);
908  jlong (JNICALL *GetDirectBufferCapacity)
909  (JNIEnv* env, jobject buf);
910 };
911 
912 struct JNIEnv_ {
913  const struct JNINativeInterface_ *functions;
914 #ifdef __cplusplus
915 
916  jint GetVersion() {
917  return functions->GetVersion(this);
918  }
919  jclass DefineClass(const char *name, jobject loader, const jbyte *buf,
920  jsize len) {
921  XMOG_SEH_RETVAL_4(DefineClass, name, loader, buf, len)
922  }
923  jclass FindClass(const char *name) {
924  XMOG_SEH_RETVAL_1(FindClass, name)
925  }
926  jmethodID FromReflectedMethod(jobject method) {
927  return functions->FromReflectedMethod(this,method);
928  }
929  jfieldID FromReflectedField(jobject field) {
930  return functions->FromReflectedField(this,field);
931  }
932 
933  jobject ToReflectedMethod(jclass cls, jmethodID methodID, jboolean isStatic) {
934  return functions->ToReflectedMethod(this, cls, methodID, isStatic);
935  }
936 
937  jclass GetSuperclass(jclass sub) {
938  XMOG_SEH_RETVAL_1(GetSuperclass, sub)
939  }
940 
941  jboolean IsAssignableFrom(jclass sub, jclass sup) {
942  XMOG_SEH_RETVAL_2(IsAssignableFrom, sub, sup)
943  }
944 
945  jobject ToReflectedField(jclass cls, jfieldID fieldID, jboolean isStatic) {
946  return functions->ToReflectedField(this,cls,fieldID,isStatic);
947  }
948 
949  jint Throw(jthrowable obj) {
950  XMOG_SEH_RETVAL_1(Throw, obj)
951  }
952  jint ThrowNew(jclass clazz, const char *msg) {
953  XMOG_SEH_RETVAL_2(ThrowNew, clazz, msg)
954  }
955  jthrowable ExceptionOccurred() {
956  XMOG_SEH_RETVAL_0(ExceptionOccurred)
957  }
958  void ExceptionDescribe() {
959  XMOG_SEH_NO_RETVAL_0(ExceptionDescribe)
960  }
961  void ExceptionClear() {
962  XMOG_SEH_NO_RETVAL_0(ExceptionClear)
963  }
964  void FatalError(const char *msg) {
965  XMOG_SEH_NO_RETVAL_1(FatalError, msg)
966  }
967 
968  jint PushLocalFrame(jint capacity) {
969  return functions->PushLocalFrame(this,capacity);
970  }
971  jobject PopLocalFrame(jobject result) {
972  return functions->PopLocalFrame(this,result);
973  }
974 
975  jobject NewGlobalRef(jobject lobj) {
976  XMOG_SEH_RETVAL_1(NewGlobalRef,lobj)
977  }
978  void DeleteGlobalRef(jobject gref) {
979  XMOG_SEH_NO_RETVAL_1(DeleteGlobalRef,gref)
980  }
981  void DeleteLocalRef(jobject obj) {
982  XMOG_SEH_NO_RETVAL_1(DeleteLocalRef,obj)
983  }
984 
985  jboolean IsSameObject(jobject obj1, jobject obj2) {
986  XMOG_SEH_RETVAL_2(IsSameObject,obj1,obj2)
987  }
988 
989  jobject NewLocalRef(jobject ref) {
990  XMOG_SEH_RETVAL_1(NewLocalRef,ref)
991  }
992  jint EnsureLocalCapacity(jint capacity) {
993  return functions->EnsureLocalCapacity(this,capacity);
994  }
995 
996  jobject AllocObject(jclass clazz) {
997  return functions->AllocObject(this,clazz);
998  }
999  jobject NewObject(jclass clazz, jmethodID methodID, ...) {
1000  va_list args;
1001  jobject result;
1002  va_start(args, methodID);
1003  result = functions->NewObjectV(this,clazz,methodID,args);
1004  va_end(args);
1005  return result;
1006  }
1007  jobject NewObjectV(jclass clazz, jmethodID methodID,
1008  va_list args) {
1009  XMOG_SEH_RETVAL_3(NewObjectV,clazz,methodID,args)
1010  }
1011  jobject NewObjectA(jclass clazz, jmethodID methodID,
1012  jvalue *args) {
1013  XMOG_SEH_RETVAL_3(NewObjectA,clazz,methodID,args)
1014  }
1015 
1016  jclass GetObjectClass(jobject obj) {
1017  XMOG_SEH_RETVAL_1(GetObjectClass,obj)
1018  }
1019  jboolean IsInstanceOf(jobject obj, jclass clazz) {
1020  XMOG_SEH_RETVAL_2(IsInstanceOf,obj,clazz)
1021  }
1022 
1023  jmethodID GetMethodID(jclass clazz, const char *name,
1024  const char *sig) {
1025  XMOG_SEH_RETVAL_3(GetMethodID,clazz,name,sig)
1026  }
1027 
1028  jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) {
1029  va_list args;
1030  jobject result;
1031  va_start(args,methodID);
1032  result = functions->CallObjectMethodV(this,obj,methodID,args);
1033  va_end(args);
1034  return result;
1035  }
1036  jobject CallObjectMethodV(jobject obj, jmethodID methodID,
1037  va_list args) {
1038  XMOG_SEH_RETVAL_3(CallObjectMethodV,obj,methodID,args)
1039  }
1040  jobject CallObjectMethodA(jobject obj, jmethodID methodID,
1041  jvalue * args) {
1042  XMOG_SEH_RETVAL_3(CallObjectMethodA,obj,methodID,args)
1043  }
1044 
1045  jboolean CallBooleanMethod(jobject obj,
1046  jmethodID methodID, ...) {
1047  va_list args;
1048  jboolean result;
1049  va_start(args,methodID);
1050  result = functions->CallBooleanMethodV(this,obj,methodID,args);
1051  va_end(args);
1052  return result;
1053  }
1054  jboolean CallBooleanMethodV(jobject obj, jmethodID methodID,
1055  va_list args) {
1056  XMOG_SEH_RETVAL_3(CallBooleanMethodV,obj,methodID,args)
1057  }
1058  jboolean CallBooleanMethodA(jobject obj, jmethodID methodID,
1059  jvalue * args) {
1060  XMOG_SEH_RETVAL_3(CallBooleanMethodA,obj,methodID,args)
1061  }
1062 
1063  jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) {
1064  va_list args;
1065  jbyte result;
1066  va_start(args,methodID);
1067  result = functions->CallByteMethodV(this,obj,methodID,args);
1068  va_end(args);
1069  return result;
1070  }
1071  jbyte CallByteMethodV(jobject obj, jmethodID methodID,
1072  va_list args) {
1073  XMOG_SEH_RETVAL_3(CallByteMethodV,obj,methodID,args)
1074  }
1075  jbyte CallByteMethodA(jobject obj, jmethodID methodID,
1076  jvalue * args) {
1077  XMOG_SEH_RETVAL_3(CallByteMethodA,obj,methodID,args)
1078  }
1079 
1080  jchar CallCharMethod(jobject obj, jmethodID methodID, ...) {
1081  va_list args;
1082  jchar result;
1083  va_start(args,methodID);
1084  result = functions->CallCharMethodV(this,obj,methodID,args);
1085  va_end(args);
1086  return result;
1087  }
1088  jchar CallCharMethodV(jobject obj, jmethodID methodID,
1089  va_list args) {
1090  XMOG_SEH_RETVAL_3(CallCharMethodV,obj,methodID,args)
1091  }
1092  jchar CallCharMethodA(jobject obj, jmethodID methodID,
1093  jvalue * args) {
1094  XMOG_SEH_RETVAL_3(CallCharMethodA,obj,methodID,args)
1095  }
1096 
1097  jshort CallShortMethod(jobject obj, jmethodID methodID, ...) {
1098  va_list args;
1099  jshort result;
1100  va_start(args,methodID);
1101  result = functions->CallShortMethodV(this,obj,methodID,args);
1102  va_end(args);
1103  return result;
1104  }
1105  jshort CallShortMethodV(jobject obj, jmethodID methodID,
1106  va_list args) {
1107  XMOG_SEH_RETVAL_3(CallShortMethodV,obj,methodID,args)
1108  }
1109  jshort CallShortMethodA(jobject obj, jmethodID methodID,
1110  jvalue * args) {
1111  XMOG_SEH_RETVAL_3(CallShortMethodA,obj,methodID,args)
1112  }
1113 
1114  jint CallIntMethod(jobject obj, jmethodID methodID, ...) {
1115  va_list args;
1116  jint result;
1117  va_start(args,methodID);
1118  result = functions->CallIntMethodV(this,obj,methodID,args);
1119  va_end(args);
1120  return result;
1121  }
1122  jint CallIntMethodV(jobject obj, jmethodID methodID,
1123  va_list args) {
1124  XMOG_SEH_RETVAL_3(CallIntMethodV,obj,methodID,args)
1125  }
1126  jint CallIntMethodA(jobject obj, jmethodID methodID,
1127  jvalue * args) {
1128  XMOG_SEH_RETVAL_3(CallIntMethodA,obj,methodID,args)
1129  }
1130 
1131  jlong CallLongMethod(jobject obj, jmethodID methodID, ...) {
1132  va_list args;
1133  jlong result;
1134  va_start(args,methodID);
1135  result = functions->CallLongMethodV(this,obj,methodID,args);
1136  va_end(args);
1137  return result;
1138  }
1139  jlong CallLongMethodV(jobject obj, jmethodID methodID,
1140  va_list args) {
1141  XMOG_SEH_RETVAL_3(CallLongMethodV,obj,methodID,args)
1142  }
1143  jlong CallLongMethodA(jobject obj, jmethodID methodID,
1144  jvalue * args) {
1145  XMOG_SEH_RETVAL_3(CallLongMethodA,obj,methodID,args)
1146  }
1147 
1148  jfloat CallFloatMethod(jobject obj, jmethodID methodID, ...) {
1149  va_list args;
1150  jfloat result;
1151  va_start(args,methodID);
1152  result = functions->CallFloatMethodV(this,obj,methodID,args);
1153  va_end(args);
1154  return result;
1155  }
1156  jfloat CallFloatMethodV(jobject obj, jmethodID methodID,
1157  va_list args) {
1158  XMOG_SEH_RETVAL_3(CallFloatMethodV,obj,methodID,args)
1159  }
1160  jfloat CallFloatMethodA(jobject obj, jmethodID methodID,
1161  jvalue * args) {
1162  XMOG_SEH_RETVAL_3(CallFloatMethodA,obj,methodID,args)
1163  }
1164 
1165  jdouble CallDoubleMethod(jobject obj, jmethodID methodID, ...) {
1166  va_list args;
1167  jdouble result;
1168  va_start(args,methodID);
1169  result = functions->CallDoubleMethodV(this,obj,methodID,args);
1170  va_end(args);
1171  return result;
1172  }
1173  jdouble CallDoubleMethodV(jobject obj, jmethodID methodID,
1174  va_list args) {
1175  XMOG_SEH_RETVAL_3(CallDoubleMethodV,obj,methodID,args)
1176  }
1177  jdouble CallDoubleMethodA(jobject obj, jmethodID methodID,
1178  jvalue * args) {
1179  XMOG_SEH_RETVAL_3(CallDoubleMethodA,obj,methodID,args)
1180  }
1181 
1182  void CallVoidMethod(jobject obj, jmethodID methodID, ...) {
1183  va_list args;
1184  va_start(args,methodID);
1185  functions->CallVoidMethodV(this,obj,methodID,args);
1186  va_end(args);
1187  }
1188  void CallVoidMethodV(jobject obj, jmethodID methodID,
1189  va_list args) {
1190  XMOG_SEH_NO_RETVAL_3(CallVoidMethodV,obj,methodID,args)
1191  }
1192  void CallVoidMethodA(jobject obj, jmethodID methodID,
1193  jvalue * args) {
1194  XMOG_SEH_NO_RETVAL_3(CallVoidMethodA,obj,methodID,args)
1195  }
1196 
1197  jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz,
1198  jmethodID methodID, ...) {
1199  va_list args;
1200  jobject result;
1201  va_start(args,methodID);
1202  result = functions->CallNonvirtualObjectMethodV(this,obj,clazz,
1203  methodID,args);
1204  va_end(args);
1205  return result;
1206  }
1207  jobject CallNonvirtualObjectMethodV(jobject obj, jclass clazz,
1208  jmethodID methodID, va_list args) {
1209  XMOG_SEH_RETVAL_4(CallNonvirtualObjectMethodV,obj,clazz,methodID,args)
1210  }
1211  jobject CallNonvirtualObjectMethodA(jobject obj, jclass clazz,
1212  jmethodID methodID, jvalue * args) {
1213  XMOG_SEH_RETVAL_4(CallNonvirtualObjectMethodA,obj,clazz,methodID,args)
1214  }
1215 
1216  jboolean CallNonvirtualBooleanMethod(jobject obj, jclass clazz,
1217  jmethodID methodID, ...) {
1218  va_list args;
1219  jboolean result;
1220  va_start(args,methodID);
1221  result = functions->CallNonvirtualBooleanMethodV(this,obj,clazz,
1222  methodID,args);
1223  va_end(args);
1224  return result;
1225  }
1226  jboolean CallNonvirtualBooleanMethodV(jobject obj, jclass clazz,
1227  jmethodID methodID, va_list args) {
1228  XMOG_SEH_RETVAL_4(CallNonvirtualBooleanMethodV,obj,clazz,methodID,args)
1229  }
1230  jboolean CallNonvirtualBooleanMethodA(jobject obj, jclass clazz,
1231  jmethodID methodID, jvalue * args) {
1232  XMOG_SEH_RETVAL_4(CallNonvirtualBooleanMethodA,obj,clazz,methodID,args)
1233  }
1234 
1235  jbyte CallNonvirtualByteMethod(jobject obj, jclass clazz,
1236  jmethodID methodID, ...) {
1237  va_list args;
1238  jbyte result;
1239  va_start(args,methodID);
1240  result = functions->CallNonvirtualByteMethodV(this,obj,clazz,
1241  methodID,args);
1242  va_end(args);
1243  return result;
1244  }
1245  jbyte CallNonvirtualByteMethodV(jobject obj, jclass clazz,
1246  jmethodID methodID, va_list args) {
1247  XMOG_SEH_RETVAL_4(CallNonvirtualByteMethodV,obj,clazz,methodID,args)
1248  }
1249  jbyte CallNonvirtualByteMethodA(jobject obj, jclass clazz,
1250  jmethodID methodID, jvalue * args) {
1251  XMOG_SEH_RETVAL_4(CallNonvirtualByteMethodA,obj,clazz,methodID,args)
1252  }
1253 
1254  jchar CallNonvirtualCharMethod(jobject obj, jclass clazz,
1255  jmethodID methodID, ...) {
1256  va_list args;
1257  jchar result;
1258  va_start(args,methodID);
1259  result = functions->CallNonvirtualCharMethodV(this,obj,clazz,
1260  methodID,args);
1261  va_end(args);
1262  return result;
1263  }
1264  jchar CallNonvirtualCharMethodV(jobject obj, jclass clazz,
1265  jmethodID methodID, va_list args) {
1266  XMOG_SEH_RETVAL_4(CallNonvirtualCharMethodV,obj,clazz,methodID,args)
1267  }
1268  jchar CallNonvirtualCharMethodA(jobject obj, jclass clazz,
1269  jmethodID methodID, jvalue * args) {
1270  XMOG_SEH_RETVAL_4(CallNonvirtualCharMethodA,obj,clazz,methodID,args)
1271  }
1272 
1273  jshort CallNonvirtualShortMethod(jobject obj, jclass clazz,
1274  jmethodID methodID, ...) {
1275  va_list args;
1276  jshort result;
1277  va_start(args,methodID);
1278  result = functions->CallNonvirtualShortMethodV(this,obj,clazz,
1279  methodID,args);
1280  va_end(args);
1281  return result;
1282  }
1283  jshort CallNonvirtualShortMethodV(jobject obj, jclass clazz,
1284  jmethodID methodID, va_list args) {
1285  XMOG_SEH_RETVAL_4(CallNonvirtualShortMethodV,obj,clazz,methodID,args)
1286  }
1287  jshort CallNonvirtualShortMethodA(jobject obj, jclass clazz,
1288  jmethodID methodID, jvalue * args) {
1289  XMOG_SEH_RETVAL_4(CallNonvirtualShortMethodA,obj,clazz,methodID,args)
1290  }
1291 
1292  jint CallNonvirtualIntMethod(jobject obj, jclass clazz,
1293  jmethodID methodID, ...) {
1294  va_list args;
1295  jint result;
1296  va_start(args,methodID);
1297  result = functions->CallNonvirtualIntMethodV(this,obj,clazz,
1298  methodID,args);
1299  va_end(args);
1300  return result;
1301  }
1302  jint CallNonvirtualIntMethodV(jobject obj, jclass clazz,
1303  jmethodID methodID, va_list args) {
1304  XMOG_SEH_RETVAL_4(CallNonvirtualIntMethodV,obj,clazz,methodID,args)
1305  }
1306  jint CallNonvirtualIntMethodA(jobject obj, jclass clazz,
1307  jmethodID methodID, jvalue * args) {
1308  XMOG_SEH_RETVAL_4(CallNonvirtualIntMethodA,obj,clazz,methodID,args)
1309  }
1310 
1311  jlong CallNonvirtualLongMethod(jobject obj, jclass clazz,
1312  jmethodID methodID, ...) {
1313  va_list args;
1314  jlong result;
1315  va_start(args,methodID);
1316  result = functions->CallNonvirtualLongMethodV(this,obj,clazz,
1317  methodID,args);
1318  va_end(args);
1319  return result;
1320  }
1321  jlong CallNonvirtualLongMethodV(jobject obj, jclass clazz,
1322  jmethodID methodID, va_list args) {
1323  XMOG_SEH_RETVAL_4(CallNonvirtualLongMethodV,obj,clazz,methodID,args)
1324  }
1325  jlong CallNonvirtualLongMethodA(jobject obj, jclass clazz,
1326  jmethodID methodID, jvalue * args) {
1327  XMOG_SEH_RETVAL_4(CallNonvirtualLongMethodA,obj,clazz,methodID,args)
1328  }
1329 
1330  jfloat CallNonvirtualFloatMethod(jobject obj, jclass clazz,
1331  jmethodID methodID, ...) {
1332  va_list args;
1333  jfloat result;
1334  va_start(args,methodID);
1335  result = functions->CallNonvirtualFloatMethodV(this,obj,clazz,
1336  methodID,args);
1337  va_end(args);
1338  return result;
1339  }
1340  jfloat CallNonvirtualFloatMethodV(jobject obj, jclass clazz,
1341  jmethodID methodID,
1342  va_list args) {
1343  XMOG_SEH_RETVAL_4(CallNonvirtualFloatMethodV,obj,clazz,methodID,args)
1344  }
1345  jfloat CallNonvirtualFloatMethodA(jobject obj, jclass clazz,
1346  jmethodID methodID,
1347  jvalue * args) {
1348  XMOG_SEH_RETVAL_4(CallNonvirtualFloatMethodA,obj,clazz,methodID,args)
1349  }
1350 
1351  jdouble CallNonvirtualDoubleMethod(jobject obj, jclass clazz,
1352  jmethodID methodID, ...) {
1353  va_list args;
1354  jdouble result;
1355  va_start(args,methodID);
1356  result = functions->CallNonvirtualDoubleMethodV(this,obj,clazz,
1357  methodID,args);
1358  va_end(args);
1359  return result;
1360  }
1361  jdouble CallNonvirtualDoubleMethodV(jobject obj, jclass clazz,
1362  jmethodID methodID,
1363  va_list args) {
1364  XMOG_SEH_RETVAL_4(CallNonvirtualDoubleMethodV,obj,clazz,methodID,args)
1365  }
1366  jdouble CallNonvirtualDoubleMethodA(jobject obj, jclass clazz,
1367  jmethodID methodID,
1368  jvalue * args) {
1369  XMOG_SEH_RETVAL_4(CallNonvirtualDoubleMethodA,obj,clazz,methodID,args)
1370  }
1371 
1372  void CallNonvirtualVoidMethod(jobject obj, jclass clazz,
1373  jmethodID methodID, ...) {
1374  va_list args;
1375  va_start(args,methodID);
1376  functions->CallNonvirtualVoidMethodV(this,obj,clazz,methodID,args);
1377  va_end(args);
1378  }
1379  void CallNonvirtualVoidMethodV(jobject obj, jclass clazz,
1380  jmethodID methodID,
1381  va_list args) {
1382  XMOG_SEH_NO_RETVAL_4(CallNonvirtualVoidMethodV,obj,clazz,methodID,args)
1383  }
1384  void CallNonvirtualVoidMethodA(jobject obj, jclass clazz,
1385  jmethodID methodID,
1386  jvalue * args) {
1387  XMOG_SEH_NO_RETVAL_4(CallNonvirtualVoidMethodA,obj,clazz,methodID,args)
1388  }
1389 
1390  jfieldID GetFieldID(jclass clazz, const char *name,
1391  const char *sig) {
1392  XMOG_SEH_RETVAL_3(GetFieldID,clazz,name,sig)
1393  }
1394 
1395  jobject GetObjectField(jobject obj, jfieldID fieldID) {
1396  XMOG_SEH_RETVAL_2(GetObjectField,obj,fieldID)
1397  }
1398  jboolean GetBooleanField(jobject obj, jfieldID fieldID) {
1399  XMOG_SEH_RETVAL_2(GetBooleanField,obj,fieldID)
1400  }
1401  jbyte GetByteField(jobject obj, jfieldID fieldID) {
1402  XMOG_SEH_RETVAL_2(GetByteField,obj,fieldID)
1403  }
1404  jchar GetCharField(jobject obj, jfieldID fieldID) {
1405  XMOG_SEH_RETVAL_2(GetCharField,obj,fieldID)
1406  }
1407  jshort GetShortField(jobject obj, jfieldID fieldID) {
1408  XMOG_SEH_RETVAL_2(GetShortField,obj,fieldID)
1409  }
1410  jint GetIntField(jobject obj, jfieldID fieldID) {
1411  XMOG_SEH_RETVAL_2(GetIntField,obj,fieldID)
1412  }
1413  jlong GetLongField(jobject obj, jfieldID fieldID) {
1414  XMOG_SEH_RETVAL_2(GetLongField,obj,fieldID)
1415  }
1416  jfloat GetFloatField(jobject obj, jfieldID fieldID) {
1417  XMOG_SEH_RETVAL_2(GetFloatField,obj,fieldID)
1418  }
1419  jdouble GetDoubleField(jobject obj, jfieldID fieldID) {
1420  XMOG_SEH_RETVAL_2(GetDoubleField,obj,fieldID)
1421  }
1422 
1423  void SetObjectField(jobject obj, jfieldID fieldID, jobject val) {
1424  XMOG_SEH_NO_RETVAL_3(SetObjectField,obj,fieldID,val)
1425  }
1426  void SetBooleanField(jobject obj, jfieldID fieldID,
1427  jboolean val) {
1428  XMOG_SEH_NO_RETVAL_3(SetBooleanField,obj,fieldID,val)
1429  }
1430  void SetByteField(jobject obj, jfieldID fieldID,
1431  jbyte val) {
1432  XMOG_SEH_NO_RETVAL_3(SetByteField,obj,fieldID,val)
1433  }
1434  void SetCharField(jobject obj, jfieldID fieldID,
1435  jchar val) {
1436  XMOG_SEH_NO_RETVAL_3(SetCharField,obj,fieldID,val)
1437  }
1438  void SetShortField(jobject obj, jfieldID fieldID,
1439  jshort val) {
1440  XMOG_SEH_NO_RETVAL_3(SetShortField,obj,fieldID,val)
1441  }
1442  void SetIntField(jobject obj, jfieldID fieldID,
1443  jint val) {
1444  XMOG_SEH_NO_RETVAL_3(SetIntField,obj,fieldID,val)
1445  }
1446  void SetLongField(jobject obj, jfieldID fieldID,
1447  jlong val) {
1448  XMOG_SEH_NO_RETVAL_3(SetLongField,obj,fieldID,val)
1449  }
1450  void SetFloatField(jobject obj, jfieldID fieldID,
1451  jfloat val) {
1452  XMOG_SEH_NO_RETVAL_3(SetFloatField,obj,fieldID,val)
1453  }
1454  void SetDoubleField(jobject obj, jfieldID fieldID,
1455  jdouble val) {
1456  XMOG_SEH_NO_RETVAL_3(SetDoubleField,obj,fieldID,val)
1457  }
1458 
1459  jmethodID GetStaticMethodID(jclass clazz, const char *name,
1460  const char *sig) {
1461  XMOG_SEH_RETVAL_3(GetStaticMethodID,clazz,name,sig)
1462  }
1463 
1464  jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID,
1465  ...) {
1466  va_list args;
1467  jobject result;
1468  va_start(args,methodID);
1469  result = functions->CallStaticObjectMethodV(this,clazz,methodID,args);
1470  va_end(args);
1471  return result;
1472  }
1473  jobject CallStaticObjectMethodV(jclass clazz, jmethodID methodID,
1474  va_list args) {
1475  XMOG_SEH_RETVAL_3(CallStaticObjectMethodV,clazz,methodID,args)
1476  }
1477  jobject CallStaticObjectMethodA(jclass clazz, jmethodID methodID,
1478  jvalue *args) {
1479  XMOG_SEH_RETVAL_3(CallStaticObjectMethodA,clazz,methodID,args)
1480  }
1481 
1482  jboolean CallStaticBooleanMethod(jclass clazz,
1483  jmethodID methodID, ...) {
1484  va_list args;
1485  jboolean result;
1486  va_start(args,methodID);
1487  result = functions->CallStaticBooleanMethodV(this,clazz,methodID,args);
1488  va_end(args);
1489  return result;
1490  }
1491  jboolean CallStaticBooleanMethodV(jclass clazz,
1492  jmethodID methodID, va_list args) {
1493  XMOG_SEH_RETVAL_3(CallStaticBooleanMethodV,clazz,methodID,args)
1494  }
1495  jboolean CallStaticBooleanMethodA(jclass clazz,
1496  jmethodID methodID, jvalue *args) {
1497  XMOG_SEH_RETVAL_3(CallStaticBooleanMethodA,clazz,methodID,args)
1498  }
1499 
1500  jbyte CallStaticByteMethod(jclass clazz,
1501  jmethodID methodID, ...) {
1502  va_list args;
1503  jbyte result;
1504  va_start(args,methodID);
1505  result = functions->CallStaticByteMethodV(this,clazz,methodID,args);
1506  va_end(args);
1507  return result;
1508  }
1509  jbyte CallStaticByteMethodV(jclass clazz,
1510  jmethodID methodID, va_list args) {
1511  XMOG_SEH_RETVAL_3(CallStaticByteMethodV,clazz,methodID,args)
1512  }
1513  jbyte CallStaticByteMethodA(jclass clazz,
1514  jmethodID methodID, jvalue *args) {
1515  XMOG_SEH_RETVAL_3(CallStaticByteMethodA,clazz,methodID,args)
1516  }
1517 
1518  jchar CallStaticCharMethod(jclass clazz,
1519  jmethodID methodID, ...) {
1520  va_list args;
1521  jchar result;
1522  va_start(args,methodID);
1523  result = functions->CallStaticCharMethodV(this,clazz,methodID,args);
1524  va_end(args);
1525  return result;
1526  }
1527  jchar CallStaticCharMethodV(jclass clazz,
1528  jmethodID methodID, va_list args) {
1529  XMOG_SEH_RETVAL_3(CallStaticCharMethodV,clazz,methodID,args)
1530  }
1531  jchar CallStaticCharMethodA(jclass clazz,
1532  jmethodID methodID, jvalue *args) {
1533  XMOG_SEH_RETVAL_3(CallStaticCharMethodA,clazz,methodID,args)
1534  }
1535 
1536  jshort CallStaticShortMethod(jclass clazz,
1537  jmethodID methodID, ...) {
1538  va_list args;
1539  jshort result;
1540  va_start(args,methodID);
1541  result = functions->CallStaticShortMethodV(this,clazz,methodID,args);
1542  va_end(args);
1543  return result;
1544  }
1545  jshort CallStaticShortMethodV(jclass clazz,
1546  jmethodID methodID, va_list args) {
1547  XMOG_SEH_RETVAL_3(CallStaticShortMethodV,clazz,methodID,args)
1548  }
1549  jshort CallStaticShortMethodA(jclass clazz,
1550  jmethodID methodID, jvalue *args) {
1551  XMOG_SEH_RETVAL_3(CallStaticShortMethodA,clazz,methodID,args)
1552  }
1553 
1554  jint CallStaticIntMethod(jclass clazz,
1555  jmethodID methodID, ...) {
1556  va_list args;
1557  jint result;
1558  va_start(args,methodID);
1559  result = functions->CallStaticIntMethodV(this,clazz,methodID,args);
1560  va_end(args);
1561  return result;
1562  }
1563  jint CallStaticIntMethodV(jclass clazz,
1564  jmethodID methodID, va_list args) {
1565  XMOG_SEH_RETVAL_3(CallStaticIntMethodV,clazz,methodID,args)
1566  }
1567  jint CallStaticIntMethodA(jclass clazz,
1568  jmethodID methodID, jvalue *args) {
1569  XMOG_SEH_RETVAL_3(CallStaticIntMethodA,clazz,methodID,args)
1570  }
1571 
1572  jlong CallStaticLongMethod(jclass clazz,
1573  jmethodID methodID, ...) {
1574  va_list args;
1575  jlong result;
1576  va_start(args,methodID);
1577  result = functions->CallStaticLongMethodV(this,clazz,methodID,args);
1578  va_end(args);
1579  return result;
1580  }
1581  jlong CallStaticLongMethodV(jclass clazz,
1582  jmethodID methodID, va_list args) {
1583  XMOG_SEH_RETVAL_3(CallStaticLongMethodV,clazz,methodID,args)
1584  }
1585  jlong CallStaticLongMethodA(jclass clazz,
1586  jmethodID methodID, jvalue *args) {
1587  XMOG_SEH_RETVAL_3(CallStaticLongMethodA,clazz,methodID,args)
1588  }
1589 
1590  jfloat CallStaticFloatMethod(jclass clazz,
1591  jmethodID methodID, ...) {
1592  va_list args;
1593  jfloat result;
1594  va_start(args,methodID);
1595  result = functions->CallStaticFloatMethodV(this,clazz,methodID,args);
1596  va_end(args);
1597  return result;
1598  }
1599  jfloat CallStaticFloatMethodV(jclass clazz,
1600  jmethodID methodID, va_list args) {
1601  XMOG_SEH_RETVAL_3(CallStaticFloatMethodV,clazz,methodID,args)
1602  }
1603  jfloat CallStaticFloatMethodA(jclass clazz,
1604  jmethodID methodID, jvalue *args) {
1605  XMOG_SEH_RETVAL_3(CallStaticFloatMethodA,clazz,methodID,args)
1606  }
1607 
1608  jdouble CallStaticDoubleMethod(jclass clazz,
1609  jmethodID methodID, ...) {
1610  va_list args;
1611  jdouble result;
1612  va_start(args,methodID);
1613  result = functions->CallStaticDoubleMethodV(this,clazz,methodID,args);
1614  va_end(args);
1615  return result;
1616  }
1617  jdouble CallStaticDoubleMethodV(jclass clazz,
1618  jmethodID methodID, va_list args) {
1619  XMOG_SEH_RETVAL_3(CallStaticDoubleMethodV,clazz,methodID,args)
1620  }
1621  jdouble CallStaticDoubleMethodA(jclass clazz,
1622  jmethodID methodID, jvalue *args) {
1623  XMOG_SEH_RETVAL_3(CallStaticDoubleMethodA,clazz,methodID,args)
1624  }
1625 
1626  void CallStaticVoidMethod(jclass cls, jmethodID methodID, ...) {
1627  va_list args;
1628  va_start(args,methodID);
1629  functions->CallStaticVoidMethodV(this,cls,methodID,args);
1630  va_end(args);
1631  }
1632  void CallStaticVoidMethodV(jclass cls, jmethodID methodID,
1633  va_list args) {
1634  XMOG_SEH_NO_RETVAL_3(CallStaticVoidMethodV,cls,methodID,args)
1635  }
1636  void CallStaticVoidMethodA(jclass cls, jmethodID methodID,
1637  jvalue * args) {
1638  XMOG_SEH_NO_RETVAL_3(CallStaticVoidMethodA,cls,methodID,args)
1639  }
1640 
1641  jfieldID GetStaticFieldID(jclass clazz, const char *name,
1642  const char *sig) {
1643  XMOG_SEH_RETVAL_3(GetStaticFieldID,clazz,name,sig)
1644  }
1645  jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) {
1646  XMOG_SEH_RETVAL_2(GetStaticObjectField,clazz,fieldID)
1647  }
1648  jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) {
1649  XMOG_SEH_RETVAL_2(GetStaticBooleanField,clazz,fieldID)
1650  }
1651  jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) {
1652  XMOG_SEH_RETVAL_2(GetStaticByteField,clazz,fieldID)
1653  }
1654  jchar GetStaticCharField(jclass clazz, jfieldID fieldID) {
1655  XMOG_SEH_RETVAL_2(GetStaticCharField,clazz,fieldID)
1656  }
1657  jshort GetStaticShortField(jclass clazz, jfieldID fieldID) {
1658  XMOG_SEH_RETVAL_2(GetStaticShortField,clazz,fieldID)
1659  }
1660  jint GetStaticIntField(jclass clazz, jfieldID fieldID) {
1661  XMOG_SEH_RETVAL_2(GetStaticIntField,clazz,fieldID)
1662  }
1663  jlong GetStaticLongField(jclass clazz, jfieldID fieldID) {
1664  XMOG_SEH_RETVAL_2(GetStaticLongField,clazz,fieldID)
1665  }
1666  jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) {
1667  XMOG_SEH_RETVAL_2(GetStaticFloatField,clazz,fieldID)
1668  }
1669  jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) {
1670  XMOG_SEH_RETVAL_2(GetStaticDoubleField,clazz,fieldID)
1671  }
1672 
1673  void SetStaticObjectField(jclass clazz, jfieldID fieldID,
1674  jobject value) {
1675  XMOG_SEH_NO_RETVAL_3(SetStaticObjectField,clazz,fieldID,value)
1676  }
1677  void SetStaticBooleanField(jclass clazz, jfieldID fieldID,
1678  jboolean value) {
1679  XMOG_SEH_NO_RETVAL_3(SetStaticBooleanField,clazz,fieldID,value)
1680  }
1681  void SetStaticByteField(jclass clazz, jfieldID fieldID,
1682  jbyte value) {
1683  XMOG_SEH_NO_RETVAL_3(SetStaticByteField,clazz,fieldID,value)
1684  }
1685  void SetStaticCharField(jclass clazz, jfieldID fieldID,
1686  jchar value) {
1687  XMOG_SEH_NO_RETVAL_3(SetStaticCharField,clazz,fieldID,value)
1688  }
1689  void SetStaticShortField(jclass clazz, jfieldID fieldID,
1690  jshort value) {
1691  XMOG_SEH_NO_RETVAL_3(SetStaticShortField,clazz,fieldID,value)
1692  }
1693  void SetStaticIntField(jclass clazz, jfieldID fieldID,
1694  jint value) {
1695  XMOG_SEH_NO_RETVAL_3(SetStaticIntField,clazz,fieldID,value)
1696  }
1697  void SetStaticLongField(jclass clazz, jfieldID fieldID,
1698  jlong value) {
1699  XMOG_SEH_NO_RETVAL_3(SetStaticLongField,clazz,fieldID,value)
1700  }
1701  void SetStaticFloatField(jclass clazz, jfieldID fieldID,
1702  jfloat value) {
1703  XMOG_SEH_NO_RETVAL_3(SetStaticFloatField,clazz,fieldID,value)
1704  }
1705  void SetStaticDoubleField(jclass clazz, jfieldID fieldID,
1706  jdouble value) {
1707  XMOG_SEH_NO_RETVAL_3(SetStaticDoubleField,clazz,fieldID,value)
1708  }
1709 
1710  jstring NewString(const jchar *unicode, jsize len) {
1711  XMOG_SEH_RETVAL_2(NewString,unicode,len)
1712  }
1713  jsize GetStringLength(jstring str) {
1714  XMOG_SEH_RETVAL_1(GetStringLength,str)
1715  }
1716  const jchar *GetStringChars(jstring str, jboolean *isCopy) {
1717  XMOG_SEH_RETVAL_2(GetStringChars,str,isCopy)
1718  }
1719  void ReleaseStringChars(jstring str, const jchar *chars) {
1720  XMOG_SEH_NO_RETVAL_2(ReleaseStringChars,str,chars)
1721  }
1722 
1723  jstring NewStringUTF(const char *utf) {
1724  XMOG_SEH_RETVAL_1(NewStringUTF,utf)
1725  }
1726  jsize GetStringUTFLength(jstring str) {
1727  XMOG_SEH_RETVAL_1(GetStringUTFLength,str)
1728  }
1729  const char* GetStringUTFChars(jstring str, jboolean *isCopy) {
1730  XMOG_SEH_RETVAL_2(GetStringUTFChars,str,isCopy)
1731  }
1732  void ReleaseStringUTFChars(jstring str, const char* chars) {
1733  XMOG_SEH_NO_RETVAL_2(ReleaseStringUTFChars,str,chars)
1734  }
1735 
1736  jsize GetArrayLength(jarray array) {
1737  XMOG_SEH_RETVAL_1(GetArrayLength,array)
1738  }
1739 
1740  jobjectArray NewObjectArray(jsize len, jclass clazz,
1741  jobject init) {
1742  XMOG_SEH_RETVAL_3(NewObjectArray,len,clazz,init)
1743  }
1744  jobject GetObjectArrayElement(jobjectArray array, jsize index) {
1745  XMOG_SEH_RETVAL_2(GetObjectArrayElement,array,index)
1746  }
1747  void SetObjectArrayElement(jobjectArray array, jsize index,
1748  jobject val) {
1749  XMOG_SEH_NO_RETVAL_3(SetObjectArrayElement,array,index,val)
1750  }
1751 
1752  jbooleanArray NewBooleanArray(jsize len) {
1753  XMOG_SEH_RETVAL_1(NewBooleanArray,len)
1754  }
1755  jbyteArray NewByteArray(jsize len) {
1756  XMOG_SEH_RETVAL_1(NewByteArray,len)
1757  }
1758  jcharArray NewCharArray(jsize len) {
1759  XMOG_SEH_RETVAL_1(NewCharArray,len)
1760  }
1761  jshortArray NewShortArray(jsize len) {
1762  XMOG_SEH_RETVAL_1(NewShortArray,len)
1763  }
1764  jintArray NewIntArray(jsize len) {
1765  XMOG_SEH_RETVAL_1(NewIntArray,len)
1766  }
1767  jlongArray NewLongArray(jsize len) {
1768  XMOG_SEH_RETVAL_1(NewLongArray,len)
1769  }
1770  jfloatArray NewFloatArray(jsize len) {
1771  XMOG_SEH_RETVAL_1(NewFloatArray,len)
1772  }
1773  jdoubleArray NewDoubleArray(jsize len) {
1774  XMOG_SEH_RETVAL_1(NewDoubleArray,len)
1775  }
1776 
1777  jboolean * GetBooleanArrayElements(jbooleanArray array, jboolean *isCopy) {
1778  XMOG_SEH_RETVAL_2(GetBooleanArrayElements,array,isCopy)
1779  }
1780  jbyte * GetByteArrayElements(jbyteArray array, jboolean *isCopy) {
1781  XMOG_SEH_RETVAL_2(GetByteArrayElements,array,isCopy)
1782  }
1783  jchar * GetCharArrayElements(jcharArray array, jboolean *isCopy) {
1784  XMOG_SEH_RETVAL_2(GetCharArrayElements,array,isCopy)
1785  }
1786  jshort * GetShortArrayElements(jshortArray array, jboolean *isCopy) {
1787  XMOG_SEH_RETVAL_2(GetShortArrayElements,array,isCopy)
1788  }
1789  jint * GetIntArrayElements(jintArray array, jboolean *isCopy) {
1790  XMOG_SEH_RETVAL_2(GetIntArrayElements,array,isCopy)
1791  }
1792  jlong * GetLongArrayElements(jlongArray array, jboolean *isCopy) {
1793  XMOG_SEH_RETVAL_2(GetLongArrayElements,array,isCopy)
1794  }
1795  jfloat * GetFloatArrayElements(jfloatArray array, jboolean *isCopy) {
1796  XMOG_SEH_RETVAL_2(GetFloatArrayElements,array,isCopy)
1797  }
1798  jdouble * GetDoubleArrayElements(jdoubleArray array, jboolean *isCopy) {
1799  XMOG_SEH_RETVAL_2(GetDoubleArrayElements,array,isCopy)
1800  }
1801 
1802  void ReleaseBooleanArrayElements(jbooleanArray array,
1803  jboolean *elems,
1804  jint mode) {
1805  XMOG_SEH_NO_RETVAL_3(ReleaseBooleanArrayElements,array,elems,mode)
1806  }
1807  void ReleaseByteArrayElements(jbyteArray array,
1808  jbyte *elems,
1809  jint mode) {
1810  XMOG_SEH_NO_RETVAL_3(ReleaseByteArrayElements,array,elems,mode)
1811  }
1812  void ReleaseCharArrayElements(jcharArray array,
1813  jchar *elems,
1814  jint mode) {
1815  XMOG_SEH_NO_RETVAL_3(ReleaseCharArrayElements,array,elems,mode)
1816  }
1817  void ReleaseShortArrayElements(jshortArray array,
1818  jshort *elems,
1819  jint mode) {
1820  XMOG_SEH_NO_RETVAL_3(ReleaseShortArrayElements,array,elems,mode)
1821  }
1822  void ReleaseIntArrayElements(jintArray array,
1823  jint *elems,
1824  jint mode) {
1825  XMOG_SEH_NO_RETVAL_3(ReleaseIntArrayElements,array,elems,mode)
1826  }
1827  void ReleaseLongArrayElements(jlongArray array,
1828  jlong *elems,
1829  jint mode) {
1830  XMOG_SEH_NO_RETVAL_3(ReleaseLongArrayElements,array,elems,mode)
1831  }
1832  void ReleaseFloatArrayElements(jfloatArray array,
1833  jfloat *elems,
1834  jint mode) {
1835  XMOG_SEH_NO_RETVAL_3(ReleaseFloatArrayElements,array,elems,mode)
1836  }
1837  void ReleaseDoubleArrayElements(jdoubleArray array,
1838  jdouble *elems,
1839  jint mode) {
1840  XMOG_SEH_NO_RETVAL_3(ReleaseDoubleArrayElements,array,elems,mode)
1841  }
1842 
1843  void GetBooleanArrayRegion(jbooleanArray array,
1844  jsize start, jsize len, jboolean *buf) {
1845  XMOG_SEH_NO_RETVAL_4(GetBooleanArrayRegion,array,start,len,buf)
1846  }
1847  void GetByteArrayRegion(jbyteArray array,
1848  jsize start, jsize len, jbyte *buf) {
1849  XMOG_SEH_NO_RETVAL_4(GetByteArrayRegion,array,start,len,buf)
1850  }
1851  void GetCharArrayRegion(jcharArray array,
1852  jsize start, jsize len, jchar *buf) {
1853  XMOG_SEH_NO_RETVAL_4(GetCharArrayRegion,array,start,len,buf)
1854  }
1855  void GetShortArrayRegion(jshortArray array,
1856  jsize start, jsize len, jshort *buf) {
1857  XMOG_SEH_NO_RETVAL_4(GetShortArrayRegion,array,start,len,buf)
1858  }
1859  void GetIntArrayRegion(jintArray array,
1860  jsize start, jsize len, jint *buf) {
1861  XMOG_SEH_NO_RETVAL_4(GetIntArrayRegion,array,start,len,buf)
1862  }
1863  void GetLongArrayRegion(jlongArray array,
1864  jsize start, jsize len, jlong *buf) {
1865  XMOG_SEH_NO_RETVAL_4(GetLongArrayRegion,array,start,len,buf)
1866  }
1867  void GetFloatArrayRegion(jfloatArray array,
1868  jsize start, jsize len, jfloat *buf) {
1869  XMOG_SEH_NO_RETVAL_4(GetFloatArrayRegion,array,start,len,buf)
1870  }
1871  void GetDoubleArrayRegion(jdoubleArray array,
1872  jsize start, jsize len, jdouble *buf) {
1873  XMOG_SEH_NO_RETVAL_4(GetDoubleArrayRegion,array,start,len,buf)
1874  }
1875 
1876  void SetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len,
1877  jboolean *buf) {
1878  XMOG_SEH_NO_RETVAL_4(SetBooleanArrayRegion,array,start,len,buf)
1879  }
1880  void SetByteArrayRegion(jbyteArray array, jsize start, jsize len,
1881  jbyte *buf) {
1882  XMOG_SEH_NO_RETVAL_4(SetByteArrayRegion,array,start,len,buf)
1883  }
1884  void SetCharArrayRegion(jcharArray array, jsize start, jsize len,
1885  jchar *buf) {
1886  XMOG_SEH_NO_RETVAL_4(SetCharArrayRegion,array,start,len,buf)
1887  }
1888  void SetShortArrayRegion(jshortArray array, jsize start, jsize len,
1889  jshort *buf) {
1890  XMOG_SEH_NO_RETVAL_4(SetShortArrayRegion,array,start,len,buf)
1891  }
1892  void SetIntArrayRegion(jintArray array, jsize start, jsize len,
1893  jint *buf) {
1894  XMOG_SEH_NO_RETVAL_4(SetIntArrayRegion,array,start,len,buf)
1895  }
1896  void SetLongArrayRegion(jlongArray array, jsize start, jsize len,
1897  jlong *buf) {
1898  XMOG_SEH_NO_RETVAL_4(SetLongArrayRegion,array,start,len,buf)
1899  }
1900  void SetFloatArrayRegion(jfloatArray array, jsize start, jsize len,
1901  jfloat *buf) {
1902  XMOG_SEH_NO_RETVAL_4(SetFloatArrayRegion,array,start,len,buf)
1903  }
1904  void SetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len,
1905  jdouble *buf) {
1906  XMOG_SEH_NO_RETVAL_4(SetDoubleArrayRegion,array,start,len,buf)
1907  }
1908 
1909  jint RegisterNatives(jclass clazz, const JNINativeMethod *methods,
1910  jint nMethods) {
1911  XMOG_SEH_RETVAL_3(RegisterNatives,clazz,methods,nMethods)
1912  }
1913  jint UnregisterNatives(jclass clazz) {
1914  XMOG_SEH_RETVAL_1(UnregisterNatives,clazz)
1915  }
1916 
1917  jint MonitorEnter(jobject obj) {
1918  XMOG_SEH_RETVAL_1(MonitorEnter,obj)
1919  }
1920  jint MonitorExit(jobject obj) {
1921  XMOG_SEH_RETVAL_1(MonitorExit,obj)
1922  }
1923 
1924  jint GetJavaVM(JavaVM **vm) {
1925  return functions->GetJavaVM(this,vm);
1926  }
1927 
1928  void GetStringRegion(jstring str, jsize start, jsize len, jchar *buf) {
1929  XMOG_SEH_NO_RETVAL_4(GetStringRegion,str,start,len,buf)
1930  }
1931  void GetStringUTFRegion(jstring str, jsize start, jsize len, char *buf) {
1932  XMOG_SEH_NO_RETVAL_4(GetStringUTFRegion,str,start,len,buf)
1933  }
1934 
1935  void * GetPrimitiveArrayCritical(jarray array, jboolean *isCopy) {
1936  XMOG_SEH_RETVAL_2(GetPrimitiveArrayCritical,array,isCopy)
1937  }
1938  void ReleasePrimitiveArrayCritical(jarray array, void *carray, jint mode) {
1939  XMOG_SEH_NO_RETVAL_3(ReleasePrimitiveArrayCritical,array,carray,mode)
1940  }
1941 
1942  const jchar * GetStringCritical(jstring string, jboolean *isCopy) {
1943  XMOG_SEH_RETVAL_2(GetStringCritical,string,isCopy)
1944  }
1945  void ReleaseStringCritical(jstring string, const jchar *cstring) {
1946  XMOG_SEH_NO_RETVAL_2(ReleaseStringCritical,string,cstring)
1947  }
1948 
1949  jweak NewWeakGlobalRef(jobject obj) {
1950  XMOG_SEH_RETVAL_1(NewWeakGlobalRef,obj)
1951  }
1952  void DeleteWeakGlobalRef(jweak ref) {
1953  XMOG_SEH_NO_RETVAL_1(DeleteWeakGlobalRef,ref)
1954  }
1955 
1956  jboolean ExceptionCheck() {
1957  XMOG_SEH_RETVAL_0(ExceptionCheck)
1958  }
1959 
1960  jobject NewDirectByteBuffer(void* address, jlong capacity) {
1961  XMOG_SEH_RETVAL_2(NewDirectByteBuffer,address,capacity)
1962  }
1963  void* GetDirectBufferAddress(jobject buf) {
1964  XMOG_SEH_RETVAL_1(GetDirectBufferAddress,buf)
1965  }
1966  jlong GetDirectBufferCapacity(jobject buf) {
1967  XMOG_SEH_RETVAL_1(GetDirectBufferCapacity,buf)
1968  }
1969 
1970 #endif /* __cplusplus */
1971 };
1972 
1973 typedef struct JavaVMOption {
1974  char *optionString;
1975  void *extraInfo;
1976 } JavaVMOption;
1977 
1978 typedef struct JavaVMInitArgs {
1979  jint version;
1980 
1981  jint nOptions;
1982  JavaVMOption *options;
1983  jboolean ignoreUnrecognized;
1984 } JavaVMInitArgs;
1985 
1986 typedef struct JavaVMAttachArgs {
1987  jint version;
1988 
1989  char *name;
1990  jobject group;
1991 } JavaVMAttachArgs;
1992 
1993 /* These structures will be VM-specific. */
1994 
1995 typedef struct JDK1_1InitArgs {
1996  jint version;
1997 
1998  char **properties;
1999  jint checkSource;
2000  jint nativeStackSize;
2001  jint javaStackSize;
2002  jint minHeapSize;
2003  jint maxHeapSize;
2004  jint verifyMode;
2005  char *classpath;
2006 
2007  jint (JNICALL *vfprintf)(FILE *fp, const char *format, va_list args);
2008  void (JNICALL *exit)(jint code);
2009  void (JNICALL *abort)(void);
2010 
2011  jint enableClassGC;
2012  jint enableVerboseGC;
2013  jint disableAsyncGC;
2014  jint verbose;
2015  jboolean debugging;
2016  jint debugPort;
2017 } JDK1_1InitArgs;
2018 
2019 typedef struct JDK1_1AttachArgs {
2020  void * __padding; /* C compilers don't allow empty structures. */
2021 } JDK1_1AttachArgs;
2022 
2023 #define JDK1_2
2024 #define JDK1_4
2025 
2026 /* End VM-specific. */
2027 
2028 struct JNIInvokeInterface_ {
2029  void *reserved0;
2030  void *reserved1;
2031  void *reserved2;
2032 
2033  jint (JNICALL *DestroyJavaVM)(JavaVM *vm);
2034 
2035  jint (JNICALL *AttachCurrentThread)(JavaVM *vm, void **penv, void *args);
2036 
2037  jint (JNICALL *DetachCurrentThread)(JavaVM *vm);
2038 
2039  jint (JNICALL *GetEnv)(JavaVM *vm, void **penv, jint version);
2040 
2041  jint (JNICALL *AttachCurrentThreadAsDaemon)(JavaVM *vm, void **penv, void *args);
2042 };
2043 
2044 struct JavaVM_ {
2045  const struct JNIInvokeInterface_ *functions;
2046 #ifdef __cplusplus
2047 
2048  jint DestroyJavaVM() {
2049  return functions->DestroyJavaVM(this);
2050  }
2051  jint AttachCurrentThread(void **penv, void *args) {
2052  return functions->AttachCurrentThread(this, penv, args);
2053  }
2054  jint DetachCurrentThread() {
2055  return functions->DetachCurrentThread(this);
2056  }
2057 
2058  jint GetEnv(void **penv, jint version) {
2059  return functions->GetEnv(this, penv, version);
2060  }
2061  jint AttachCurrentThreadAsDaemon(void **penv, void *args) {
2062  return functions->AttachCurrentThreadAsDaemon(this, penv, args);
2063  }
2064 #endif
2065 };
2066 
2067 #ifdef _JNI_IMPLEMENTATION_
2068 #define _JNI_IMPORT_OR_EXPORT_ JNIEXPORT
2069 #else
2070 #define _JNI_IMPORT_OR_EXPORT_ JNIIMPORT
2071 #endif
2072 _JNI_IMPORT_OR_EXPORT_ jint JNICALL
2073 JNI_GetDefaultJavaVMInitArgs(void *args);
2074 
2075 _JNI_IMPORT_OR_EXPORT_ jint JNICALL
2076 JNI_CreateJavaVM(JavaVM **pvm, void **penv, void *args);
2077 
2078 _JNI_IMPORT_OR_EXPORT_ jint JNICALL
2079 JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *);
2080 
2081 /* Defined by native libraries. */
2082 JNIEXPORT jint JNICALL
2083 JNI_OnLoad(JavaVM *vm, void *reserved);
2084 
2085 JNIEXPORT void JNICALL
2086 JNI_OnUnload(JavaVM *vm, void *reserved);
2087 
2088 #define JNI_VERSION_1_1 0x00010001
2089 #define JNI_VERSION_1_2 0x00010002
2090 #define JNI_VERSION_1_4 0x00010004
2091 #define JNI_VERSION_1_5 0x00010005
2092 #define JNI_VERSION_1_6 0x00010006
2093 #define JNI_VERSION_1_7 0x00010007
2094 #define JNI_VERSION_1_8 0x00010008
2095 #define JNI_VERSION_9 0x00090000
2096 #define JNI_VERSION_10 0x000a0000
2097 #define JNI_VERSION_11 0x000b0000
2098 #define JNI_VERSION_12 0x000c0000
2099 #define JNI_VERSION_13 0x000d0000
2100 #define JNI_VERSION_14 0x000e0000
2101 #define JNI_VERSION_15 0x000f0000
2102 
2103 #ifdef __cplusplus
2104 } /* extern "C" */
2105 #endif /* __cplusplus */
2106 
2107 #endif
2108 
2109 
2111 
2112 // we always undefine the new and delete operators by default (MFC)
2113 // simply define XMOG_UNDEFINE_MEM_OPERATORS to 0 to disable this behavior
2114 // if you have a particular requirement
2115 #ifndef XMOG_UNDEFINE_MEM_OPERATORS
2116 # define XMOG_UNDEFINE_MEM_OPERATORS 1
2117 #endif
2118 
2119 
2120 // some compilers (g++) don't handle this->SUPER_TYPE::METHOD() correctly
2121 // and end up with a recursive call on this type's method. This can be
2122 // worked around by constructing a temporary super instance in the invocation.
2123 // the easier workaround of just omitting the 'this->' does not work in the
2124 // presence of overloading (sigh...)
2125 #if !defined(XMOG_BROKEN_SUPER_THIS)
2126 # define XMOG_BROKEN_SUPER_THIS 0
2127 #endif
2128 #if (XMOG_BROKEN_SUPER_THIS==1)
2129 # if ((__GNUC__==3) && (__GNUC_MINOR__<4)) || ((__GNUC__==4) && (__GNUC_MINOR__)>=1)
2130 // old versions of g++ seem to be really broken and require this workaround
2131 # define XMOG_SUPER_THIS(x) x( *this ) .
2132 # else
2133 // newer versions at least handle it simply without 'this->'
2134 # define XMOG_SUPER_THIS(x) x ::
2135 # endif
2136 #else
2137 # define XMOG_SUPER_THIS(x) this-> x ::
2138 #endif
2139 
2140 
2141 typedef char XMOGVERSION[ 16 ];
2142 typedef char XMOGCONFIG[ 128 ];
2143 typedef char XMOGPROPERTY[ 256 ];
2144 
2145 #if (XMOG_BUILD_XMOG==1)
2146 
2147  extern const char * NULL_STRING;
2148  extern const char * TRUE_STRING;
2149  extern const char * FALSE_STRING;
2150 
2151 # if !defined(XMOG_MAJOR)
2152 # define XMOG_MAJOR 3
2153 # endif
2154 
2155 # if !defined(XMOG_MINOR)
2156 # define XMOG_MINOR 0
2157 # endif
2158 
2159 # if !defined(XMOG_PATCH)
2160 # define XMOG_PATCH 0
2161 # endif
2162 
2163 # if !defined(XMOG_BUILD)
2164 # define XMOG_BUILD 0
2165 # endif
2166 
2167 #else
2168 
2169  extern "C" XMOG_DECLSPEC int getXmogrtMajor();
2170  extern "C" XMOG_DECLSPEC int getXmogrtMinor();
2171  extern "C" XMOG_DECLSPEC int getXmogrtPatch();
2172  extern "C" XMOG_DECLSPEC int getXmogrtBuild();
2173 
2174 #endif
2175 
2176 
2177 typedef unsigned xmog_flags;
2178 
2179 
2186 {
2187 };
2188 
2189 
2190 static xmog_dummy _use_java_ctor;
2191 
2192 
2193 //
2194 // These values are used by configuration hooks (configuration callbacks)
2195 //
2196 #define XMOG_BEFORE_INITIALIZATION 0
2197 #define XMOG_AFTER_INITIALIZATION 1
2198 #define XMOG_BEFORE_LOADING 2
2199 #define XMOG_AFTER_LOADING 3
2200 #define XMOG_BEFORE XMOG_BEFORE_INITIALIZATION
2201 #define XMOG_AFTER XMOG_AFTER_INITIALIZATION
2202 
2203 
2204 //
2205 // Error codes used by the runtime frmaework
2206 //
2207 #define XMOG_NOT_YET_IMPLEMENTED -1000
2208 #define XMOG_CLASSNAME_IS_NULL -1001
2209 #define XMOG_REF_IS_NULL -1002
2210 #define XMOG_CLASS_NOT_FOUND -1003
2211 #define XMOG_FIELD_NOT_FOUND -1004
2212 #define XMOG_SET_FIELD_FAILED -1005
2213 #define XMOG_GET_FIELD_FAILED -1006
2214 #define XMOG_UNKNOWN_OWNER -1007
2215 #define XMOG_METHOD_NOT_FOUND -1008
2216 #define XMOG_NEW_STRING -1009
2217 #define XMOG_NEW_STRING_UTF -1010
2218 #define XMOG_METHOD_CALL_FAILED -1011
2219 #define XMOG_CREATE_JAVA_PEER -1012
2220 #define XMOG_TO_JAVA_PEER -1013
2221 #define XMOG_ARRAY_GET_ELEMENT -1014
2222 #define XMOG_ARRAY_SET_ELEMENT -1015
2223 #define XMOG_ARRAY_CREATE -1016
2224 #define XMOG_BUFFER_OVERRUN -1017
2225 #define XMOG_NULL_ENV -1018
2226 #define XMOG_NO_PEER_TYPE -1019
2227 #define XMOG_ARRAY_GET_ELEMENTS -1020
2228 #define XMOG_ARRAY_SET_ELEMENTS -1021
2229 #define XMOG_XML_PARSER -1022
2230 #define XMOG_CONFIGFILE_NOT_FOUND -1023
2231 #define XMOG_LEGACY_PARSER -1024
2232 #define XMOG_CANT_LOAD_JVM -1025
2233 #define XMOG_MONITOR_ENTER -1026
2234 #define XMOG_MONITOR_EXIT -1027
2235 #define XMOG_TLS_FAILURE -1028
2236 
2237 #endif /* xmog_inc */
xmog_dummy
A type that is used as a disambiguation tool to distinguish certain C++ methods from proxy methods th...
Definition: xmog.h:2185
FatalError
@ FatalError
Terminate the JVM by calling the JNI function FatalError.
Definition: xmog_options.h:145

Copyright (c) 1999-2020 by Codemesh, Inc., ALL RIGHTS RESERVED.