Last active
January 7, 2025 01:59
-
-
Save robloxarchiver/26b9e2bc12f0f4ca160219dffdb61fba to your computer and use it in GitHub Desktop.
JNI All-In-One for easy usage
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
All-In-One (AIO) JVM/JNI Includes File | |
Crafted with love by BobloxArchiver/Niggenheimer | |
Files Included: (In order) | |
classfile_constants.h | |
win32/jawt_md.h | |
win32/jni_md.h | |
jni.h | |
jvmti.h | |
jvmticmlr.h | |
jawt.h | |
jdwpTransport.h | |
win32/bridge/AccessBridgePackages.h | |
win32/bridge/AccessBridgeCallbacks.h | |
win32/bridge/AccessBridgeCalls.h | |
*/ | |
#ifndef JNI_AIO_HPP | |
#define JNI_AIO_HPP | |
#include <windows.h> | |
#include <cstdarg> | |
#include <cstdio> | |
#ifndef INTERNAL_CLASSFILE_CONSTANTS | |
#define INTERNAL_CLASSFILE_CONSTANTS | |
#ifdef __cplusplus | |
extern "C" | |
{ | |
#endif | |
#define JVM_CLASSFILE_MAJOR_VERSION 65 | |
#define JVM_CLASSFILE_MINOR_VERSION 0 | |
enum | |
{ | |
JVM_ACC_PUBLIC = 0x0001, | |
JVM_ACC_PRIVATE = 0x0002, | |
JVM_ACC_PROTECTED = 0x0004, | |
JVM_ACC_STATIC = 0x0008, | |
JVM_ACC_FINAL = 0x0010, | |
JVM_ACC_SYNCHRONIZED = 0x0020, | |
JVM_ACC_SUPER = 0x0020, | |
JVM_ACC_VOLATILE = 0x0040, | |
JVM_ACC_BRIDGE = 0x0040, | |
JVM_ACC_TRANSIENT = 0x0080, | |
JVM_ACC_VARARGS = 0x0080, | |
JVM_ACC_NATIVE = 0x0100, | |
JVM_ACC_INTERFACE = 0x0200, | |
JVM_ACC_ABSTRACT = 0x0400, | |
JVM_ACC_STRICT = 0x0800, | |
JVM_ACC_SYNTHETIC = 0x1000, | |
JVM_ACC_ANNOTATION = 0x2000, | |
JVM_ACC_ENUM = 0x4000, | |
JVM_ACC_MODULE = 0x8000 | |
}; | |
#define JVM_ACC_PUBLIC_BIT 0 | |
#define JVM_ACC_PRIVATE_BIT 1 | |
#define JVM_ACC_PROTECTED_BIT 2 | |
#define JVM_ACC_STATIC_BIT 3 | |
#define JVM_ACC_FINAL_BIT 4 | |
#define JVM_ACC_SYNCHRONIZED_BIT 5 | |
#define JVM_ACC_SUPER_BIT 5 | |
#define JVM_ACC_VOLATILE_BIT 6 | |
#define JVM_ACC_BRIDGE_BIT 6 | |
#define JVM_ACC_TRANSIENT_BIT 7 | |
#define JVM_ACC_VARARGS_BIT 7 | |
#define JVM_ACC_NATIVE_BIT 8 | |
#define JVM_ACC_INTERFACE_BIT 9 | |
#define JVM_ACC_ABSTRACT_BIT 10 | |
#define JVM_ACC_STRICT_BIT 11 | |
#define JVM_ACC_SYNTHETIC_BIT 12 | |
#define JVM_ACC_ANNOTATION_BIT 13 | |
#define JVM_ACC_ENUM_BIT 14 | |
enum | |
{ | |
JVM_T_BOOLEAN = 4, | |
JVM_T_CHAR = 5, | |
JVM_T_FLOAT = 6, | |
JVM_T_DOUBLE = 7, | |
JVM_T_BYTE = 8, | |
JVM_T_SHORT = 9, | |
JVM_T_INT = 10, | |
JVM_T_LONG = 11 | |
}; | |
enum | |
{ | |
JVM_CONSTANT_Utf8 = 1, | |
JVM_CONSTANT_Unicode = 2, | |
JVM_CONSTANT_Integer = 3, | |
JVM_CONSTANT_Float = 4, | |
JVM_CONSTANT_Long = 5, | |
JVM_CONSTANT_Double = 6, | |
JVM_CONSTANT_Class = 7, | |
JVM_CONSTANT_String = 8, | |
JVM_CONSTANT_Fieldref = 9, | |
JVM_CONSTANT_Methodref = 10, | |
JVM_CONSTANT_InterfaceMethodref = 11, | |
JVM_CONSTANT_NameAndType = 12, | |
JVM_CONSTANT_MethodHandle = 15, | |
JVM_CONSTANT_MethodType = 16, | |
JVM_CONSTANT_Dynamic = 17, | |
JVM_CONSTANT_InvokeDynamic = 18, | |
JVM_CONSTANT_Module = 19, | |
JVM_CONSTANT_Package = 20, | |
JVM_CONSTANT_ExternalMax = 20 | |
}; | |
enum | |
{ | |
JVM_REF_getField = 1, | |
JVM_REF_getStatic = 2, | |
JVM_REF_putField = 3, | |
JVM_REF_putStatic = 4, | |
JVM_REF_invokeVirtual = 5, | |
JVM_REF_invokeStatic = 6, | |
JVM_REF_invokeSpecial = 7, | |
JVM_REF_newInvokeSpecial = 8, | |
JVM_REF_invokeInterface = 9 | |
}; | |
enum | |
{ | |
JVM_ITEM_Top = 0, | |
JVM_ITEM_Integer = 1, | |
JVM_ITEM_Float = 2, | |
JVM_ITEM_Double = 3, | |
JVM_ITEM_Long = 4, | |
JVM_ITEM_Null = 5, | |
JVM_ITEM_UninitializedThis = 6, | |
JVM_ITEM_Object = 7, | |
JVM_ITEM_Uninitialized = 8 | |
}; | |
enum | |
{ | |
JVM_SIGNATURE_SLASH = '/', | |
JVM_SIGNATURE_DOT = '.', | |
JVM_SIGNATURE_SPECIAL = '<', | |
JVM_SIGNATURE_ENDSPECIAL = '>', | |
JVM_SIGNATURE_ARRAY = '[', | |
JVM_SIGNATURE_BYTE = 'B', | |
JVM_SIGNATURE_CHAR = 'C', | |
JVM_SIGNATURE_CLASS = 'L', | |
JVM_SIGNATURE_ENDCLASS = ';', | |
JVM_SIGNATURE_ENUM = 'E', | |
JVM_SIGNATURE_FLOAT = 'F', | |
JVM_SIGNATURE_DOUBLE = 'D', | |
JVM_SIGNATURE_FUNC = '(', | |
JVM_SIGNATURE_ENDFUNC = ')', | |
JVM_SIGNATURE_INT = 'I', | |
JVM_SIGNATURE_LONG = 'J', | |
JVM_SIGNATURE_SHORT = 'S', | |
JVM_SIGNATURE_VOID = 'V', | |
JVM_SIGNATURE_BOOLEAN = 'Z' | |
}; | |
enum | |
{ | |
JVM_OPC_nop = 0, | |
JVM_OPC_aconst_null = 1, | |
JVM_OPC_iconst_m1 = 2, | |
JVM_OPC_iconst_0 = 3, | |
JVM_OPC_iconst_1 = 4, | |
JVM_OPC_iconst_2 = 5, | |
JVM_OPC_iconst_3 = 6, | |
JVM_OPC_iconst_4 = 7, | |
JVM_OPC_iconst_5 = 8, | |
JVM_OPC_lconst_0 = 9, | |
JVM_OPC_lconst_1 = 10, | |
JVM_OPC_fconst_0 = 11, | |
JVM_OPC_fconst_1 = 12, | |
JVM_OPC_fconst_2 = 13, | |
JVM_OPC_dconst_0 = 14, | |
JVM_OPC_dconst_1 = 15, | |
JVM_OPC_bipush = 16, | |
JVM_OPC_sipush = 17, | |
JVM_OPC_ldc = 18, | |
JVM_OPC_ldc_w = 19, | |
JVM_OPC_ldc2_w = 20, | |
JVM_OPC_iload = 21, | |
JVM_OPC_lload = 22, | |
JVM_OPC_fload = 23, | |
JVM_OPC_dload = 24, | |
JVM_OPC_aload = 25, | |
JVM_OPC_iload_0 = 26, | |
JVM_OPC_iload_1 = 27, | |
JVM_OPC_iload_2 = 28, | |
JVM_OPC_iload_3 = 29, | |
JVM_OPC_lload_0 = 30, | |
JVM_OPC_lload_1 = 31, | |
JVM_OPC_lload_2 = 32, | |
JVM_OPC_lload_3 = 33, | |
JVM_OPC_fload_0 = 34, | |
JVM_OPC_fload_1 = 35, | |
JVM_OPC_fload_2 = 36, | |
JVM_OPC_fload_3 = 37, | |
JVM_OPC_dload_0 = 38, | |
JVM_OPC_dload_1 = 39, | |
JVM_OPC_dload_2 = 40, | |
JVM_OPC_dload_3 = 41, | |
JVM_OPC_aload_0 = 42, | |
JVM_OPC_aload_1 = 43, | |
JVM_OPC_aload_2 = 44, | |
JVM_OPC_aload_3 = 45, | |
JVM_OPC_iaload = 46, | |
JVM_OPC_laload = 47, | |
JVM_OPC_faload = 48, | |
JVM_OPC_daload = 49, | |
JVM_OPC_aaload = 50, | |
JVM_OPC_baload = 51, | |
JVM_OPC_caload = 52, | |
JVM_OPC_saload = 53, | |
JVM_OPC_istore = 54, | |
JVM_OPC_lstore = 55, | |
JVM_OPC_fstore = 56, | |
JVM_OPC_dstore = 57, | |
JVM_OPC_astore = 58, | |
JVM_OPC_istore_0 = 59, | |
JVM_OPC_istore_1 = 60, | |
JVM_OPC_istore_2 = 61, | |
JVM_OPC_istore_3 = 62, | |
JVM_OPC_lstore_0 = 63, | |
JVM_OPC_lstore_1 = 64, | |
JVM_OPC_lstore_2 = 65, | |
JVM_OPC_lstore_3 = 66, | |
JVM_OPC_fstore_0 = 67, | |
JVM_OPC_fstore_1 = 68, | |
JVM_OPC_fstore_2 = 69, | |
JVM_OPC_fstore_3 = 70, | |
JVM_OPC_dstore_0 = 71, | |
JVM_OPC_dstore_1 = 72, | |
JVM_OPC_dstore_2 = 73, | |
JVM_OPC_dstore_3 = 74, | |
JVM_OPC_astore_0 = 75, | |
JVM_OPC_astore_1 = 76, | |
JVM_OPC_astore_2 = 77, | |
JVM_OPC_astore_3 = 78, | |
JVM_OPC_iastore = 79, | |
JVM_OPC_lastore = 80, | |
JVM_OPC_fastore = 81, | |
JVM_OPC_dastore = 82, | |
JVM_OPC_aastore = 83, | |
JVM_OPC_bastore = 84, | |
JVM_OPC_castore = 85, | |
JVM_OPC_sastore = 86, | |
JVM_OPC_pop = 87, | |
JVM_OPC_pop2 = 88, | |
JVM_OPC_dup = 89, | |
JVM_OPC_dup_x1 = 90, | |
JVM_OPC_dup_x2 = 91, | |
JVM_OPC_dup2 = 92, | |
JVM_OPC_dup2_x1 = 93, | |
JVM_OPC_dup2_x2 = 94, | |
JVM_OPC_swap = 95, | |
JVM_OPC_iadd = 96, | |
JVM_OPC_ladd = 97, | |
JVM_OPC_fadd = 98, | |
JVM_OPC_dadd = 99, | |
JVM_OPC_isub = 100, | |
JVM_OPC_lsub = 101, | |
JVM_OPC_fsub = 102, | |
JVM_OPC_dsub = 103, | |
JVM_OPC_imul = 104, | |
JVM_OPC_lmul = 105, | |
JVM_OPC_fmul = 106, | |
JVM_OPC_dmul = 107, | |
JVM_OPC_idiv = 108, | |
JVM_OPC_ldiv = 109, | |
JVM_OPC_fdiv = 110, | |
JVM_OPC_ddiv = 111, | |
JVM_OPC_irem = 112, | |
JVM_OPC_lrem = 113, | |
JVM_OPC_frem = 114, | |
JVM_OPC_drem = 115, | |
JVM_OPC_ineg = 116, | |
JVM_OPC_lneg = 117, | |
JVM_OPC_fneg = 118, | |
JVM_OPC_dneg = 119, | |
JVM_OPC_ishl = 120, | |
JVM_OPC_lshl = 121, | |
JVM_OPC_ishr = 122, | |
JVM_OPC_lshr = 123, | |
JVM_OPC_iushr = 124, | |
JVM_OPC_lushr = 125, | |
JVM_OPC_iand = 126, | |
JVM_OPC_land = 127, | |
JVM_OPC_ior = 128, | |
JVM_OPC_lor = 129, | |
JVM_OPC_ixor = 130, | |
JVM_OPC_lxor = 131, | |
JVM_OPC_iinc = 132, | |
JVM_OPC_i2l = 133, | |
JVM_OPC_i2f = 134, | |
JVM_OPC_i2d = 135, | |
JVM_OPC_l2i = 136, | |
JVM_OPC_l2f = 137, | |
JVM_OPC_l2d = 138, | |
JVM_OPC_f2i = 139, | |
JVM_OPC_f2l = 140, | |
JVM_OPC_f2d = 141, | |
JVM_OPC_d2i = 142, | |
JVM_OPC_d2l = 143, | |
JVM_OPC_d2f = 144, | |
JVM_OPC_i2b = 145, | |
JVM_OPC_i2c = 146, | |
JVM_OPC_i2s = 147, | |
JVM_OPC_lcmp = 148, | |
JVM_OPC_fcmpl = 149, | |
JVM_OPC_fcmpg = 150, | |
JVM_OPC_dcmpl = 151, | |
JVM_OPC_dcmpg = 152, | |
JVM_OPC_ifeq = 153, | |
JVM_OPC_ifne = 154, | |
JVM_OPC_iflt = 155, | |
JVM_OPC_ifge = 156, | |
JVM_OPC_ifgt = 157, | |
JVM_OPC_ifle = 158, | |
JVM_OPC_if_icmpeq = 159, | |
JVM_OPC_if_icmpne = 160, | |
JVM_OPC_if_icmplt = 161, | |
JVM_OPC_if_icmpge = 162, | |
JVM_OPC_if_icmpgt = 163, | |
JVM_OPC_if_icmple = 164, | |
JVM_OPC_if_acmpeq = 165, | |
JVM_OPC_if_acmpne = 166, | |
JVM_OPC_goto = 167, | |
JVM_OPC_jsr = 168, | |
JVM_OPC_ret = 169, | |
JVM_OPC_tableswitch = 170, | |
JVM_OPC_lookupswitch = 171, | |
JVM_OPC_ireturn = 172, | |
JVM_OPC_lreturn = 173, | |
JVM_OPC_freturn = 174, | |
JVM_OPC_dreturn = 175, | |
JVM_OPC_areturn = 176, | |
JVM_OPC_return = 177, | |
JVM_OPC_getstatic = 178, | |
JVM_OPC_putstatic = 179, | |
JVM_OPC_getfield = 180, | |
JVM_OPC_putfield = 181, | |
JVM_OPC_invokevirtual = 182, | |
JVM_OPC_invokespecial = 183, | |
JVM_OPC_invokestatic = 184, | |
JVM_OPC_invokeinterface = 185, | |
JVM_OPC_invokedynamic = 186, | |
JVM_OPC_new = 187, | |
JVM_OPC_newarray = 188, | |
JVM_OPC_anewarray = 189, | |
JVM_OPC_arraylength = 190, | |
JVM_OPC_athrow = 191, | |
JVM_OPC_checkcast = 192, | |
JVM_OPC_instanceof = 193, | |
JVM_OPC_monitorenter = 194, | |
JVM_OPC_monitorexit = 195, | |
JVM_OPC_wide = 196, | |
JVM_OPC_multianewarray = 197, | |
JVM_OPC_ifnull = 198, | |
JVM_OPC_ifnonnull = 199, | |
JVM_OPC_goto_w = 200, | |
JVM_OPC_jsr_w = 201, | |
JVM_OPC_MAX = 201 | |
}; | |
#define JVM_OPCODE_LENGTH_INITIALIZER { \ | |
1, /* nop */ \ | |
1, /* aconst_null */ \ | |
1, /* iconst_m1 */ \ | |
1, /* iconst_0 */ \ | |
1, /* iconst_1 */ \ | |
1, /* iconst_2 */ \ | |
1, /* iconst_3 */ \ | |
1, /* iconst_4 */ \ | |
1, /* iconst_5 */ \ | |
1, /* lconst_0 */ \ | |
1, /* lconst_1 */ \ | |
1, /* fconst_0 */ \ | |
1, /* fconst_1 */ \ | |
1, /* fconst_2 */ \ | |
1, /* dconst_0 */ \ | |
1, /* dconst_1 */ \ | |
2, /* bipush */ \ | |
3, /* sipush */ \ | |
2, /* ldc */ \ | |
3, /* ldc_w */ \ | |
3, /* ldc2_w */ \ | |
2, /* iload */ \ | |
2, /* lload */ \ | |
2, /* fload */ \ | |
2, /* dload */ \ | |
2, /* aload */ \ | |
1, /* iload_0 */ \ | |
1, /* iload_1 */ \ | |
1, /* iload_2 */ \ | |
1, /* iload_3 */ \ | |
1, /* lload_0 */ \ | |
1, /* lload_1 */ \ | |
1, /* lload_2 */ \ | |
1, /* lload_3 */ \ | |
1, /* fload_0 */ \ | |
1, /* fload_1 */ \ | |
1, /* fload_2 */ \ | |
1, /* fload_3 */ \ | |
1, /* dload_0 */ \ | |
1, /* dload_1 */ \ | |
1, /* dload_2 */ \ | |
1, /* dload_3 */ \ | |
1, /* aload_0 */ \ | |
1, /* aload_1 */ \ | |
1, /* aload_2 */ \ | |
1, /* aload_3 */ \ | |
1, /* iaload */ \ | |
1, /* laload */ \ | |
1, /* faload */ \ | |
1, /* daload */ \ | |
1, /* aaload */ \ | |
1, /* baload */ \ | |
1, /* caload */ \ | |
1, /* saload */ \ | |
2, /* istore */ \ | |
2, /* lstore */ \ | |
2, /* fstore */ \ | |
2, /* dstore */ \ | |
2, /* astore */ \ | |
1, /* istore_0 */ \ | |
1, /* istore_1 */ \ | |
1, /* istore_2 */ \ | |
1, /* istore_3 */ \ | |
1, /* lstore_0 */ \ | |
1, /* lstore_1 */ \ | |
1, /* lstore_2 */ \ | |
1, /* lstore_3 */ \ | |
1, /* fstore_0 */ \ | |
1, /* fstore_1 */ \ | |
1, /* fstore_2 */ \ | |
1, /* fstore_3 */ \ | |
1, /* dstore_0 */ \ | |
1, /* dstore_1 */ \ | |
1, /* dstore_2 */ \ | |
1, /* dstore_3 */ \ | |
1, /* astore_0 */ \ | |
1, /* astore_1 */ \ | |
1, /* astore_2 */ \ | |
1, /* astore_3 */ \ | |
1, /* iastore */ \ | |
1, /* lastore */ \ | |
1, /* fastore */ \ | |
1, /* dastore */ \ | |
1, /* aastore */ \ | |
1, /* bastore */ \ | |
1, /* castore */ \ | |
1, /* sastore */ \ | |
1, /* pop */ \ | |
1, /* pop2 */ \ | |
1, /* dup */ \ | |
1, /* dup_x1 */ \ | |
1, /* dup_x2 */ \ | |
1, /* dup2 */ \ | |
1, /* dup2_x1 */ \ | |
1, /* dup2_x2 */ \ | |
1, /* swap */ \ | |
1, /* iadd */ \ | |
1, /* ladd */ \ | |
1, /* fadd */ \ | |
1, /* dadd */ \ | |
1, /* isub */ \ | |
1, /* lsub */ \ | |
1, /* fsub */ \ | |
1, /* dsub */ \ | |
1, /* imul */ \ | |
1, /* lmul */ \ | |
1, /* fmul */ \ | |
1, /* dmul */ \ | |
1, /* idiv */ \ | |
1, /* ldiv */ \ | |
1, /* fdiv */ \ | |
1, /* ddiv */ \ | |
1, /* irem */ \ | |
1, /* lrem */ \ | |
1, /* frem */ \ | |
1, /* drem */ \ | |
1, /* ineg */ \ | |
1, /* lneg */ \ | |
1, /* fneg */ \ | |
1, /* dneg */ \ | |
1, /* ishl */ \ | |
1, /* lshl */ \ | |
1, /* ishr */ \ | |
1, /* lshr */ \ | |
1, /* iushr */ \ | |
1, /* lushr */ \ | |
1, /* iand */ \ | |
1, /* land */ \ | |
1, /* ior */ \ | |
1, /* lor */ \ | |
1, /* ixor */ \ | |
1, /* lxor */ \ | |
3, /* iinc */ \ | |
1, /* i2l */ \ | |
1, /* i2f */ \ | |
1, /* i2d */ \ | |
1, /* l2i */ \ | |
1, /* l2f */ \ | |
1, /* l2d */ \ | |
1, /* f2i */ \ | |
1, /* f2l */ \ | |
1, /* f2d */ \ | |
1, /* d2i */ \ | |
1, /* d2l */ \ | |
1, /* d2f */ \ | |
1, /* i2b */ \ | |
1, /* i2c */ \ | |
1, /* i2s */ \ | |
1, /* lcmp */ \ | |
1, /* fcmpl */ \ | |
1, /* fcmpg */ \ | |
1, /* dcmpl */ \ | |
1, /* dcmpg */ \ | |
3, /* ifeq */ \ | |
3, /* ifne */ \ | |
3, /* iflt */ \ | |
3, /* ifge */ \ | |
3, /* ifgt */ \ | |
3, /* ifle */ \ | |
3, /* if_icmpeq */ \ | |
3, /* if_icmpne */ \ | |
3, /* if_icmplt */ \ | |
3, /* if_icmpge */ \ | |
3, /* if_icmpgt */ \ | |
3, /* if_icmple */ \ | |
3, /* if_acmpeq */ \ | |
3, /* if_acmpne */ \ | |
3, /* goto */ \ | |
3, /* jsr */ \ | |
2, /* ret */ \ | |
99, /* tableswitch */ \ | |
99, /* lookupswitch */ \ | |
1, /* ireturn */ \ | |
1, /* lreturn */ \ | |
1, /* freturn */ \ | |
1, /* dreturn */ \ | |
1, /* areturn */ \ | |
1, /* return */ \ | |
3, /* getstatic */ \ | |
3, /* putstatic */ \ | |
3, /* getfield */ \ | |
3, /* putfield */ \ | |
3, /* invokevirtual */ \ | |
3, /* invokespecial */ \ | |
3, /* invokestatic */ \ | |
5, /* invokeinterface */ \ | |
5, /* invokedynamic */ \ | |
3, /* new */ \ | |
2, /* newarray */ \ | |
3, /* anewarray */ \ | |
1, /* arraylength */ \ | |
1, /* athrow */ \ | |
3, /* checkcast */ \ | |
3, /* instanceof */ \ | |
1, /* monitorenter */ \ | |
1, /* monitorexit */ \ | |
0, /* wide */ \ | |
4, /* multianewarray */ \ | |
3, /* ifnull */ \ | |
3, /* ifnonnull */ \ | |
5, /* goto_w */ \ | |
5 /* jsr_w */ \ | |
} | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif | |
#ifndef INTERNAL_JAWT_MD | |
#define INTERNAL_JAWT_MD | |
#ifdef __cplusplus | |
extern "C" | |
{ | |
#endif | |
typedef struct jawt_Win32DrawingSurfaceInfo | |
{ | |
union | |
{ | |
HWND hwnd; | |
HBITMAP hbitmap; | |
void *pbits; | |
}; | |
HDC hdc; | |
HPALETTE hpalette; | |
} JAWT_Win32DrawingSurfaceInfo; | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif | |
#ifndef INTERNAL_JNI_MD | |
#define INTERNAL_JNI_MD | |
#ifndef JNIEXPORT | |
#define JNIEXPORT __declspec(dllexport) | |
#endif | |
#define JNIIMPORT __declspec(dllimport) | |
#define JNICALL __stdcall | |
typedef long jint; | |
typedef __int64 jlong; | |
typedef signed char jbyte; | |
#endif | |
#ifndef INTERNAL_JNI | |
#define INTERNAL_JNI | |
#ifdef __cplusplus | |
extern "C" | |
{ | |
#endif | |
#ifndef JNI_TYPES_ALREADY_DEFINED_IN_JNI_MD_H | |
typedef unsigned char jboolean; | |
typedef unsigned short jchar; | |
typedef short jshort; | |
typedef float jfloat; | |
typedef double jdouble; | |
typedef jint jsize; | |
#ifdef __cplusplus | |
class _jobject {}; | |
class _jclass : public _jobject {}; | |
class _jthrowable : public _jobject {}; | |
class _jstring : public _jobject {}; | |
class _jarray : public _jobject {}; | |
class _jbooleanArray : public _jarray {}; | |
class _jbyteArray : public _jarray {}; | |
class _jcharArray : public _jarray {}; | |
class _jshortArray : public _jarray {}; | |
class _jintArray : public _jarray {}; | |
class _jlongArray : public _jarray {}; | |
class _jfloatArray : public _jarray {}; | |
class _jdoubleArray : public _jarray {}; | |
class _jobjectArray : public _jarray {}; | |
typedef _jobject *jobject; | |
typedef _jclass *jclass; | |
typedef _jthrowable *jthrowable; | |
typedef _jstring *jstring; | |
typedef _jarray *jarray; | |
typedef _jbooleanArray *jbooleanArray; | |
typedef _jbyteArray *jbyteArray; | |
typedef _jcharArray *jcharArray; | |
typedef _jshortArray *jshortArray; | |
typedef _jintArray *jintArray; | |
typedef _jlongArray *jlongArray; | |
typedef _jfloatArray *jfloatArray; | |
typedef _jdoubleArray *jdoubleArray; | |
typedef _jobjectArray *jobjectArray; | |
#else | |
struct _jobject; | |
typedef struct _jobject *jobject; | |
typedef jobject jclass; | |
typedef jobject jthrowable; | |
typedef jobject jstring; | |
typedef jobject jarray; | |
typedef jarray jbooleanArray; | |
typedef jarray jbyteArray; | |
typedef jarray jcharArray; | |
typedef jarray jshortArray; | |
typedef jarray jintArray; | |
typedef jarray jlongArray; | |
typedef jarray jfloatArray; | |
typedef jarray jdoubleArray; | |
typedef jarray jobjectArray; | |
#endif | |
typedef jobject jweak; | |
typedef union jvalue | |
{ | |
jboolean z; | |
jbyte b; | |
jchar c; | |
jshort s; | |
jint i; | |
jlong j; | |
jfloat f; | |
jdouble d; | |
jobject l; | |
} jvalue; | |
struct _jfieldID; | |
typedef struct _jfieldID *jfieldID; | |
struct _jmethodID; | |
typedef struct _jmethodID *jmethodID; | |
typedef enum _jobjectType | |
{ | |
JNIInvalidRefType = 0, | |
JNILocalRefType = 1, | |
JNIGlobalRefType = 2, | |
JNIWeakGlobalRefType = 3 | |
} jobjectRefType; | |
#endif | |
#define JNI_FALSE 0 | |
#define JNI_TRUE 1 | |
#define JNI_OK 0 | |
#define JNI_ERR (-1) | |
#define JNI_EDETACHED (-2) | |
#define JNI_EVERSION (-3) | |
#define JNI_ENOMEM (-4) | |
#define JNI_EEXIST (-5) | |
#define JNI_EINVAL (-6) | |
#define JNI_COMMIT 1 | |
#define JNI_ABORT 2 | |
typedef struct | |
{ | |
char *name; | |
char *signature; | |
void *fnPtr; | |
} JNINativeMethod; | |
struct JNINativeInterface_; | |
struct JNIEnv_; | |
#ifdef __cplusplus | |
typedef JNIEnv_ JNIEnv; | |
#else | |
typedef const struct JNINativeInterface_ *JNIEnv; | |
#endif | |
struct JNIInvokeInterface_; | |
struct JavaVM_; | |
#ifdef __cplusplus | |
typedef JavaVM_ JavaVM; | |
#else | |
typedef const struct JNIInvokeInterface_ *JavaVM; | |
#endif | |
struct JNINativeInterface_ | |
{ | |
void *reserved0; | |
void *reserved1; | |
void *reserved2; | |
void *reserved3; | |
jint(JNICALL *GetVersion)(JNIEnv *env); | |
jclass(JNICALL *DefineClass)(JNIEnv *env, const char *name, jobject loader, const jbyte *buf, jsize len); | |
jclass(JNICALL *FindClass)(JNIEnv *env, const char *name); | |
jmethodID(JNICALL *FromReflectedMethod)(JNIEnv *env, jobject method); | |
jfieldID(JNICALL *FromReflectedField)(JNIEnv *env, jobject field); | |
jobject(JNICALL *ToReflectedMethod)(JNIEnv *env, jclass cls, jmethodID methodID, jboolean isStatic); | |
jclass(JNICALL *GetSuperclass)(JNIEnv *env, jclass sub); | |
jboolean(JNICALL *IsAssignableFrom)(JNIEnv *env, jclass sub, jclass sup); | |
jobject(JNICALL *ToReflectedField)(JNIEnv *env, jclass cls, jfieldID fieldID, jboolean isStatic); | |
jint(JNICALL *Throw)(JNIEnv *env, jthrowable obj); | |
jint(JNICALL *ThrowNew)(JNIEnv *env, jclass clazz, const char *msg); | |
jthrowable(JNICALL *ExceptionOccurred)(JNIEnv *env); | |
void(JNICALL *ExceptionDescribe)(JNIEnv *env); | |
void(JNICALL *ExceptionClear)(JNIEnv *env); | |
void(JNICALL *FatalError)(JNIEnv *env, const char *msg); | |
jint(JNICALL *PushLocalFrame)(JNIEnv *env, jint capacity); | |
jobject(JNICALL *PopLocalFrame)(JNIEnv *env, jobject result); | |
jobject(JNICALL *NewGlobalRef)(JNIEnv *env, jobject lobj); | |
void(JNICALL *DeleteGlobalRef)(JNIEnv *env, jobject gref); | |
void(JNICALL *DeleteLocalRef)(JNIEnv *env, jobject obj); | |
jboolean(JNICALL *IsSameObject)(JNIEnv *env, jobject obj1, jobject obj2); | |
jobject(JNICALL *NewLocalRef)(JNIEnv *env, jobject ref); | |
jint(JNICALL *EnsureLocalCapacity)(JNIEnv *env, jint capacity); | |
jobject(JNICALL *AllocObject)(JNIEnv *env, jclass clazz); | |
jobject(JNICALL *NewObject)(JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
jobject(JNICALL *NewObjectV)(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
jobject(JNICALL *NewObjectA)(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); | |
jclass(JNICALL *GetObjectClass)(JNIEnv *env, jobject obj); | |
jboolean(JNICALL *IsInstanceOf)(JNIEnv *env, jobject obj, jclass clazz); | |
jmethodID(JNICALL *GetMethodID)(JNIEnv *env, jclass clazz, const char *name, const char *sig); | |
jobject(JNICALL *CallObjectMethod)(JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
jobject(JNICALL *CallObjectMethodV)(JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
jobject(JNICALL *CallObjectMethodA)(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); | |
jboolean(JNICALL *CallBooleanMethod)(JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
jboolean(JNICALL *CallBooleanMethodV)(JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
jboolean(JNICALL *CallBooleanMethodA)(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); | |
jbyte(JNICALL *CallByteMethod)(JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
jbyte(JNICALL *CallByteMethodV)(JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
jbyte(JNICALL *CallByteMethodA)(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); | |
jchar(JNICALL *CallCharMethod)(JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
jchar(JNICALL *CallCharMethodV)(JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
jchar(JNICALL *CallCharMethodA)(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); | |
jshort(JNICALL *CallShortMethod)(JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
jshort(JNICALL *CallShortMethodV)(JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
jshort(JNICALL *CallShortMethodA)(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); | |
jint(JNICALL *CallIntMethod)(JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
jint(JNICALL *CallIntMethodV)(JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
jint(JNICALL *CallIntMethodA)(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); | |
jlong(JNICALL *CallLongMethod)(JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
jlong(JNICALL *CallLongMethodV)(JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
jlong(JNICALL *CallLongMethodA)(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); | |
jfloat(JNICALL *CallFloatMethod)(JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
jfloat(JNICALL *CallFloatMethodV)(JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
jfloat(JNICALL *CallFloatMethodA)(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); | |
jdouble(JNICALL *CallDoubleMethod)(JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
jdouble(JNICALL *CallDoubleMethodV)(JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
jdouble(JNICALL *CallDoubleMethodA)(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); | |
void(JNICALL *CallVoidMethod)(JNIEnv *env, jobject obj, jmethodID methodID, ...); | |
void(JNICALL *CallVoidMethodV)(JNIEnv *env, jobject obj, jmethodID methodID, va_list args); | |
void(JNICALL *CallVoidMethodA)(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args); | |
jobject(JNICALL *CallNonvirtualObjectMethod)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
jobject(JNICALL *CallNonvirtualObjectMethodV)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, va_list args); | |
jobject(JNICALL *CallNonvirtualObjectMethodA)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, const jvalue *args); | |
jboolean(JNICALL *CallNonvirtualBooleanMethod)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
jboolean(JNICALL *CallNonvirtualBooleanMethodV)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, va_list args); | |
jboolean(JNICALL *CallNonvirtualBooleanMethodA)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, const jvalue *args); | |
jbyte(JNICALL *CallNonvirtualByteMethod)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
jbyte(JNICALL *CallNonvirtualByteMethodV)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, va_list args); | |
jbyte(JNICALL *CallNonvirtualByteMethodA)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, const jvalue *args); | |
jchar(JNICALL *CallNonvirtualCharMethod)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
jchar(JNICALL *CallNonvirtualCharMethodV)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, va_list args); | |
jchar(JNICALL *CallNonvirtualCharMethodA)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, const jvalue *args); | |
jshort(JNICALL *CallNonvirtualShortMethod)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
jshort(JNICALL *CallNonvirtualShortMethodV)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, va_list args); | |
jshort(JNICALL *CallNonvirtualShortMethodA)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, const jvalue *args); | |
jint(JNICALL *CallNonvirtualIntMethod)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
jint(JNICALL *CallNonvirtualIntMethodV)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, va_list args); | |
jint(JNICALL *CallNonvirtualIntMethodA)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, const jvalue *args); | |
jlong(JNICALL *CallNonvirtualLongMethod)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
jlong(JNICALL *CallNonvirtualLongMethodV)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, va_list args); | |
jlong(JNICALL *CallNonvirtualLongMethodA)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, const jvalue *args); | |
jfloat(JNICALL *CallNonvirtualFloatMethod)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
jfloat(JNICALL *CallNonvirtualFloatMethodV)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, va_list args); | |
jfloat(JNICALL *CallNonvirtualFloatMethodA)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, const jvalue *args); | |
jdouble(JNICALL *CallNonvirtualDoubleMethod)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
jdouble(JNICALL *CallNonvirtualDoubleMethodV)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, va_list args); | |
jdouble(JNICALL *CallNonvirtualDoubleMethodA)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, const jvalue *args); | |
void(JNICALL *CallNonvirtualVoidMethod)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, ...); | |
void(JNICALL *CallNonvirtualVoidMethodV)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, va_list args); | |
void(JNICALL *CallNonvirtualVoidMethodA)(JNIEnv *env, jobject obj, jclass clazz, jmethodID methodID, const jvalue *args); | |
jfieldID(JNICALL *GetFieldID)(JNIEnv *env, jclass clazz, const char *name, const char *sig); | |
jobject(JNICALL *GetObjectField)(JNIEnv *env, jobject obj, jfieldID fieldID); | |
jboolean(JNICALL *GetBooleanField)(JNIEnv *env, jobject obj, jfieldID fieldID); | |
jbyte(JNICALL *GetByteField)(JNIEnv *env, jobject obj, jfieldID fieldID); | |
jchar(JNICALL *GetCharField)(JNIEnv *env, jobject obj, jfieldID fieldID); | |
jshort(JNICALL *GetShortField)(JNIEnv *env, jobject obj, jfieldID fieldID); | |
jint(JNICALL *GetIntField)(JNIEnv *env, jobject obj, jfieldID fieldID); | |
jlong(JNICALL *GetLongField)(JNIEnv *env, jobject obj, jfieldID fieldID); | |
jfloat(JNICALL *GetFloatField)(JNIEnv *env, jobject obj, jfieldID fieldID); | |
jdouble(JNICALL *GetDoubleField)(JNIEnv *env, jobject obj, jfieldID fieldID); | |
void(JNICALL *SetObjectField)(JNIEnv *env, jobject obj, jfieldID fieldID, jobject val); | |
void(JNICALL *SetBooleanField)(JNIEnv *env, jobject obj, jfieldID fieldID, jboolean val); | |
void(JNICALL *SetByteField)(JNIEnv *env, jobject obj, jfieldID fieldID, jbyte val); | |
void(JNICALL *SetCharField)(JNIEnv *env, jobject obj, jfieldID fieldID, jchar val); | |
void(JNICALL *SetShortField)(JNIEnv *env, jobject obj, jfieldID fieldID, jshort val); | |
void(JNICALL *SetIntField)(JNIEnv *env, jobject obj, jfieldID fieldID, jint val); | |
void(JNICALL *SetLongField)(JNIEnv *env, jobject obj, jfieldID fieldID, jlong val); | |
void(JNICALL *SetFloatField)(JNIEnv *env, jobject obj, jfieldID fieldID, jfloat val); | |
void(JNICALL *SetDoubleField)(JNIEnv *env, jobject obj, jfieldID fieldID, jdouble val); | |
jmethodID(JNICALL *GetStaticMethodID)(JNIEnv *env, jclass clazz, const char *name, const char *sig); | |
jobject(JNICALL *CallStaticObjectMethod)(JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
jobject(JNICALL *CallStaticObjectMethodV)(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
jobject(JNICALL *CallStaticObjectMethodA)(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); | |
jboolean(JNICALL *CallStaticBooleanMethod)(JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
jboolean(JNICALL *CallStaticBooleanMethodV)(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
jboolean(JNICALL *CallStaticBooleanMethodA)(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); | |
jbyte(JNICALL *CallStaticByteMethod)(JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
jbyte(JNICALL *CallStaticByteMethodV)(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
jbyte(JNICALL *CallStaticByteMethodA)(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); | |
jchar(JNICALL *CallStaticCharMethod)(JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
jchar(JNICALL *CallStaticCharMethodV)(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
jchar(JNICALL *CallStaticCharMethodA)(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); | |
jshort(JNICALL *CallStaticShortMethod)(JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
jshort(JNICALL *CallStaticShortMethodV)(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
jshort(JNICALL *CallStaticShortMethodA)(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); | |
jint(JNICALL *CallStaticIntMethod)(JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
jint(JNICALL *CallStaticIntMethodV)(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
jint(JNICALL *CallStaticIntMethodA)(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); | |
jlong(JNICALL *CallStaticLongMethod)(JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
jlong(JNICALL *CallStaticLongMethodV)(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
jlong(JNICALL *CallStaticLongMethodA)(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); | |
jfloat(JNICALL *CallStaticFloatMethod)(JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
jfloat(JNICALL *CallStaticFloatMethodV)(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
jfloat(JNICALL *CallStaticFloatMethodA)(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); | |
jdouble(JNICALL *CallStaticDoubleMethod)(JNIEnv *env, jclass clazz, jmethodID methodID, ...); | |
jdouble(JNICALL *CallStaticDoubleMethodV)(JNIEnv *env, jclass clazz, jmethodID methodID, va_list args); | |
jdouble(JNICALL *CallStaticDoubleMethodA)(JNIEnv *env, jclass clazz, jmethodID methodID, const jvalue *args); | |
void(JNICALL *CallStaticVoidMethod)(JNIEnv *env, jclass cls, jmethodID methodID, ...); | |
void(JNICALL *CallStaticVoidMethodV)(JNIEnv *env, jclass cls, jmethodID methodID, va_list args); | |
void(JNICALL *CallStaticVoidMethodA)(JNIEnv *env, jclass cls, jmethodID methodID, const jvalue *args); | |
jfieldID(JNICALL *GetStaticFieldID)(JNIEnv *env, jclass clazz, const char *name, const char *sig); | |
jobject(JNICALL *GetStaticObjectField)(JNIEnv *env, jclass clazz, jfieldID fieldID); | |
jboolean(JNICALL *GetStaticBooleanField)(JNIEnv *env, jclass clazz, jfieldID fieldID); | |
jbyte(JNICALL *GetStaticByteField)(JNIEnv *env, jclass clazz, jfieldID fieldID); | |
jchar(JNICALL *GetStaticCharField)(JNIEnv *env, jclass clazz, jfieldID fieldID); | |
jshort(JNICALL *GetStaticShortField)(JNIEnv *env, jclass clazz, jfieldID fieldID); | |
jint(JNICALL *GetStaticIntField)(JNIEnv *env, jclass clazz, jfieldID fieldID); | |
jlong(JNICALL *GetStaticLongField)(JNIEnv *env, jclass clazz, jfieldID fieldID); | |
jfloat(JNICALL *GetStaticFloatField)(JNIEnv *env, jclass clazz, jfieldID fieldID); | |
jdouble(JNICALL *GetStaticDoubleField)(JNIEnv *env, jclass clazz, jfieldID fieldID); | |
void(JNICALL *SetStaticObjectField)(JNIEnv *env, jclass clazz, jfieldID fieldID, jobject value); | |
void(JNICALL *SetStaticBooleanField)(JNIEnv *env, jclass clazz, jfieldID fieldID, jboolean value); | |
void(JNICALL *SetStaticByteField)(JNIEnv *env, jclass clazz, jfieldID fieldID, jbyte value); | |
void(JNICALL *SetStaticCharField)(JNIEnv *env, jclass clazz, jfieldID fieldID, jchar value); | |
void(JNICALL *SetStaticShortField)(JNIEnv *env, jclass clazz, jfieldID fieldID, jshort value); | |
void(JNICALL *SetStaticIntField)(JNIEnv *env, jclass clazz, jfieldID fieldID, jint value); | |
void(JNICALL *SetStaticLongField)(JNIEnv *env, jclass clazz, jfieldID fieldID, jlong value); | |
void(JNICALL *SetStaticFloatField)(JNIEnv *env, jclass clazz, jfieldID fieldID, jfloat value); | |
void(JNICALL *SetStaticDoubleField)(JNIEnv *env, jclass clazz, jfieldID fieldID, jdouble value); | |
jstring(JNICALL *NewString)(JNIEnv *env, const jchar *unicode, jsize len); | |
jsize(JNICALL *GetStringLength)(JNIEnv *env, jstring str); | |
const jchar *(JNICALL *GetStringChars)(JNIEnv *env, jstring str, jboolean *isCopy); | |
void(JNICALL *ReleaseStringChars)(JNIEnv *env, jstring str, const jchar *chars); | |
jstring(JNICALL *NewStringUTF)(JNIEnv *env, const char *utf); | |
jsize(JNICALL *GetStringUTFLength)(JNIEnv *env, jstring str); | |
const char *(JNICALL *GetStringUTFChars)(JNIEnv *env, jstring str, jboolean *isCopy); | |
void(JNICALL *ReleaseStringUTFChars)(JNIEnv *env, jstring str, const char *chars); | |
jsize(JNICALL *GetArrayLength)(JNIEnv *env, jarray array); | |
jobjectArray(JNICALL *NewObjectArray)(JNIEnv *env, jsize len, jclass clazz, jobject init); | |
jobject(JNICALL *GetObjectArrayElement)(JNIEnv *env, jobjectArray array, jsize index); | |
void(JNICALL *SetObjectArrayElement)(JNIEnv *env, jobjectArray array, jsize index, jobject val); | |
jbooleanArray(JNICALL *NewBooleanArray)(JNIEnv *env, jsize len); | |
jbyteArray(JNICALL *NewByteArray)(JNIEnv *env, jsize len); | |
jcharArray(JNICALL *NewCharArray)(JNIEnv *env, jsize len); | |
jshortArray(JNICALL *NewShortArray)(JNIEnv *env, jsize len); | |
jintArray(JNICALL *NewIntArray)(JNIEnv *env, jsize len); | |
jlongArray(JNICALL *NewLongArray)(JNIEnv *env, jsize len); | |
jfloatArray(JNICALL *NewFloatArray)(JNIEnv *env, jsize len); | |
jdoubleArray(JNICALL *NewDoubleArray)(JNIEnv *env, jsize len); | |
jboolean *(JNICALL *GetBooleanArrayElements)(JNIEnv *env, jbooleanArray array, jboolean *isCopy); | |
jbyte *(JNICALL *GetByteArrayElements)(JNIEnv *env, jbyteArray array, jboolean *isCopy); | |
jchar *(JNICALL *GetCharArrayElements)(JNIEnv *env, jcharArray array, jboolean *isCopy); | |
jshort *(JNICALL *GetShortArrayElements)(JNIEnv *env, jshortArray array, jboolean *isCopy); | |
jint *(JNICALL *GetIntArrayElements)(JNIEnv *env, jintArray array, jboolean *isCopy); | |
jlong *(JNICALL *GetLongArrayElements)(JNIEnv *env, jlongArray array, jboolean *isCopy); | |
jfloat *(JNICALL *GetFloatArrayElements)(JNIEnv *env, jfloatArray array, jboolean *isCopy); | |
jdouble *(JNICALL *GetDoubleArrayElements)(JNIEnv *env, jdoubleArray array, jboolean *isCopy); | |
void(JNICALL *ReleaseBooleanArrayElements)(JNIEnv *env, jbooleanArray array, jboolean *elems, jint mode); | |
void(JNICALL *ReleaseByteArrayElements)(JNIEnv *env, jbyteArray array, jbyte *elems, jint mode); | |
void(JNICALL *ReleaseCharArrayElements)(JNIEnv *env, jcharArray array, jchar *elems, jint mode); | |
void(JNICALL *ReleaseShortArrayElements)(JNIEnv *env, jshortArray array, jshort *elems, jint mode); | |
void(JNICALL *ReleaseIntArrayElements)(JNIEnv *env, jintArray array, jint *elems, jint mode); | |
void(JNICALL *ReleaseLongArrayElements)(JNIEnv *env, jlongArray array, jlong *elems, jint mode); | |
void(JNICALL *ReleaseFloatArrayElements)(JNIEnv *env, jfloatArray array, jfloat *elems, jint mode); | |
void(JNICALL *ReleaseDoubleArrayElements)(JNIEnv *env, jdoubleArray array, jdouble *elems, jint mode); | |
void(JNICALL *GetBooleanArrayRegion)(JNIEnv *env, jbooleanArray array, jsize start, jsize l, jboolean *buf); | |
void(JNICALL *GetByteArrayRegion)(JNIEnv *env, jbyteArray array, jsize start, jsize len, jbyte *buf); | |
void(JNICALL *GetCharArrayRegion)(JNIEnv *env, jcharArray array, jsize start, jsize len, jchar *buf); | |
void(JNICALL *GetShortArrayRegion)(JNIEnv *env, jshortArray array, jsize start, jsize len, jshort *buf); | |
void(JNICALL *GetIntArrayRegion)(JNIEnv *env, jintArray array, jsize start, jsize len, jint *buf); | |
void(JNICALL *GetLongArrayRegion)(JNIEnv *env, jlongArray array, jsize start, jsize len, jlong *buf); | |
void(JNICALL *GetFloatArrayRegion)(JNIEnv *env, jfloatArray array, jsize start, jsize len, jfloat *buf); | |
void(JNICALL *GetDoubleArrayRegion)(JNIEnv *env, jdoubleArray array, jsize start, jsize len, jdouble *buf); | |
void(JNICALL *SetBooleanArrayRegion)(JNIEnv *env, jbooleanArray array, jsize start, jsize l, const jboolean *buf); | |
void(JNICALL *SetByteArrayRegion)(JNIEnv *env, jbyteArray array, jsize start, jsize len, const jbyte *buf); | |
void(JNICALL *SetCharArrayRegion)(JNIEnv *env, jcharArray array, jsize start, jsize len, const jchar *buf); | |
void(JNICALL *SetShortArrayRegion)(JNIEnv *env, jshortArray array, jsize start, jsize len, const jshort *buf); | |
void(JNICALL *SetIntArrayRegion)(JNIEnv *env, jintArray array, jsize start, jsize len, const jint *buf); | |
void(JNICALL *SetLongArrayRegion)(JNIEnv *env, jlongArray array, jsize start, jsize len, const jlong *buf); | |
void(JNICALL *SetFloatArrayRegion)(JNIEnv *env, jfloatArray array, jsize start, jsize len, const jfloat *buf); | |
void(JNICALL *SetDoubleArrayRegion)(JNIEnv *env, jdoubleArray array, jsize start, jsize len, const jdouble *buf); | |
jint(JNICALL *RegisterNatives)(JNIEnv *env, jclass clazz, const JNINativeMethod *methods, jint nMethods); | |
jint(JNICALL *UnregisterNatives)(JNIEnv *env, jclass clazz); | |
jint(JNICALL *MonitorEnter)(JNIEnv *env, jobject obj); | |
jint(JNICALL *MonitorExit)(JNIEnv *env, jobject obj); | |
jint(JNICALL *GetJavaVM)(JNIEnv *env, JavaVM **vm); | |
void(JNICALL *GetStringRegion)(JNIEnv *env, jstring str, jsize start, jsize len, jchar *buf); | |
void(JNICALL *GetStringUTFRegion)(JNIEnv *env, jstring str, jsize start, jsize len, char *buf); | |
void *(JNICALL *GetPrimitiveArrayCritical)(JNIEnv *env, jarray array, jboolean *isCopy); | |
void(JNICALL *ReleasePrimitiveArrayCritical)(JNIEnv *env, jarray array, void *carray, jint mode); | |
const jchar *(JNICALL *GetStringCritical)(JNIEnv *env, jstring string, jboolean *isCopy); | |
void(JNICALL *ReleaseStringCritical)(JNIEnv *env, jstring string, const jchar *cstring); | |
jweak(JNICALL *NewWeakGlobalRef)(JNIEnv *env, jobject obj); | |
void(JNICALL *DeleteWeakGlobalRef)(JNIEnv *env, jweak ref); | |
jboolean(JNICALL *ExceptionCheck)(JNIEnv *env); | |
jobject(JNICALL *NewDirectByteBuffer)(JNIEnv *env, void *address, jlong capacity); | |
void *(JNICALL *GetDirectBufferAddress)(JNIEnv *env, jobject buf); | |
jlong(JNICALL *GetDirectBufferCapacity)(JNIEnv *env, jobject buf); | |
jobjectRefType(JNICALL *GetObjectRefType)(JNIEnv *env, jobject obj); | |
jobject(JNICALL *GetModule)(JNIEnv *env, jclass clazz); | |
jboolean(JNICALL *IsVirtualThread)(JNIEnv *env, jobject obj); | |
}; | |
struct JNIEnv_ | |
{ | |
const struct JNINativeInterface_ *functions; | |
#ifdef __cplusplus | |
jint GetVersion() { return functions->GetVersion(this); } | |
jclass DefineClass(const char *name, jobject loader, const jbyte *buf, jsize len) { return functions->DefineClass(this, name, loader, buf, len); } | |
jclass FindClass(const char *name) { return functions->FindClass(this, name); } | |
jmethodID FromReflectedMethod(jobject method) { return functions->FromReflectedMethod(this, method); } | |
jfieldID FromReflectedField(jobject field) { return functions->FromReflectedField(this, field); } | |
jobject ToReflectedMethod(jclass cls, jmethodID methodID, jboolean isStatic) { return functions->ToReflectedMethod(this, cls, methodID, isStatic); } | |
jclass GetSuperclass(jclass sub) { return functions->GetSuperclass(this, sub); } | |
jboolean IsAssignableFrom(jclass sub, jclass sup) { return functions->IsAssignableFrom(this, sub, sup); } | |
jobject ToReflectedField(jclass cls, jfieldID fieldID, jboolean isStatic) { return functions->ToReflectedField(this, cls, fieldID, isStatic); } | |
jint Throw(jthrowable obj) { return functions->Throw(this, obj); } | |
jint ThrowNew(jclass clazz, const char *msg) { return functions->ThrowNew(this, clazz, msg); } | |
jthrowable ExceptionOccurred() { return functions->ExceptionOccurred(this); } | |
void ExceptionDescribe() { functions->ExceptionDescribe(this); } | |
void ExceptionClear() { functions->ExceptionClear(this); } | |
void FatalError(const char *msg) { functions->FatalError(this, msg); } | |
jint PushLocalFrame(jint capacity) { return functions->PushLocalFrame(this, capacity); } | |
jobject PopLocalFrame(jobject result) { return functions->PopLocalFrame(this, result); } | |
jobject NewGlobalRef(jobject lobj) { return functions->NewGlobalRef(this, lobj); } | |
void DeleteGlobalRef(jobject gref) { functions->DeleteGlobalRef(this, gref); } | |
void DeleteLocalRef(jobject obj) { functions->DeleteLocalRef(this, obj); } | |
jboolean IsSameObject(jobject obj1, jobject obj2) { return functions->IsSameObject(this, obj1, obj2); } | |
jobject NewLocalRef(jobject ref) { return functions->NewLocalRef(this, ref); } | |
jint EnsureLocalCapacity(jint capacity) { return functions->EnsureLocalCapacity(this, capacity); } | |
jobject AllocObject(jclass clazz) { return functions->AllocObject(this, clazz); } | |
jobject NewObject(jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jobject result = functions->NewObjectV(this, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jobject NewObjectV(jclass clazz, jmethodID methodID, va_list args) { return functions->NewObjectV(this, clazz, methodID, args); } | |
jobject NewObjectA(jclass clazz, jmethodID methodID, const jvalue *args) { return functions->NewObjectA(this, clazz, methodID, args); } | |
jclass GetObjectClass(jobject obj) { return functions->GetObjectClass(this, obj); } | |
jboolean IsInstanceOf(jobject obj, jclass clazz) { return functions->IsInstanceOf(this, obj, clazz); } | |
jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) { return functions->GetMethodID(this, clazz, name, sig); } | |
jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jobject result = functions->CallObjectMethodV(this, obj, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jobject CallObjectMethodV(jobject obj, jmethodID methodID, va_list args) { return functions->CallObjectMethodV(this, obj, methodID, args); } | |
jobject CallObjectMethodA(jobject obj, jmethodID methodID, const jvalue *args) { return functions->CallObjectMethodA(this, obj, methodID, args); } | |
jboolean CallBooleanMethod(jobject obj, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jboolean result = functions->CallBooleanMethodV(this, obj, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jboolean CallBooleanMethodV(jobject obj, jmethodID methodID, va_list args) { return functions->CallBooleanMethodV(this, obj, methodID, args); } | |
jboolean CallBooleanMethodA(jobject obj, jmethodID methodID, const jvalue *args) { return functions->CallBooleanMethodA(this, obj, methodID, args); } | |
jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jbyte result = functions->CallByteMethodV(this, obj, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jbyte CallByteMethodV(jobject obj, jmethodID methodID, va_list args) { return functions->CallByteMethodV(this, obj, methodID, args); } | |
jbyte CallByteMethodA(jobject obj, jmethodID methodID, const jvalue *args) { return functions->CallByteMethodA(this, obj, methodID, args); } | |
jchar CallCharMethod(jobject obj, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jchar result = functions->CallCharMethodV(this, obj, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jchar CallCharMethodV(jobject obj, jmethodID methodID, va_list args) { return functions->CallCharMethodV(this, obj, methodID, args); } | |
jchar CallCharMethodA(jobject obj, jmethodID methodID, const jvalue *args) { return functions->CallCharMethodA(this, obj, methodID, args); } | |
jshort CallShortMethod(jobject obj, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jshort result = functions->CallShortMethodV(this, obj, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jshort CallShortMethodV(jobject obj, jmethodID methodID, va_list args) { return functions->CallShortMethodV(this, obj, methodID, args); } | |
jshort CallShortMethodA(jobject obj, jmethodID methodID, const jvalue *args) { return functions->CallShortMethodA(this, obj, methodID, args); } | |
jint CallIntMethod(jobject obj, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jint result = functions->CallIntMethodV(this, obj, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jint CallIntMethodV(jobject obj, jmethodID methodID, va_list args) { return functions->CallIntMethodV(this, obj, methodID, args); } | |
jint CallIntMethodA(jobject obj, jmethodID methodID, const jvalue *args) { return functions->CallIntMethodA(this, obj, methodID, args); } | |
jlong CallLongMethod(jobject obj, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jlong result = functions->CallLongMethodV(this, obj, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jlong CallLongMethodV(jobject obj, jmethodID methodID, va_list args) { return functions->CallLongMethodV(this, obj, methodID, args); } | |
jlong CallLongMethodA(jobject obj, jmethodID methodID, const jvalue *args) { return functions->CallLongMethodA(this, obj, methodID, args); } | |
jfloat CallFloatMethod(jobject obj, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jfloat result = functions->CallFloatMethodV(this, obj, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jfloat CallFloatMethodV(jobject obj, jmethodID methodID, va_list args) { return functions->CallFloatMethodV(this, obj, methodID, args); } | |
jfloat CallFloatMethodA(jobject obj, jmethodID methodID, const jvalue *args) { return functions->CallFloatMethodA(this, obj, methodID, args); } | |
jdouble CallDoubleMethod(jobject obj, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jdouble result = functions->CallDoubleMethodV(this, obj, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jdouble CallDoubleMethodV(jobject obj, jmethodID methodID, va_list args) { return functions->CallDoubleMethodV(this, obj, methodID, args); } | |
jdouble CallDoubleMethodA(jobject obj, jmethodID methodID, const jvalue *args) { return functions->CallDoubleMethodA(this, obj, methodID, args); } | |
void CallVoidMethod(jobject obj, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
functions->CallVoidMethodV(this, obj, methodID, args); | |
va_end(args); | |
} | |
void CallVoidMethodV(jobject obj, jmethodID methodID, va_list args) { functions->CallVoidMethodV(this, obj, methodID, args); } | |
void CallVoidMethodA(jobject obj, jmethodID methodID, const jvalue *args) { functions->CallVoidMethodA(this, obj, methodID, args); } | |
jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jobject result = functions->CallNonvirtualObjectMethodV(this, obj, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jobject CallNonvirtualObjectMethodV(jobject obj, jclass clazz, jmethodID methodID, va_list args) { return functions->CallNonvirtualObjectMethodV(this, obj, clazz, methodID, args); } | |
jobject CallNonvirtualObjectMethodA(jobject obj, jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallNonvirtualObjectMethodA(this, obj, clazz, methodID, args); } | |
jboolean CallNonvirtualBooleanMethod(jobject obj, jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jboolean result = functions->CallNonvirtualBooleanMethodV(this, obj, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jboolean CallNonvirtualBooleanMethodV(jobject obj, jclass clazz, jmethodID methodID, va_list args) { return functions->CallNonvirtualBooleanMethodV(this, obj, clazz, methodID, args); } | |
jboolean CallNonvirtualBooleanMethodA(jobject obj, jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallNonvirtualBooleanMethodA(this, obj, clazz, methodID, args); } | |
jbyte CallNonvirtualByteMethod(jobject obj, jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jbyte result = functions->CallNonvirtualByteMethodV(this, obj, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jbyte CallNonvirtualByteMethodV(jobject obj, jclass clazz, jmethodID methodID, va_list args) { return functions->CallNonvirtualByteMethodV(this, obj, clazz, methodID, args); } | |
jbyte CallNonvirtualByteMethodA(jobject obj, jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallNonvirtualByteMethodA(this, obj, clazz, methodID, args); } | |
jchar CallNonvirtualCharMethod(jobject obj, jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jchar result = functions->CallNonvirtualCharMethodV(this, obj, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jchar CallNonvirtualCharMethodV(jobject obj, jclass clazz, jmethodID methodID, va_list args) { return functions->CallNonvirtualCharMethodV(this, obj, clazz, methodID, args); } | |
jchar CallNonvirtualCharMethodA(jobject obj, jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallNonvirtualCharMethodA(this, obj, clazz, methodID, args); } | |
jshort CallNonvirtualShortMethod(jobject obj, jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jshort result = functions->CallNonvirtualShortMethodV(this, obj, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jshort CallNonvirtualShortMethodV(jobject obj, jclass clazz, jmethodID methodID, va_list args) { return functions->CallNonvirtualShortMethodV(this, obj, clazz, methodID, args); } | |
jshort CallNonvirtualShortMethodA(jobject obj, jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallNonvirtualShortMethodA(this, obj, clazz, methodID, args); } | |
jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jint result = functions->CallNonvirtualIntMethodV(this, obj, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jint CallNonvirtualIntMethodV(jobject obj, jclass clazz, jmethodID methodID, va_list args) { return functions->CallNonvirtualIntMethodV(this, obj, clazz, methodID, args); } | |
jint CallNonvirtualIntMethodA(jobject obj, jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallNonvirtualIntMethodA(this, obj, clazz, methodID, args); } | |
jlong CallNonvirtualLongMethod(jobject obj, jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jlong result = functions->CallNonvirtualLongMethodV(this, obj, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jlong CallNonvirtualLongMethodV(jobject obj, jclass clazz, jmethodID methodID, va_list args) { return functions->CallNonvirtualLongMethodV(this, obj, clazz, methodID, args); } | |
jlong CallNonvirtualLongMethodA(jobject obj, jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallNonvirtualLongMethodA(this, obj, clazz, methodID, args); } | |
jfloat CallNonvirtualFloatMethod(jobject obj, jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jfloat result = functions->CallNonvirtualFloatMethodV(this, obj, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jfloat CallNonvirtualFloatMethodV(jobject obj, jclass clazz, jmethodID methodID, va_list args) { return functions->CallNonvirtualFloatMethodV(this, obj, clazz, methodID, args); } | |
jfloat CallNonvirtualFloatMethodA(jobject obj, jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallNonvirtualFloatMethodA(this, obj, clazz, methodID, args); } | |
jdouble CallNonvirtualDoubleMethod(jobject obj, jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jdouble result = functions->CallNonvirtualDoubleMethodV(this, obj, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jdouble CallNonvirtualDoubleMethodV(jobject obj, jclass clazz, jmethodID methodID, va_list args) { return functions->CallNonvirtualDoubleMethodV(this, obj, clazz, methodID, args); } | |
jdouble CallNonvirtualDoubleMethodA(jobject obj, jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallNonvirtualDoubleMethodA(this, obj, clazz, methodID, args); } | |
void CallNonvirtualVoidMethod(jobject obj, jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
functions->CallNonvirtualVoidMethodV(this, obj, clazz, methodID, args); | |
va_end(args); | |
} | |
void CallNonvirtualVoidMethodV(jobject obj, jclass clazz, jmethodID methodID, va_list args) { functions->CallNonvirtualVoidMethodV(this, obj, clazz, methodID, args); } | |
void CallNonvirtualVoidMethodA(jobject obj, jclass clazz, jmethodID methodID, const jvalue *args) { functions->CallNonvirtualVoidMethodA(this, obj, clazz, methodID, args); } | |
jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) { return functions->GetFieldID(this, clazz, name, sig); } | |
jobject GetObjectField(jobject obj, jfieldID fieldID) { return functions->GetObjectField(this, obj, fieldID); } | |
jboolean GetBooleanField(jobject obj, jfieldID fieldID) { return functions->GetBooleanField(this, obj, fieldID); } | |
jbyte GetByteField(jobject obj, jfieldID fieldID) { return functions->GetByteField(this, obj, fieldID); } | |
jchar GetCharField(jobject obj, jfieldID fieldID) { return functions->GetCharField(this, obj, fieldID); } | |
jshort GetShortField(jobject obj, jfieldID fieldID) { return functions->GetShortField(this, obj, fieldID); } | |
jint GetIntField(jobject obj, jfieldID fieldID) { return functions->GetIntField(this, obj, fieldID); } | |
jlong GetLongField(jobject obj, jfieldID fieldID) { return functions->GetLongField(this, obj, fieldID); } | |
jfloat GetFloatField(jobject obj, jfieldID fieldID) { return functions->GetFloatField(this, obj, fieldID); } | |
jdouble GetDoubleField(jobject obj, jfieldID fieldID) { return functions->GetDoubleField(this, obj, fieldID); } | |
void SetObjectField(jobject obj, jfieldID fieldID, jobject val) { functions->SetObjectField(this, obj, fieldID, val); } | |
void SetBooleanField(jobject obj, jfieldID fieldID, jboolean val) { functions->SetBooleanField(this, obj, fieldID, val); } | |
void SetByteField(jobject obj, jfieldID fieldID, jbyte val) { functions->SetByteField(this, obj, fieldID, val); } | |
void SetCharField(jobject obj, jfieldID fieldID, jchar val) { functions->SetCharField(this, obj, fieldID, val); } | |
void SetShortField(jobject obj, jfieldID fieldID, jshort val) { functions->SetShortField(this, obj, fieldID, val); } | |
void SetIntField(jobject obj, jfieldID fieldID, jint val) { functions->SetIntField(this, obj, fieldID, val); } | |
void SetLongField(jobject obj, jfieldID fieldID, jlong val) { functions->SetLongField(this, obj, fieldID, val); } | |
void SetFloatField(jobject obj, jfieldID fieldID, jfloat val) { functions->SetFloatField(this, obj, fieldID, val); } | |
void SetDoubleField(jobject obj, jfieldID fieldID, jdouble val) { functions->SetDoubleField(this, obj, fieldID, val); } | |
jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) { return functions->GetStaticMethodID(this, clazz, name, sig); } | |
jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jobject result = functions->CallStaticObjectMethodV(this, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jobject CallStaticObjectMethodV(jclass clazz, jmethodID methodID, va_list args) { return functions->CallStaticObjectMethodV(this, clazz, methodID, args); } | |
jobject CallStaticObjectMethodA(jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallStaticObjectMethodA(this, clazz, methodID, args); } | |
jboolean CallStaticBooleanMethod(jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jboolean result = functions->CallStaticBooleanMethodV(this, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jboolean CallStaticBooleanMethodV(jclass clazz, jmethodID methodID, va_list args) { return functions->CallStaticBooleanMethodV(this, clazz, methodID, args); } | |
jboolean CallStaticBooleanMethodA(jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallStaticBooleanMethodA(this, clazz, methodID, args); } | |
jbyte CallStaticByteMethod(jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jbyte result = functions->CallStaticByteMethodV(this, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jbyte CallStaticByteMethodV(jclass clazz, jmethodID methodID, va_list args) { return functions->CallStaticByteMethodV(this, clazz, methodID, args); } | |
jbyte CallStaticByteMethodA(jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallStaticByteMethodA(this, clazz, methodID, args); } | |
jchar CallStaticCharMethod(jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jchar result = functions->CallStaticCharMethodV(this, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jchar CallStaticCharMethodV(jclass clazz, jmethodID methodID, va_list args) { return functions->CallStaticCharMethodV(this, clazz, methodID, args); } | |
jchar CallStaticCharMethodA(jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallStaticCharMethodA(this, clazz, methodID, args); } | |
jshort CallStaticShortMethod(jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jshort result = functions->CallStaticShortMethodV(this, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jshort CallStaticShortMethodV(jclass clazz, jmethodID methodID, va_list args) { return functions->CallStaticShortMethodV(this, clazz, methodID, args); } | |
jshort CallStaticShortMethodA(jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallStaticShortMethodA(this, clazz, methodID, args); } | |
jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jint result = functions->CallStaticIntMethodV(this, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jint CallStaticIntMethodV(jclass clazz, jmethodID methodID, va_list args) { return functions->CallStaticIntMethodV(this, clazz, methodID, args); } | |
jint CallStaticIntMethodA(jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallStaticIntMethodA(this, clazz, methodID, args); } | |
jlong CallStaticLongMethod(jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jlong result = functions->CallStaticLongMethodV(this, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jlong CallStaticLongMethodV(jclass clazz, jmethodID methodID, va_list args) { return functions->CallStaticLongMethodV(this, clazz, methodID, args); } | |
jlong CallStaticLongMethodA(jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallStaticLongMethodA(this, clazz, methodID, args); } | |
jfloat CallStaticFloatMethod(jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jfloat result = functions->CallStaticFloatMethodV(this, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jfloat CallStaticFloatMethodV(jclass clazz, jmethodID methodID, va_list args) { return functions->CallStaticFloatMethodV(this, clazz, methodID, args); } | |
jfloat CallStaticFloatMethodA(jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallStaticFloatMethodA(this, clazz, methodID, args); } | |
jdouble CallStaticDoubleMethod(jclass clazz, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
jdouble result = functions->CallStaticDoubleMethodV(this, clazz, methodID, args); | |
va_end(args); | |
return result; | |
} | |
jdouble CallStaticDoubleMethodV(jclass clazz, jmethodID methodID, va_list args) { return functions->CallStaticDoubleMethodV(this, clazz, methodID, args); } | |
jdouble CallStaticDoubleMethodA(jclass clazz, jmethodID methodID, const jvalue *args) { return functions->CallStaticDoubleMethodA(this, clazz, methodID, args); } | |
void CallStaticVoidMethod(jclass cls, jmethodID methodID, ...) | |
{ | |
va_list args; | |
va_start(args, methodID); | |
functions->CallStaticVoidMethodV(this, cls, methodID, args); | |
va_end(args); | |
} | |
void CallStaticVoidMethodV(jclass cls, jmethodID methodID, va_list args) { functions->CallStaticVoidMethodV(this, cls, methodID, args); } | |
void CallStaticVoidMethodA(jclass cls, jmethodID methodID, const jvalue *args) { functions->CallStaticVoidMethodA(this, cls, methodID, args); } | |
jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) { return functions->GetStaticFieldID(this, clazz, name, sig); } | |
jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) { return functions->GetStaticObjectField(this, clazz, fieldID); } | |
jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) { return functions->GetStaticBooleanField(this, clazz, fieldID); } | |
jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) { return functions->GetStaticByteField(this, clazz, fieldID); } | |
jchar GetStaticCharField(jclass clazz, jfieldID fieldID) { return functions->GetStaticCharField(this, clazz, fieldID); } | |
jshort GetStaticShortField(jclass clazz, jfieldID fieldID) { return functions->GetStaticShortField(this, clazz, fieldID); } | |
jint GetStaticIntField(jclass clazz, jfieldID fieldID) { return functions->GetStaticIntField(this, clazz, fieldID); } | |
jlong GetStaticLongField(jclass clazz, jfieldID fieldID) { return functions->GetStaticLongField(this, clazz, fieldID); } | |
jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) { return functions->GetStaticFloatField(this, clazz, fieldID); } | |
jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) { return functions->GetStaticDoubleField(this, clazz, fieldID); } | |
void SetStaticObjectField(jclass clazz, jfieldID fieldID, jobject value) { functions->SetStaticObjectField(this, clazz, fieldID, value); } | |
void SetStaticBooleanField(jclass clazz, jfieldID fieldID, jboolean value) { functions->SetStaticBooleanField(this, clazz, fieldID, value); } | |
void SetStaticByteField(jclass clazz, jfieldID fieldID, jbyte value) { functions->SetStaticByteField(this, clazz, fieldID, value); } | |
void SetStaticCharField(jclass clazz, jfieldID fieldID, jchar value) { functions->SetStaticCharField(this, clazz, fieldID, value); } | |
void SetStaticShortField(jclass clazz, jfieldID fieldID, jshort value) { functions->SetStaticShortField(this, clazz, fieldID, value); } | |
void SetStaticIntField(jclass clazz, jfieldID fieldID, jint value) { functions->SetStaticIntField(this, clazz, fieldID, value); } | |
void SetStaticLongField(jclass clazz, jfieldID fieldID, jlong value) { functions->SetStaticLongField(this, clazz, fieldID, value); } | |
void SetStaticFloatField(jclass clazz, jfieldID fieldID, jfloat value) { functions->SetStaticFloatField(this, clazz, fieldID, value); } | |
void SetStaticDoubleField(jclass clazz, jfieldID fieldID, jdouble value) { functions->SetStaticDoubleField(this, clazz, fieldID, value); } | |
jstring NewString(const jchar *unicode, jsize len) { return functions->NewString(this, unicode, len); } | |
jsize GetStringLength(jstring str) { return functions->GetStringLength(this, str); } | |
const jchar *GetStringChars(jstring str, jboolean *isCopy) { return functions->GetStringChars(this, str, isCopy); } | |
void ReleaseStringChars(jstring str, const jchar *chars) { functions->ReleaseStringChars(this, str, chars); } | |
jstring NewStringUTF(const char *utf) { return functions->NewStringUTF(this, utf); } | |
jsize GetStringUTFLength(jstring str) { return functions->GetStringUTFLength(this, str); } | |
const char *GetStringUTFChars(jstring str, jboolean *isCopy) { return functions->GetStringUTFChars(this, str, isCopy); } | |
void ReleaseStringUTFChars(jstring str, const char *chars) { functions->ReleaseStringUTFChars(this, str, chars); } | |
jsize GetArrayLength(jarray array) { return functions->GetArrayLength(this, array); } | |
jobjectArray NewObjectArray(jsize len, jclass clazz, jobject init) { return functions->NewObjectArray(this, len, clazz, init); } | |
jobject GetObjectArrayElement(jobjectArray array, jsize index) { return functions->GetObjectArrayElement(this, array, index); } | |
void SetObjectArrayElement(jobjectArray array, jsize index, jobject val) { functions->SetObjectArrayElement(this, array, index, val); } | |
jbooleanArray NewBooleanArray(jsize len) { return functions->NewBooleanArray(this, len); } | |
jbyteArray NewByteArray(jsize len) { return functions->NewByteArray(this, len); } | |
jcharArray NewCharArray(jsize len) { return functions->NewCharArray(this, len); } | |
jshortArray NewShortArray(jsize len) { return functions->NewShortArray(this, len); } | |
jintArray NewIntArray(jsize len) { return functions->NewIntArray(this, len); } | |
jlongArray NewLongArray(jsize len) { return functions->NewLongArray(this, len); } | |
jfloatArray NewFloatArray(jsize len) { return functions->NewFloatArray(this, len); } | |
jdoubleArray NewDoubleArray(jsize len) { return functions->NewDoubleArray(this, len); } | |
jboolean *GetBooleanArrayElements(jbooleanArray array, jboolean *isCopy) { return functions->GetBooleanArrayElements(this, array, isCopy); } | |
jbyte *GetByteArrayElements(jbyteArray array, jboolean *isCopy) { return functions->GetByteArrayElements(this, array, isCopy); } | |
jchar *GetCharArrayElements(jcharArray array, jboolean *isCopy) { return functions->GetCharArrayElements(this, array, isCopy); } | |
jshort *GetShortArrayElements(jshortArray array, jboolean *isCopy) { return functions->GetShortArrayElements(this, array, isCopy); } | |
jint *GetIntArrayElements(jintArray array, jboolean *isCopy) { return functions->GetIntArrayElements(this, array, isCopy); } | |
jlong *GetLongArrayElements(jlongArray array, jboolean *isCopy) { return functions->GetLongArrayElements(this, array, isCopy); } | |
jfloat *GetFloatArrayElements(jfloatArray array, jboolean *isCopy) { return functions->GetFloatArrayElements(this, array, isCopy); } | |
jdouble *GetDoubleArrayElements(jdoubleArray array, jboolean *isCopy) { return functions->GetDoubleArrayElements(this, array, isCopy); } | |
void ReleaseBooleanArrayElements(jbooleanArray array, jboolean *elems, jint mode) { functions->ReleaseBooleanArrayElements(this, array, elems, mode); } | |
void ReleaseByteArrayElements(jbyteArray array, jbyte *elems, jint mode) { functions->ReleaseByteArrayElements(this, array, elems, mode); } | |
void ReleaseCharArrayElements(jcharArray array, jchar *elems, jint mode) { functions->ReleaseCharArrayElements(this, array, elems, mode); } | |
void ReleaseShortArrayElements(jshortArray array, jshort *elems, jint mode) { functions->ReleaseShortArrayElements(this, array, elems, mode); } | |
void ReleaseIntArrayElements(jintArray array, jint *elems, jint mode) { functions->ReleaseIntArrayElements(this, array, elems, mode); } | |
void ReleaseLongArrayElements(jlongArray array, jlong *elems, jint mode) { functions->ReleaseLongArrayElements(this, array, elems, mode); } | |
void ReleaseFloatArrayElements(jfloatArray array, jfloat *elems, jint mode) { functions->ReleaseFloatArrayElements(this, array, elems, mode); } | |
void ReleaseDoubleArrayElements(jdoubleArray array, jdouble *elems, jint mode) { functions->ReleaseDoubleArrayElements(this, array, elems, mode); } | |
void GetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len, jboolean *buf) { functions->GetBooleanArrayRegion(this, array, start, len, buf); } | |
void GetByteArrayRegion(jbyteArray array, jsize start, jsize len, jbyte *buf) { functions->GetByteArrayRegion(this, array, start, len, buf); } | |
void GetCharArrayRegion(jcharArray array, jsize start, jsize len, jchar *buf) { functions->GetCharArrayRegion(this, array, start, len, buf); } | |
void GetShortArrayRegion(jshortArray array, jsize start, jsize len, jshort *buf) { functions->GetShortArrayRegion(this, array, start, len, buf); } | |
void GetIntArrayRegion(jintArray array, jsize start, jsize len, jint *buf) { functions->GetIntArrayRegion(this, array, start, len, buf); } | |
void GetLongArrayRegion(jlongArray array, jsize start, jsize len, jlong *buf) { functions->GetLongArrayRegion(this, array, start, len, buf); } | |
void GetFloatArrayRegion(jfloatArray array, jsize start, jsize len, jfloat *buf) { functions->GetFloatArrayRegion(this, array, start, len, buf); } | |
void GetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len, jdouble *buf) { functions->GetDoubleArrayRegion(this, array, start, len, buf); } | |
void SetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len, const jboolean *buf) { functions->SetBooleanArrayRegion(this, array, start, len, buf); } | |
void SetByteArrayRegion(jbyteArray array, jsize start, jsize len, const jbyte *buf) { functions->SetByteArrayRegion(this, array, start, len, buf); } | |
void SetCharArrayRegion(jcharArray array, jsize start, jsize len, const jchar *buf) { functions->SetCharArrayRegion(this, array, start, len, buf); } | |
void SetShortArrayRegion(jshortArray array, jsize start, const jsize len, const jshort *buf) { functions->SetShortArrayRegion(this, array, start, len, buf); } | |
void SetIntArrayRegion(jintArray array, jsize start, jsize len, const jint *buf) { functions->SetIntArrayRegion(this, array, start, len, buf); } | |
void SetLongArrayRegion(jlongArray array, jsize start, jsize len, const jlong *buf) { functions->SetLongArrayRegion(this, array, start, len, buf); } | |
void SetFloatArrayRegion(jfloatArray array, jsize start, jsize len, const jfloat *buf) { functions->SetFloatArrayRegion(this, array, start, len, buf); } | |
void SetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len, const jdouble *buf) { functions->SetDoubleArrayRegion(this, array, start, len, buf); } | |
jint RegisterNatives(jclass clazz, const JNINativeMethod *methods, jint nMethods) { return functions->RegisterNatives(this, clazz, methods, nMethods); } | |
jint UnregisterNatives(jclass clazz) { return functions->UnregisterNatives(this, clazz); } | |
jint MonitorEnter(jobject obj) { return functions->MonitorEnter(this, obj); } | |
jint MonitorExit(jobject obj) { return functions->MonitorExit(this, obj); } | |
jint GetJavaVM(JavaVM **vm) { return functions->GetJavaVM(this, vm); } | |
void GetStringRegion(jstring str, jsize start, jsize len, jchar *buf) { functions->GetStringRegion(this, str, start, len, buf); } | |
void GetStringUTFRegion(jstring str, jsize start, jsize len, char *buf) { functions->GetStringUTFRegion(this, str, start, len, buf); } | |
void *GetPrimitiveArrayCritical(jarray array, jboolean *isCopy) { return functions->GetPrimitiveArrayCritical(this, array, isCopy); } | |
void ReleasePrimitiveArrayCritical(jarray array, void *carray, jint mode) { functions->ReleasePrimitiveArrayCritical(this, array, carray, mode); } | |
const jchar *GetStringCritical(jstring string, jboolean *isCopy) { return functions->GetStringCritical(this, string, isCopy); } | |
void ReleaseStringCritical(jstring string, const jchar *cstring) { functions->ReleaseStringCritical(this, string, cstring); } | |
jweak NewWeakGlobalRef(jobject obj) { return functions->NewWeakGlobalRef(this, obj); } | |
void DeleteWeakGlobalRef(jweak ref) { functions->DeleteWeakGlobalRef(this, ref); } | |
jboolean ExceptionCheck() { return functions->ExceptionCheck(this); } | |
jobject NewDirectByteBuffer(void *address, jlong capacity) { return functions->NewDirectByteBuffer(this, address, capacity); } | |
void *GetDirectBufferAddress(jobject buf) { return functions->GetDirectBufferAddress(this, buf); } | |
jlong GetDirectBufferCapacity(jobject buf) { return functions->GetDirectBufferCapacity(this, buf); } | |
jobjectRefType GetObjectRefType(jobject obj) { return functions->GetObjectRefType(this, obj); } | |
jobject GetModule(jclass clazz) { return functions->GetModule(this, clazz); } | |
jboolean IsVirtualThread(jobject obj) { return functions->IsVirtualThread(this, obj); } | |
#endif | |
}; | |
typedef struct JavaVMOption | |
{ | |
char *optionString; | |
void *extraInfo; | |
} JavaVMOption; | |
typedef struct JavaVMInitArgs | |
{ | |
jint version; | |
jint nOptions; | |
JavaVMOption *options; | |
jboolean ignoreUnrecognized; | |
} JavaVMInitArgs; | |
typedef struct JavaVMAttachArgs | |
{ | |
jint version; | |
char *name; | |
jobject group; | |
} JavaVMAttachArgs; | |
#define JDK1_2 | |
#define JDK1_4 | |
struct JNIInvokeInterface_ | |
{ | |
void *reserved0; | |
void *reserved1; | |
void *reserved2; | |
jint(JNICALL *DestroyJavaVM)(JavaVM *vm); | |
jint(JNICALL *AttachCurrentThread)(JavaVM *vm, void **penv, void *args); | |
jint(JNICALL *DetachCurrentThread)(JavaVM *vm); | |
jint(JNICALL *GetEnv)(JavaVM *vm, void **penv, jint version); | |
jint(JNICALL *AttachCurrentThreadAsDaemon)(JavaVM *vm, void **penv, void *args); | |
}; | |
struct JavaVM_ | |
{ | |
const struct JNIInvokeInterface_ *functions; | |
#ifdef __cplusplus | |
jint DestroyJavaVM() { return functions->DestroyJavaVM(this); } | |
jint AttachCurrentThread(void **penv, void *args) { return functions->AttachCurrentThread(this, penv, args); } | |
jint DetachCurrentThread() { return functions->DetachCurrentThread(this); } | |
jint GetEnv(void **penv, jint version) { return functions->GetEnv(this, penv, version); } | |
jint AttachCurrentThreadAsDaemon(void **penv, void *args) { return functions->AttachCurrentThreadAsDaemon(this, penv, args); } | |
#endif | |
}; | |
#ifdef _JNI_IMPLEMENTATION_ | |
#define JNI_IMPORT_OR_EXPORT JNIEXPORT | |
#else | |
#define JNI_IMPORT_OR_EXPORT JNIIMPORT | |
#endif | |
JNI_IMPORT_OR_EXPORT jint JNICALL JNI_GetDefaultJavaVMInitArgs(void *args); | |
JNI_IMPORT_OR_EXPORT jint JNICALL JNI_CreateJavaVM(JavaVM **pvm, void **penv, void *args); | |
JNI_IMPORT_OR_EXPORT jint JNICALL JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *); | |
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved); | |
JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *vm, void *reserved); | |
#define JNI_VERSION_1_1 0x00010001 | |
#define JNI_VERSION_1_2 0x00010002 | |
#define JNI_VERSION_1_4 0x00010004 | |
#define JNI_VERSION_1_6 0x00010006 | |
#define JNI_VERSION_1_8 0x00010008 | |
#define JNI_VERSION_9 0x00090000 | |
#define JNI_VERSION_10 0x000a0000 | |
#define JNI_VERSION_19 0x00130000 | |
#define JNI_VERSION_20 0x00140000 | |
#define JNI_VERSION_21 0x00150000 | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif | |
#ifndef INTERNAL_JVMTI | |
#define INTERNAL_JVMTI | |
#ifdef __cplusplus | |
extern "C" | |
{ | |
#endif | |
enum | |
{ | |
JVMTI_VERSION_1 = 0x30010000, | |
JVMTI_VERSION_1_0 = 0x30010000, | |
JVMTI_VERSION_1_1 = 0x30010100, | |
JVMTI_VERSION_1_2 = 0x30010200, | |
JVMTI_VERSION_9 = 0x30090000, | |
JVMTI_VERSION_11 = 0x300B0000, | |
JVMTI_VERSION_19 = 0x30130000, | |
JVMTI_VERSION_21 = 0x30150000, | |
JVMTI_VERSION = 0x30000000 + (21 * 0x10000) + (0 * 0x100) + 0 | |
}; | |
JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *vm, char *options, void *reserved); | |
JNIEXPORT jint JNICALL Agent_OnAttach(JavaVM *vm, char *options, void *reserved); | |
JNIEXPORT void JNICALL Agent_OnUnload(JavaVM *vm); | |
struct _jvmtiEnv; | |
struct jvmtiInterface_1_; | |
#ifdef __cplusplus | |
typedef _jvmtiEnv jvmtiEnv; | |
#else | |
typedef const struct jvmtiInterface_1_ *jvmtiEnv; | |
#endif | |
typedef jobject jthread; | |
typedef jobject jthreadGroup; | |
typedef jlong jlocation; | |
struct _jrawMonitorID; | |
typedef struct _jrawMonitorID *jrawMonitorID; | |
typedef struct JNINativeInterface_ jniNativeInterface; | |
enum | |
{ | |
JVMTI_THREAD_STATE_ALIVE = 0x0001, | |
JVMTI_THREAD_STATE_TERMINATED = 0x0002, | |
JVMTI_THREAD_STATE_RUNNABLE = 0x0004, | |
JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER = 0x0400, | |
JVMTI_THREAD_STATE_WAITING = 0x0080, | |
JVMTI_THREAD_STATE_WAITING_INDEFINITELY = 0x0010, | |
JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT = 0x0020, | |
JVMTI_THREAD_STATE_SLEEPING = 0x0040, | |
JVMTI_THREAD_STATE_IN_OBJECT_WAIT = 0x0100, | |
JVMTI_THREAD_STATE_PARKED = 0x0200, | |
JVMTI_THREAD_STATE_SUSPENDED = 0x100000, | |
JVMTI_THREAD_STATE_INTERRUPTED = 0x200000, | |
JVMTI_THREAD_STATE_IN_NATIVE = 0x400000, | |
JVMTI_THREAD_STATE_VENDOR_1 = 0x10000000, | |
JVMTI_THREAD_STATE_VENDOR_2 = 0x20000000, | |
JVMTI_THREAD_STATE_VENDOR_3 = 0x40000000 | |
}; | |
enum | |
{ | |
JVMTI_JAVA_LANG_THREAD_STATE_MASK = JVMTI_THREAD_STATE_TERMINATED | JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_RUNNABLE | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_INDEFINITELY | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT, | |
JVMTI_JAVA_LANG_THREAD_STATE_NEW = 0, | |
JVMTI_JAVA_LANG_THREAD_STATE_TERMINATED = JVMTI_THREAD_STATE_TERMINATED, | |
JVMTI_JAVA_LANG_THREAD_STATE_RUNNABLE = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_RUNNABLE, | |
JVMTI_JAVA_LANG_THREAD_STATE_BLOCKED = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER, | |
JVMTI_JAVA_LANG_THREAD_STATE_WAITING = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_INDEFINITELY, | |
JVMTI_JAVA_LANG_THREAD_STATE_TIMED_WAITING = JVMTI_THREAD_STATE_ALIVE | JVMTI_THREAD_STATE_WAITING | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT | |
}; | |
enum | |
{ | |
JVMTI_THREAD_MIN_PRIORITY = 1, | |
JVMTI_THREAD_NORM_PRIORITY = 5, | |
JVMTI_THREAD_MAX_PRIORITY = 10 | |
}; | |
enum | |
{ | |
JVMTI_HEAP_FILTER_TAGGED = 0x4, | |
JVMTI_HEAP_FILTER_UNTAGGED = 0x8, | |
JVMTI_HEAP_FILTER_CLASS_TAGGED = 0x10, | |
JVMTI_HEAP_FILTER_CLASS_UNTAGGED = 0x20 | |
}; | |
enum | |
{ | |
JVMTI_VISIT_OBJECTS = 0x100, | |
JVMTI_VISIT_ABORT = 0x8000 | |
}; | |
typedef enum | |
{ | |
JVMTI_HEAP_REFERENCE_CLASS = 1, | |
JVMTI_HEAP_REFERENCE_FIELD = 2, | |
JVMTI_HEAP_REFERENCE_ARRAY_ELEMENT = 3, | |
JVMTI_HEAP_REFERENCE_CLASS_LOADER = 4, | |
JVMTI_HEAP_REFERENCE_SIGNERS = 5, | |
JVMTI_HEAP_REFERENCE_PROTECTION_DOMAIN = 6, | |
JVMTI_HEAP_REFERENCE_INTERFACE = 7, | |
JVMTI_HEAP_REFERENCE_STATIC_FIELD = 8, | |
JVMTI_HEAP_REFERENCE_CONSTANT_POOL = 9, | |
JVMTI_HEAP_REFERENCE_SUPERCLASS = 10, | |
JVMTI_HEAP_REFERENCE_JNI_GLOBAL = 21, | |
JVMTI_HEAP_REFERENCE_SYSTEM_CLASS = 22, | |
JVMTI_HEAP_REFERENCE_MONITOR = 23, | |
JVMTI_HEAP_REFERENCE_STACK_LOCAL = 24, | |
JVMTI_HEAP_REFERENCE_JNI_LOCAL = 25, | |
JVMTI_HEAP_REFERENCE_THREAD = 26, | |
JVMTI_HEAP_REFERENCE_OTHER = 27 | |
} jvmtiHeapReferenceKind; | |
typedef enum | |
{ | |
JVMTI_PRIMITIVE_TYPE_BOOLEAN = 90, | |
JVMTI_PRIMITIVE_TYPE_BYTE = 66, | |
JVMTI_PRIMITIVE_TYPE_CHAR = 67, | |
JVMTI_PRIMITIVE_TYPE_SHORT = 83, | |
JVMTI_PRIMITIVE_TYPE_INT = 73, | |
JVMTI_PRIMITIVE_TYPE_LONG = 74, | |
JVMTI_PRIMITIVE_TYPE_FLOAT = 70, | |
JVMTI_PRIMITIVE_TYPE_DOUBLE = 68 | |
} jvmtiPrimitiveType; | |
typedef enum | |
{ | |
JVMTI_HEAP_OBJECT_TAGGED = 1, | |
JVMTI_HEAP_OBJECT_UNTAGGED = 2, | |
JVMTI_HEAP_OBJECT_EITHER = 3 | |
} jvmtiHeapObjectFilter; | |
typedef enum | |
{ | |
JVMTI_HEAP_ROOT_JNI_GLOBAL = 1, | |
JVMTI_HEAP_ROOT_SYSTEM_CLASS = 2, | |
JVMTI_HEAP_ROOT_MONITOR = 3, | |
JVMTI_HEAP_ROOT_STACK_LOCAL = 4, | |
JVMTI_HEAP_ROOT_JNI_LOCAL = 5, | |
JVMTI_HEAP_ROOT_THREAD = 6, | |
JVMTI_HEAP_ROOT_OTHER = 7 | |
} jvmtiHeapRootKind; | |
typedef enum | |
{ | |
JVMTI_REFERENCE_CLASS = 1, | |
JVMTI_REFERENCE_FIELD = 2, | |
JVMTI_REFERENCE_ARRAY_ELEMENT = 3, | |
JVMTI_REFERENCE_CLASS_LOADER = 4, | |
JVMTI_REFERENCE_SIGNERS = 5, | |
JVMTI_REFERENCE_PROTECTION_DOMAIN = 6, | |
JVMTI_REFERENCE_INTERFACE = 7, | |
JVMTI_REFERENCE_STATIC_FIELD = 8, | |
JVMTI_REFERENCE_CONSTANT_POOL = 9 | |
} jvmtiObjectReferenceKind; | |
typedef enum | |
{ | |
JVMTI_ITERATION_CONTINUE = 1, | |
JVMTI_ITERATION_IGNORE = 2, | |
JVMTI_ITERATION_ABORT = 0 | |
} jvmtiIterationControl; | |
enum | |
{ | |
JVMTI_CLASS_STATUS_VERIFIED = 1, | |
JVMTI_CLASS_STATUS_PREPARED = 2, | |
JVMTI_CLASS_STATUS_INITIALIZED = 4, | |
JVMTI_CLASS_STATUS_ERROR = 8, | |
JVMTI_CLASS_STATUS_ARRAY = 16, | |
JVMTI_CLASS_STATUS_PRIMITIVE = 32 | |
}; | |
typedef enum | |
{ | |
JVMTI_ENABLE = 1, | |
JVMTI_DISABLE = 0 | |
} jvmtiEventMode; | |
typedef enum | |
{ | |
JVMTI_TYPE_JBYTE = 101, | |
JVMTI_TYPE_JCHAR = 102, | |
JVMTI_TYPE_JSHORT = 103, | |
JVMTI_TYPE_JINT = 104, | |
JVMTI_TYPE_JLONG = 105, | |
JVMTI_TYPE_JFLOAT = 106, | |
JVMTI_TYPE_JDOUBLE = 107, | |
JVMTI_TYPE_JBOOLEAN = 108, | |
JVMTI_TYPE_JOBJECT = 109, | |
JVMTI_TYPE_JTHREAD = 110, | |
JVMTI_TYPE_JCLASS = 111, | |
JVMTI_TYPE_JVALUE = 112, | |
JVMTI_TYPE_JFIELDID = 113, | |
JVMTI_TYPE_JMETHODID = 114, | |
JVMTI_TYPE_CCHAR = 115, | |
JVMTI_TYPE_CVOID = 116, | |
JVMTI_TYPE_JNIENV = 117 | |
} jvmtiParamTypes; | |
typedef enum | |
{ | |
JVMTI_KIND_IN = 91, | |
JVMTI_KIND_IN_PTR = 92, | |
JVMTI_KIND_IN_BUF = 93, | |
JVMTI_KIND_ALLOC_BUF = 94, | |
JVMTI_KIND_ALLOC_ALLOC_BUF = 95, | |
JVMTI_KIND_OUT = 96, | |
JVMTI_KIND_OUT_BUF = 97 | |
} jvmtiParamKind; | |
typedef enum | |
{ | |
JVMTI_TIMER_USER_CPU = 30, | |
JVMTI_TIMER_TOTAL_CPU = 31, | |
JVMTI_TIMER_ELAPSED = 32 | |
} jvmtiTimerKind; | |
typedef enum | |
{ | |
JVMTI_PHASE_ONLOAD = 1, | |
JVMTI_PHASE_PRIMORDIAL = 2, | |
JVMTI_PHASE_START = 6, | |
JVMTI_PHASE_LIVE = 4, | |
JVMTI_PHASE_DEAD = 8 | |
} jvmtiPhase; | |
enum | |
{ | |
JVMTI_VERSION_INTERFACE_JNI = 0x00000000, | |
JVMTI_VERSION_INTERFACE_JVMTI = 0x30000000 | |
}; | |
enum | |
{ | |
JVMTI_VERSION_MASK_INTERFACE_TYPE = 0x70000000, | |
JVMTI_VERSION_MASK_MAJOR = 0x0FFF0000, | |
JVMTI_VERSION_MASK_MINOR = 0x0000FF00, | |
JVMTI_VERSION_MASK_MICRO = 0x000000FF | |
}; | |
enum | |
{ | |
JVMTI_VERSION_SHIFT_MAJOR = 16, | |
JVMTI_VERSION_SHIFT_MINOR = 8, | |
JVMTI_VERSION_SHIFT_MICRO = 0 | |
}; | |
typedef enum | |
{ | |
JVMTI_VERBOSE_OTHER = 0, | |
JVMTI_VERBOSE_GC = 1, | |
JVMTI_VERBOSE_CLASS = 2, | |
JVMTI_VERBOSE_JNI = 4 | |
} jvmtiVerboseFlag; | |
typedef enum | |
{ | |
JVMTI_JLOCATION_JVMBCI = 1, | |
JVMTI_JLOCATION_MACHINEPC = 2, | |
JVMTI_JLOCATION_OTHER = 0 | |
} jvmtiJlocationFormat; | |
enum | |
{ | |
JVMTI_RESOURCE_EXHAUSTED_OOM_ERROR = 0x0001, | |
JVMTI_RESOURCE_EXHAUSTED_JAVA_HEAP = 0x0002, | |
JVMTI_RESOURCE_EXHAUSTED_THREADS = 0x0004 | |
}; | |
typedef enum | |
{ | |
JVMTI_ERROR_NONE = 0, | |
JVMTI_ERROR_INVALID_THREAD = 10, | |
JVMTI_ERROR_INVALID_THREAD_GROUP = 11, | |
JVMTI_ERROR_INVALID_PRIORITY = 12, | |
JVMTI_ERROR_THREAD_NOT_SUSPENDED = 13, | |
JVMTI_ERROR_THREAD_SUSPENDED = 14, | |
JVMTI_ERROR_THREAD_NOT_ALIVE = 15, | |
JVMTI_ERROR_INVALID_OBJECT = 20, | |
JVMTI_ERROR_INVALID_CLASS = 21, | |
JVMTI_ERROR_CLASS_NOT_PREPARED = 22, | |
JVMTI_ERROR_INVALID_METHODID = 23, | |
JVMTI_ERROR_INVALID_LOCATION = 24, | |
JVMTI_ERROR_INVALID_FIELDID = 25, | |
JVMTI_ERROR_INVALID_MODULE = 26, | |
JVMTI_ERROR_NO_MORE_FRAMES = 31, | |
JVMTI_ERROR_OPAQUE_FRAME = 32, | |
JVMTI_ERROR_TYPE_MISMATCH = 34, | |
JVMTI_ERROR_INVALID_SLOT = 35, | |
JVMTI_ERROR_DUPLICATE = 40, | |
JVMTI_ERROR_NOT_FOUND = 41, | |
JVMTI_ERROR_INVALID_MONITOR = 50, | |
JVMTI_ERROR_NOT_MONITOR_OWNER = 51, | |
JVMTI_ERROR_INTERRUPT = 52, | |
JVMTI_ERROR_INVALID_CLASS_FORMAT = 60, | |
JVMTI_ERROR_CIRCULAR_CLASS_DEFINITION = 61, | |
JVMTI_ERROR_FAILS_VERIFICATION = 62, | |
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED = 63, | |
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED = 64, | |
JVMTI_ERROR_INVALID_TYPESTATE = 65, | |
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED = 66, | |
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED = 67, | |
JVMTI_ERROR_UNSUPPORTED_VERSION = 68, | |
JVMTI_ERROR_NAMES_DONT_MATCH = 69, | |
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED = 70, | |
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED = 71, | |
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_ATTRIBUTE_CHANGED = 72, | |
JVMTI_ERROR_UNSUPPORTED_OPERATION = 73, | |
JVMTI_ERROR_UNMODIFIABLE_CLASS = 79, | |
JVMTI_ERROR_UNMODIFIABLE_MODULE = 80, | |
JVMTI_ERROR_NOT_AVAILABLE = 98, | |
JVMTI_ERROR_MUST_POSSESS_CAPABILITY = 99, | |
JVMTI_ERROR_NULL_POINTER = 100, | |
JVMTI_ERROR_ABSENT_INFORMATION = 101, | |
JVMTI_ERROR_INVALID_EVENT_TYPE = 102, | |
JVMTI_ERROR_ILLEGAL_ARGUMENT = 103, | |
JVMTI_ERROR_NATIVE_METHOD = 104, | |
JVMTI_ERROR_CLASS_LOADER_UNSUPPORTED = 106, | |
JVMTI_ERROR_OUT_OF_MEMORY = 110, | |
JVMTI_ERROR_ACCESS_DENIED = 111, | |
JVMTI_ERROR_WRONG_PHASE = 112, | |
JVMTI_ERROR_INTERNAL = 113, | |
JVMTI_ERROR_UNATTACHED_THREAD = 115, | |
JVMTI_ERROR_INVALID_ENVIRONMENT = 116, | |
JVMTI_ERROR_MAX = 116 | |
} jvmtiError; | |
typedef enum | |
{ | |
JVMTI_MIN_EVENT_TYPE_VAL = 50, | |
JVMTI_EVENT_VM_INIT = 50, | |
JVMTI_EVENT_VM_DEATH = 51, | |
JVMTI_EVENT_THREAD_START = 52, | |
JVMTI_EVENT_THREAD_END = 53, | |
JVMTI_EVENT_CLASS_FILE_LOAD_HOOK = 54, | |
JVMTI_EVENT_CLASS_LOAD = 55, | |
JVMTI_EVENT_CLASS_PREPARE = 56, | |
JVMTI_EVENT_VM_START = 57, | |
JVMTI_EVENT_EXCEPTION = 58, | |
JVMTI_EVENT_EXCEPTION_CATCH = 59, | |
JVMTI_EVENT_SINGLE_STEP = 60, | |
JVMTI_EVENT_FRAME_POP = 61, | |
JVMTI_EVENT_BREAKPOINT = 62, | |
JVMTI_EVENT_FIELD_ACCESS = 63, | |
JVMTI_EVENT_FIELD_MODIFICATION = 64, | |
JVMTI_EVENT_METHOD_ENTRY = 65, | |
JVMTI_EVENT_METHOD_EXIT = 66, | |
JVMTI_EVENT_NATIVE_METHOD_BIND = 67, | |
JVMTI_EVENT_COMPILED_METHOD_LOAD = 68, | |
JVMTI_EVENT_COMPILED_METHOD_UNLOAD = 69, | |
JVMTI_EVENT_DYNAMIC_CODE_GENERATED = 70, | |
JVMTI_EVENT_DATA_DUMP_REQUEST = 71, | |
JVMTI_EVENT_MONITOR_WAIT = 73, | |
JVMTI_EVENT_MONITOR_WAITED = 74, | |
JVMTI_EVENT_MONITOR_CONTENDED_ENTER = 75, | |
JVMTI_EVENT_MONITOR_CONTENDED_ENTERED = 76, | |
JVMTI_EVENT_RESOURCE_EXHAUSTED = 80, | |
JVMTI_EVENT_GARBAGE_COLLECTION_START = 81, | |
JVMTI_EVENT_GARBAGE_COLLECTION_FINISH = 82, | |
JVMTI_EVENT_OBJECT_FREE = 83, | |
JVMTI_EVENT_VM_OBJECT_ALLOC = 84, | |
JVMTI_EVENT_SAMPLED_OBJECT_ALLOC = 86, | |
JVMTI_EVENT_VIRTUAL_THREAD_START = 87, | |
JVMTI_EVENT_VIRTUAL_THREAD_END = 88, | |
JVMTI_MAX_EVENT_TYPE_VAL = 88 | |
} jvmtiEvent; | |
struct jvmtiThreadInfo; | |
typedef struct jvmtiThreadInfo jvmtiThreadInfo; | |
struct jvmtiMonitorStackDepthInfo; | |
typedef struct jvmtiMonitorStackDepthInfo jvmtiMonitorStackDepthInfo; | |
struct jvmtiThreadGroupInfo; | |
typedef struct jvmtiThreadGroupInfo jvmtiThreadGroupInfo; | |
struct jvmtiFrameInfo; | |
typedef struct jvmtiFrameInfo jvmtiFrameInfo; | |
struct jvmtiStackInfo; | |
typedef struct jvmtiStackInfo jvmtiStackInfo; | |
struct jvmtiHeapReferenceInfoField; | |
typedef struct jvmtiHeapReferenceInfoField jvmtiHeapReferenceInfoField; | |
struct jvmtiHeapReferenceInfoArray; | |
typedef struct jvmtiHeapReferenceInfoArray jvmtiHeapReferenceInfoArray; | |
struct jvmtiHeapReferenceInfoConstantPool; | |
typedef struct jvmtiHeapReferenceInfoConstantPool jvmtiHeapReferenceInfoConstantPool; | |
struct jvmtiHeapReferenceInfoStackLocal; | |
typedef struct jvmtiHeapReferenceInfoStackLocal jvmtiHeapReferenceInfoStackLocal; | |
struct jvmtiHeapReferenceInfoJniLocal; | |
typedef struct jvmtiHeapReferenceInfoJniLocal jvmtiHeapReferenceInfoJniLocal; | |
struct jvmtiHeapReferenceInfoReserved; | |
typedef struct jvmtiHeapReferenceInfoReserved jvmtiHeapReferenceInfoReserved; | |
union jvmtiHeapReferenceInfo; | |
typedef union jvmtiHeapReferenceInfo jvmtiHeapReferenceInfo; | |
struct jvmtiHeapCallbacks; | |
typedef struct jvmtiHeapCallbacks jvmtiHeapCallbacks; | |
struct jvmtiClassDefinition; | |
typedef struct jvmtiClassDefinition jvmtiClassDefinition; | |
struct jvmtiMonitorUsage; | |
typedef struct jvmtiMonitorUsage jvmtiMonitorUsage; | |
struct jvmtiLineNumberEntry; | |
typedef struct jvmtiLineNumberEntry jvmtiLineNumberEntry; | |
struct jvmtiLocalVariableEntry; | |
typedef struct jvmtiLocalVariableEntry jvmtiLocalVariableEntry; | |
struct jvmtiParamInfo; | |
typedef struct jvmtiParamInfo jvmtiParamInfo; | |
struct jvmtiExtensionFunctionInfo; | |
typedef struct jvmtiExtensionFunctionInfo jvmtiExtensionFunctionInfo; | |
struct jvmtiExtensionEventInfo; | |
typedef struct jvmtiExtensionEventInfo jvmtiExtensionEventInfo; | |
struct jvmtiTimerInfo; | |
typedef struct jvmtiTimerInfo jvmtiTimerInfo; | |
struct jvmtiAddrLocationMap; | |
typedef struct jvmtiAddrLocationMap jvmtiAddrLocationMap; | |
typedef void(JNICALL *jvmtiStartFunction)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, void *arg); | |
typedef jint(JNICALL *jvmtiHeapIterationCallback)(jlong class_tag, jlong size, jlong *tag_ptr, jint length, void *user_data); | |
typedef jint(JNICALL *jvmtiHeapReferenceCallback)(jvmtiHeapReferenceKind reference_kind, const jvmtiHeapReferenceInfo *reference_info, jlong class_tag, jlong referrer_class_tag, jlong size, jlong *tag_ptr, jlong *referrer_tag_ptr, jint length, void *user_data); | |
typedef jint(JNICALL *jvmtiPrimitiveFieldCallback)(jvmtiHeapReferenceKind kind, const jvmtiHeapReferenceInfo *info, jlong object_class_tag, jlong *object_tag_ptr, jvalue value, jvmtiPrimitiveType value_type, void *user_data); | |
typedef jint(JNICALL *jvmtiArrayPrimitiveValueCallback)(jlong class_tag, jlong size, jlong *tag_ptr, jint element_count, jvmtiPrimitiveType element_type, const void *elements, void *user_data); | |
typedef jint(JNICALL *jvmtiStringPrimitiveValueCallback)(jlong class_tag, jlong size, jlong *tag_ptr, const jchar *value, jint value_length, void *user_data); | |
typedef jint(JNICALL *jvmtiReservedCallback)(); | |
typedef jvmtiIterationControl(JNICALL *jvmtiHeapObjectCallback)(jlong class_tag, jlong size, jlong *tag_ptr, void *user_data); | |
typedef jvmtiIterationControl(JNICALL *jvmtiHeapRootCallback)(jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong *tag_ptr, void *user_data); | |
typedef jvmtiIterationControl(JNICALL *jvmtiStackReferenceCallback)(jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong *tag_ptr, jlong thread_tag, jint depth, jmethodID method, jint slot, void *user_data); | |
typedef jvmtiIterationControl(JNICALL *jvmtiObjectReferenceCallback)(jvmtiObjectReferenceKind reference_kind, jlong class_tag, jlong size, jlong *tag_ptr, jlong referrer_tag, jint referrer_index, void *user_data); | |
typedef jvmtiError(JNICALL *jvmtiExtensionFunction)(jvmtiEnv *jvmti_env, ...); | |
typedef void(JNICALL *jvmtiExtensionEvent)(jvmtiEnv *jvmti_env, ...); | |
struct jvmtiThreadInfo | |
{ | |
char *name; | |
jint priority; | |
jboolean is_daemon; | |
jthreadGroup thread_group; | |
jobject context_class_loader; | |
}; | |
struct jvmtiMonitorStackDepthInfo | |
{ | |
jobject monitor; | |
jint stack_depth; | |
}; | |
struct jvmtiThreadGroupInfo | |
{ | |
jthreadGroup parent; | |
char *name; | |
jint max_priority; | |
jboolean is_daemon; | |
}; | |
struct jvmtiFrameInfo | |
{ | |
jmethodID method; | |
jlocation location; | |
}; | |
struct jvmtiStackInfo | |
{ | |
jthread thread; | |
jint state; | |
jvmtiFrameInfo *frame_buffer; | |
jint frame_count; | |
}; | |
struct jvmtiHeapReferenceInfoField | |
{ | |
jint index; | |
}; | |
struct jvmtiHeapReferenceInfoArray | |
{ | |
jint index; | |
}; | |
struct jvmtiHeapReferenceInfoConstantPool | |
{ | |
jint index; | |
}; | |
struct jvmtiHeapReferenceInfoStackLocal | |
{ | |
jlong thread_tag; | |
jlong thread_id; | |
jint depth; | |
jmethodID method; | |
jlocation location; | |
jint slot; | |
}; | |
struct jvmtiHeapReferenceInfoJniLocal | |
{ | |
jlong thread_tag; | |
jlong thread_id; | |
jint depth; | |
jmethodID method; | |
}; | |
struct jvmtiHeapReferenceInfoReserved | |
{ | |
jlong reserved1; | |
jlong reserved2; | |
jlong reserved3; | |
jlong reserved4; | |
jlong reserved5; | |
jlong reserved6; | |
jlong reserved7; | |
jlong reserved8; | |
}; | |
union jvmtiHeapReferenceInfo | |
{ | |
jvmtiHeapReferenceInfoField field; | |
jvmtiHeapReferenceInfoArray array; | |
jvmtiHeapReferenceInfoConstantPool constant_pool; | |
jvmtiHeapReferenceInfoStackLocal stack_local; | |
jvmtiHeapReferenceInfoJniLocal jni_local; | |
jvmtiHeapReferenceInfoReserved other; | |
}; | |
struct jvmtiHeapCallbacks | |
{ | |
jvmtiHeapIterationCallback heap_iteration_callback; | |
jvmtiHeapReferenceCallback heap_reference_callback; | |
jvmtiPrimitiveFieldCallback primitive_field_callback; | |
jvmtiArrayPrimitiveValueCallback array_primitive_value_callback; | |
jvmtiStringPrimitiveValueCallback string_primitive_value_callback; | |
jvmtiReservedCallback reserved5; | |
jvmtiReservedCallback reserved6; | |
jvmtiReservedCallback reserved7; | |
jvmtiReservedCallback reserved8; | |
jvmtiReservedCallback reserved9; | |
jvmtiReservedCallback reserved10; | |
jvmtiReservedCallback reserved11; | |
jvmtiReservedCallback reserved12; | |
jvmtiReservedCallback reserved13; | |
jvmtiReservedCallback reserved14; | |
jvmtiReservedCallback reserved15; | |
}; | |
struct jvmtiClassDefinition | |
{ | |
jclass klass; | |
jint class_byte_count; | |
const unsigned char *class_bytes; | |
}; | |
struct jvmtiMonitorUsage | |
{ | |
jthread owner; | |
jint entry_count; | |
jint waiter_count; | |
jthread *waiters; | |
jint notify_waiter_count; | |
jthread *notify_waiters; | |
}; | |
struct jvmtiLineNumberEntry | |
{ | |
jlocation start_location; | |
jint line_number; | |
}; | |
struct jvmtiLocalVariableEntry | |
{ | |
jlocation start_location; | |
jint length; | |
char *name; | |
char *signature; | |
char *generic_signature; | |
jint slot; | |
}; | |
struct jvmtiParamInfo | |
{ | |
char *name; | |
jvmtiParamKind kind; | |
jvmtiParamTypes base_type; | |
jboolean null_ok; | |
}; | |
struct jvmtiExtensionFunctionInfo | |
{ | |
jvmtiExtensionFunction func; | |
char *id; | |
char *short_description; | |
jint param_count; | |
jvmtiParamInfo *params; | |
jint error_count; | |
jvmtiError *errors; | |
}; | |
struct jvmtiExtensionEventInfo | |
{ | |
jint extension_event_index; | |
char *id; | |
char *short_description; | |
jint param_count; | |
jvmtiParamInfo *params; | |
}; | |
struct jvmtiTimerInfo | |
{ | |
jlong max_value; | |
jboolean may_skip_forward; | |
jboolean may_skip_backward; | |
jvmtiTimerKind kind; | |
jlong reserved1; | |
jlong reserved2; | |
}; | |
struct jvmtiAddrLocationMap | |
{ | |
const void *start_address; | |
jlocation location; | |
}; | |
typedef struct | |
{ | |
unsigned int can_tag_objects : 1; | |
unsigned int can_generate_field_modification_events : 1; | |
unsigned int can_generate_field_access_events : 1; | |
unsigned int can_get_bytecodes : 1; | |
unsigned int can_get_synthetic_attribute : 1; | |
unsigned int can_get_owned_monitor_info : 1; | |
unsigned int can_get_current_contended_monitor : 1; | |
unsigned int can_get_monitor_info : 1; | |
unsigned int can_pop_frame : 1; | |
unsigned int can_redefine_classes : 1; | |
unsigned int can_signal_thread : 1; | |
unsigned int can_get_source_file_name : 1; | |
unsigned int can_get_line_numbers : 1; | |
unsigned int can_get_source_debug_extension : 1; | |
unsigned int can_access_local_variables : 1; | |
unsigned int can_maintain_original_method_order : 1; | |
unsigned int can_generate_single_step_events : 1; | |
unsigned int can_generate_exception_events : 1; | |
unsigned int can_generate_frame_pop_events : 1; | |
unsigned int can_generate_breakpoint_events : 1; | |
unsigned int can_suspend : 1; | |
unsigned int can_redefine_any_class : 1; | |
unsigned int can_get_current_thread_cpu_time : 1; | |
unsigned int can_get_thread_cpu_time : 1; | |
unsigned int can_generate_method_entry_events : 1; | |
unsigned int can_generate_method_exit_events : 1; | |
unsigned int can_generate_all_class_hook_events : 1; | |
unsigned int can_generate_compiled_method_load_events : 1; | |
unsigned int can_generate_monitor_events : 1; | |
unsigned int can_generate_vm_object_alloc_events : 1; | |
unsigned int can_generate_native_method_bind_events : 1; | |
unsigned int can_generate_garbage_collection_events : 1; | |
unsigned int can_generate_object_free_events : 1; | |
unsigned int can_force_early_return : 1; | |
unsigned int can_get_owned_monitor_stack_depth_info : 1; | |
unsigned int can_get_constant_pool : 1; | |
unsigned int can_set_native_method_prefix : 1; | |
unsigned int can_retransform_classes : 1; | |
unsigned int can_retransform_any_class : 1; | |
unsigned int can_generate_resource_exhaustion_heap_events : 1; | |
unsigned int can_generate_resource_exhaustion_threads_events : 1; | |
unsigned int can_generate_early_vmstart : 1; | |
unsigned int can_generate_early_class_hook_events : 1; | |
unsigned int can_generate_sampled_object_alloc_events : 1; | |
unsigned int can_support_virtual_threads : 1; | |
unsigned int : 3; | |
unsigned int : 16; | |
unsigned int : 16; | |
unsigned int : 16; | |
unsigned int : 16; | |
unsigned int : 16; | |
} jvmtiCapabilities; | |
typedef void(JNICALL *jvmtiEventReserved)(void); | |
typedef void(JNICALL *jvmtiEventBreakpoint)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method, jlocation location); | |
typedef void(JNICALL *jvmtiEventClassFileLoadHook)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jclass class_being_redefined, jobject loader, const char *name, jobject protection_domain, jint class_data_len, const unsigned char *class_data, jint *new_class_data_len, unsigned char **new_class_data); | |
typedef void(JNICALL *jvmtiEventClassLoad)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jclass klass); | |
typedef void(JNICALL *jvmtiEventClassPrepare)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jclass klass); | |
typedef void(JNICALL *jvmtiEventCompiledMethodLoad)(jvmtiEnv *jvmti_env, jmethodID method, jint code_size, const void *code_addr, jint map_length, const jvmtiAddrLocationMap *map, const void *compile_info); | |
typedef void(JNICALL *jvmtiEventCompiledMethodUnload)(jvmtiEnv *jvmti_env, jmethodID method, const void *code_addr); | |
typedef void(JNICALL *jvmtiEventDataDumpRequest)(jvmtiEnv *jvmti_env); | |
typedef void(JNICALL *jvmtiEventDynamicCodeGenerated)(jvmtiEnv *jvmti_env, const char *name, const void *address, jint length); | |
typedef void(JNICALL *jvmtiEventException)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method, jlocation location, jobject exception, jmethodID catch_method, jlocation catch_location); | |
typedef void(JNICALL *jvmtiEventExceptionCatch)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method, jlocation location, jobject exception); | |
typedef void(JNICALL *jvmtiEventFieldAccess)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method, jlocation location, jclass field_klass, jobject object, jfieldID field); | |
typedef void(JNICALL *jvmtiEventFieldModification)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method, jlocation location, jclass field_klass, jobject object, jfieldID field, char signature_type, jvalue new_value); | |
typedef void(JNICALL *jvmtiEventFramePop)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method, jboolean was_popped_by_exception); | |
typedef void(JNICALL *jvmtiEventGarbageCollectionFinish)(jvmtiEnv *jvmti_env); | |
typedef void(JNICALL *jvmtiEventGarbageCollectionStart)(jvmtiEnv *jvmti_env); | |
typedef void(JNICALL *jvmtiEventMethodEntry)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method); | |
typedef void(JNICALL *jvmtiEventMethodExit)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method, jboolean was_popped_by_exception, jvalue return_value); | |
typedef void(JNICALL *jvmtiEventMonitorContendedEnter)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object); | |
typedef void(JNICALL *jvmtiEventMonitorContendedEntered)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object); | |
typedef void(JNICALL *jvmtiEventMonitorWait)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object, jlong timeout); | |
typedef void(JNICALL *jvmtiEventMonitorWaited)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object, jboolean timed_out); | |
typedef void(JNICALL *jvmtiEventNativeMethodBind)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method, void *address, void **new_address_ptr); | |
typedef void(JNICALL *jvmtiEventObjectFree)(jvmtiEnv *jvmti_env, jlong tag); | |
typedef void(JNICALL *jvmtiEventResourceExhausted)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jint flags, const void *reserved, const char *description); | |
typedef void(JNICALL *jvmtiEventSampledObjectAlloc)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object, jclass object_klass, jlong size); | |
typedef void(JNICALL *jvmtiEventSingleStep)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method, jlocation location); | |
typedef void(JNICALL *jvmtiEventThreadEnd)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread); | |
typedef void(JNICALL *jvmtiEventThreadStart)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread); | |
typedef void(JNICALL *jvmtiEventVirtualThreadEnd)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread virtual_thread); | |
typedef void(JNICALL *jvmtiEventVirtualThreadStart)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread virtual_thread); | |
typedef void(JNICALL *jvmtiEventVMDeath)(jvmtiEnv *jvmti_env, JNIEnv *jni_env); | |
typedef void(JNICALL *jvmtiEventVMInit)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread); | |
typedef void(JNICALL *jvmtiEventVMObjectAlloc)(jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object, jclass object_klass, jlong size); | |
typedef void(JNICALL *jvmtiEventVMStart)(jvmtiEnv *jvmti_env, JNIEnv *jni_env); | |
typedef struct | |
{ | |
jvmtiEventVMInit VMInit; | |
jvmtiEventVMDeath VMDeath; | |
jvmtiEventThreadStart ThreadStart; | |
jvmtiEventThreadEnd ThreadEnd; | |
jvmtiEventClassFileLoadHook ClassFileLoadHook; | |
jvmtiEventClassLoad ClassLoad; | |
jvmtiEventClassPrepare ClassPrepare; | |
jvmtiEventVMStart VMStart; | |
jvmtiEventException Exception; | |
jvmtiEventExceptionCatch ExceptionCatch; | |
jvmtiEventSingleStep SingleStep; | |
jvmtiEventFramePop FramePop; | |
jvmtiEventBreakpoint Breakpoint; | |
jvmtiEventFieldAccess FieldAccess; | |
jvmtiEventFieldModification FieldModification; | |
jvmtiEventMethodEntry MethodEntry; | |
jvmtiEventMethodExit MethodExit; | |
jvmtiEventNativeMethodBind NativeMethodBind; | |
jvmtiEventCompiledMethodLoad CompiledMethodLoad; | |
jvmtiEventCompiledMethodUnload CompiledMethodUnload; | |
jvmtiEventDynamicCodeGenerated DynamicCodeGenerated; | |
jvmtiEventDataDumpRequest DataDumpRequest; | |
jvmtiEventReserved reserved72; | |
jvmtiEventMonitorWait MonitorWait; | |
jvmtiEventMonitorWaited MonitorWaited; | |
jvmtiEventMonitorContendedEnter MonitorContendedEnter; | |
jvmtiEventMonitorContendedEntered MonitorContendedEntered; | |
jvmtiEventReserved reserved77; | |
jvmtiEventReserved reserved78; | |
jvmtiEventReserved reserved79; | |
jvmtiEventResourceExhausted ResourceExhausted; | |
jvmtiEventGarbageCollectionStart GarbageCollectionStart; | |
jvmtiEventGarbageCollectionFinish GarbageCollectionFinish; | |
jvmtiEventObjectFree ObjectFree; | |
jvmtiEventVMObjectAlloc VMObjectAlloc; | |
jvmtiEventReserved reserved85; | |
jvmtiEventSampledObjectAlloc SampledObjectAlloc; | |
jvmtiEventVirtualThreadStart VirtualThreadStart; | |
jvmtiEventVirtualThreadEnd VirtualThreadEnd; | |
} jvmtiEventCallbacks; | |
typedef struct jvmtiInterface_1_ | |
{ | |
void *reserved1; | |
jvmtiError(JNICALL *SetEventNotificationMode)(jvmtiEnv *env, jvmtiEventMode mode, jvmtiEvent event_type, jthread event_thread, ...); | |
jvmtiError(JNICALL *GetAllModules)(jvmtiEnv *env, jint *module_count_ptr, jobject **modules_ptr); | |
jvmtiError(JNICALL *GetAllThreads)(jvmtiEnv *env, jint *threads_count_ptr, jthread **threads_ptr); | |
jvmtiError(JNICALL *SuspendThread)(jvmtiEnv *env, jthread thread); | |
jvmtiError(JNICALL *ResumeThread)(jvmtiEnv *env, jthread thread); | |
jvmtiError(JNICALL *StopThread)(jvmtiEnv *env, jthread thread, jobject exception); | |
jvmtiError(JNICALL *InterruptThread)(jvmtiEnv *env, jthread thread); | |
jvmtiError(JNICALL *GetThreadInfo)(jvmtiEnv *env, jthread thread, jvmtiThreadInfo *info_ptr); | |
jvmtiError(JNICALL *GetOwnedMonitorInfo)(jvmtiEnv *env, jthread thread, jint *owned_monitor_count_ptr, jobject **owned_monitors_ptr); | |
jvmtiError(JNICALL *GetCurrentContendedMonitor)(jvmtiEnv *env, jthread thread, jobject *monitor_ptr); | |
jvmtiError(JNICALL *RunAgentThread)(jvmtiEnv *env, jthread thread, jvmtiStartFunction proc, const void *arg, jint priority); | |
jvmtiError(JNICALL *GetTopThreadGroups)(jvmtiEnv *env, jint *group_count_ptr, jthreadGroup **groups_ptr); | |
jvmtiError(JNICALL *GetThreadGroupInfo)(jvmtiEnv *env, jthreadGroup group, jvmtiThreadGroupInfo *info_ptr); | |
jvmtiError(JNICALL *GetThreadGroupChildren)(jvmtiEnv *env, jthreadGroup group, jint *thread_count_ptr, jthread **threads_ptr, jint *group_count_ptr, jthreadGroup **groups_ptr); | |
jvmtiError(JNICALL *GetFrameCount)(jvmtiEnv *env, jthread thread, jint *count_ptr); | |
jvmtiError(JNICALL *GetThreadState)(jvmtiEnv *env, jthread thread, jint *thread_state_ptr); | |
jvmtiError(JNICALL *GetCurrentThread)(jvmtiEnv *env, jthread *thread_ptr); | |
jvmtiError(JNICALL *GetFrameLocation)(jvmtiEnv *env, jthread thread, jint depth, jmethodID *method_ptr, jlocation *location_ptr); | |
jvmtiError(JNICALL *NotifyFramePop)(jvmtiEnv *env, jthread thread, jint depth); | |
jvmtiError(JNICALL *GetLocalObject)(jvmtiEnv *env, jthread thread, jint depth, jint slot, jobject *value_ptr); | |
jvmtiError(JNICALL *GetLocalInt)(jvmtiEnv *env, jthread thread, jint depth, jint slot, jint *value_ptr); | |
jvmtiError(JNICALL *GetLocalLong)(jvmtiEnv *env, jthread thread, jint depth, jint slot, jlong *value_ptr); | |
jvmtiError(JNICALL *GetLocalFloat)(jvmtiEnv *env, jthread thread, jint depth, jint slot, jfloat *value_ptr); | |
jvmtiError(JNICALL *GetLocalDouble)(jvmtiEnv *env, jthread thread, jint depth, jint slot, jdouble *value_ptr); | |
jvmtiError(JNICALL *SetLocalObject)(jvmtiEnv *env, jthread thread, jint depth, jint slot, jobject value); | |
jvmtiError(JNICALL *SetLocalInt)(jvmtiEnv *env, jthread thread, jint depth, jint slot, jint value); | |
jvmtiError(JNICALL *SetLocalLong)(jvmtiEnv *env, jthread thread, jint depth, jint slot, jlong value); | |
jvmtiError(JNICALL *SetLocalFloat)(jvmtiEnv *env, jthread thread, jint depth, jint slot, jfloat value); | |
jvmtiError(JNICALL *SetLocalDouble)(jvmtiEnv *env, jthread thread, jint depth, jint slot, jdouble value); | |
jvmtiError(JNICALL *CreateRawMonitor)(jvmtiEnv *env, const char *name, jrawMonitorID *monitor_ptr); | |
jvmtiError(JNICALL *DestroyRawMonitor)(jvmtiEnv *env, jrawMonitorID monitor); | |
jvmtiError(JNICALL *RawMonitorEnter)(jvmtiEnv *env, jrawMonitorID monitor); | |
jvmtiError(JNICALL *RawMonitorExit)(jvmtiEnv *env, jrawMonitorID monitor); | |
jvmtiError(JNICALL *RawMonitorWait)(jvmtiEnv *env, jrawMonitorID monitor, jlong millis); | |
jvmtiError(JNICALL *RawMonitorNotify)(jvmtiEnv *env, jrawMonitorID monitor); | |
jvmtiError(JNICALL *RawMonitorNotifyAll)(jvmtiEnv *env, jrawMonitorID monitor); | |
jvmtiError(JNICALL *SetBreakpoint)(jvmtiEnv *env, jmethodID method, jlocation location); | |
jvmtiError(JNICALL *ClearBreakpoint)(jvmtiEnv *env, jmethodID method, jlocation location); | |
jvmtiError(JNICALL *GetNamedModule)(jvmtiEnv *env, jobject class_loader, const char *package_name, jobject *module_ptr); | |
jvmtiError(JNICALL *SetFieldAccessWatch)(jvmtiEnv *env, jclass klass, jfieldID field); | |
jvmtiError(JNICALL *ClearFieldAccessWatch)(jvmtiEnv *env, jclass klass, jfieldID field); | |
jvmtiError(JNICALL *SetFieldModificationWatch)(jvmtiEnv *env, jclass klass, jfieldID field); | |
jvmtiError(JNICALL *ClearFieldModificationWatch)(jvmtiEnv *env, jclass klass, jfieldID field); | |
jvmtiError(JNICALL *IsModifiableClass)(jvmtiEnv *env, jclass klass, jboolean *is_modifiable_class_ptr); | |
jvmtiError(JNICALL *Allocate)(jvmtiEnv *env, jlong size, unsigned char **mem_ptr); | |
jvmtiError(JNICALL *Deallocate)(jvmtiEnv *env, unsigned char *mem); | |
jvmtiError(JNICALL *GetClassSignature)(jvmtiEnv *env, jclass klass, char **signature_ptr, char **generic_ptr); | |
jvmtiError(JNICALL *GetClassStatus)(jvmtiEnv *env, jclass klass, jint *status_ptr); | |
jvmtiError(JNICALL *GetSourceFileName)(jvmtiEnv *env, jclass klass, char **source_name_ptr); | |
jvmtiError(JNICALL *GetClassModifiers)(jvmtiEnv *env, jclass klass, jint *modifiers_ptr); | |
jvmtiError(JNICALL *GetClassMethods)(jvmtiEnv *env, jclass klass, jint *method_count_ptr, jmethodID **methods_ptr); | |
jvmtiError(JNICALL *GetClassFields)(jvmtiEnv *env, jclass klass, jint *field_count_ptr, jfieldID **fields_ptr); | |
jvmtiError(JNICALL *GetImplementedInterfaces)(jvmtiEnv *env, jclass klass, jint *interface_count_ptr, jclass **interfaces_ptr); | |
jvmtiError(JNICALL *IsInterface)(jvmtiEnv *env, jclass klass, jboolean *is_interface_ptr); | |
jvmtiError(JNICALL *IsArrayClass)(jvmtiEnv *env, jclass klass, jboolean *is_array_class_ptr); | |
jvmtiError(JNICALL *GetClassLoader)(jvmtiEnv *env, jclass klass, jobject *classloader_ptr); | |
jvmtiError(JNICALL *GetObjectHashCode)(jvmtiEnv *env, jobject object, jint *hash_code_ptr); | |
jvmtiError(JNICALL *GetObjectMonitorUsage)(jvmtiEnv *env, jobject object, jvmtiMonitorUsage *info_ptr); | |
jvmtiError(JNICALL *GetFieldName)(jvmtiEnv *env, jclass klass, jfieldID field, char **name_ptr, char **signature_ptr, char **generic_ptr); | |
jvmtiError(JNICALL *GetFieldDeclaringClass)(jvmtiEnv *env, jclass klass, jfieldID field, jclass *declaring_class_ptr); | |
jvmtiError(JNICALL *GetFieldModifiers)(jvmtiEnv *env, jclass klass, jfieldID field, jint *modifiers_ptr); | |
jvmtiError(JNICALL *IsFieldSynthetic)(jvmtiEnv *env, jclass klass, jfieldID field, jboolean *is_synthetic_ptr); | |
jvmtiError(JNICALL *GetMethodName)(jvmtiEnv *env, jmethodID method, char **name_ptr, char **signature_ptr, char **generic_ptr); | |
jvmtiError(JNICALL *GetMethodDeclaringClass)(jvmtiEnv *env, jmethodID method, jclass *declaring_class_ptr); | |
jvmtiError(JNICALL *GetMethodModifiers)(jvmtiEnv *env, jmethodID method, jint *modifiers_ptr); | |
void *reserved67; | |
jvmtiError(JNICALL *GetMaxLocals)(jvmtiEnv *env, jmethodID method, jint *max_ptr); | |
jvmtiError(JNICALL *GetArgumentsSize)(jvmtiEnv *env, jmethodID method, jint *size_ptr); | |
jvmtiError(JNICALL *GetLineNumberTable)(jvmtiEnv *env, jmethodID method, jint *entry_count_ptr, jvmtiLineNumberEntry **table_ptr); | |
jvmtiError(JNICALL *GetMethodLocation)(jvmtiEnv *env, jmethodID method, jlocation *start_location_ptr, jlocation *end_location_ptr); | |
jvmtiError(JNICALL *GetLocalVariableTable)(jvmtiEnv *env, jmethodID method, jint *entry_count_ptr, jvmtiLocalVariableEntry **table_ptr); | |
jvmtiError(JNICALL *SetNativeMethodPrefix)(jvmtiEnv *env, const char *prefix); | |
jvmtiError(JNICALL *SetNativeMethodPrefixes)(jvmtiEnv *env, jint prefix_count, char **prefixes); | |
jvmtiError(JNICALL *GetBytecodes)(jvmtiEnv *env, jmethodID method, jint *bytecode_count_ptr, unsigned char **bytecodes_ptr); | |
jvmtiError(JNICALL *IsMethodNative)(jvmtiEnv *env, jmethodID method, jboolean *is_native_ptr); | |
jvmtiError(JNICALL *IsMethodSynthetic)(jvmtiEnv *env, jmethodID method, jboolean *is_synthetic_ptr); | |
jvmtiError(JNICALL *GetLoadedClasses)(jvmtiEnv *env, jint *class_count_ptr, jclass **classes_ptr); | |
jvmtiError(JNICALL *GetClassLoaderClasses)(jvmtiEnv *env, jobject initiating_loader, jint *class_count_ptr, jclass **classes_ptr); | |
jvmtiError(JNICALL *PopFrame)(jvmtiEnv *env, jthread thread); | |
jvmtiError(JNICALL *ForceEarlyReturnObject)(jvmtiEnv *env, jthread thread, jobject value); | |
jvmtiError(JNICALL *ForceEarlyReturnInt)(jvmtiEnv *env, jthread thread, jint value); | |
jvmtiError(JNICALL *ForceEarlyReturnLong)(jvmtiEnv *env, jthread thread, jlong value); | |
jvmtiError(JNICALL *ForceEarlyReturnFloat)(jvmtiEnv *env, jthread thread, jfloat value); | |
jvmtiError(JNICALL *ForceEarlyReturnDouble)(jvmtiEnv *env, jthread thread, jdouble value); | |
jvmtiError(JNICALL *ForceEarlyReturnVoid)(jvmtiEnv *env, jthread thread); | |
jvmtiError(JNICALL *RedefineClasses)(jvmtiEnv *env, jint class_count, const jvmtiClassDefinition *class_definitions); | |
jvmtiError(JNICALL *GetVersionNumber)(jvmtiEnv *env, jint *version_ptr); | |
jvmtiError(JNICALL *GetCapabilities)(jvmtiEnv *env, jvmtiCapabilities *capabilities_ptr); | |
jvmtiError(JNICALL *GetSourceDebugExtension)(jvmtiEnv *env, jclass klass, char **source_debug_extension_ptr); | |
jvmtiError(JNICALL *IsMethodObsolete)(jvmtiEnv *env, jmethodID method, jboolean *is_obsolete_ptr); | |
jvmtiError(JNICALL *SuspendThreadList)(jvmtiEnv *env, jint request_count, const jthread *request_list, jvmtiError *results); | |
jvmtiError(JNICALL *ResumeThreadList)(jvmtiEnv *env, jint request_count, const jthread *request_list, jvmtiError *results); | |
jvmtiError(JNICALL *AddModuleReads)(jvmtiEnv *env, jobject module, jobject to_module); | |
jvmtiError(JNICALL *AddModuleExports)(jvmtiEnv *env, jobject module, const char *pkg_name, jobject to_module); | |
jvmtiError(JNICALL *AddModuleOpens)(jvmtiEnv *env, jobject module, const char *pkg_name, jobject to_module); | |
jvmtiError(JNICALL *AddModuleUses)(jvmtiEnv *env, jobject module, jclass service); | |
jvmtiError(JNICALL *AddModuleProvides)(jvmtiEnv *env, jobject module, jclass service, jclass impl_class); | |
jvmtiError(JNICALL *IsModifiableModule)(jvmtiEnv *env, jobject module, jboolean *is_modifiable_module_ptr); | |
jvmtiError(JNICALL *GetAllStackTraces)(jvmtiEnv *env, jint max_frame_count, jvmtiStackInfo **stack_info_ptr, jint *thread_count_ptr); | |
jvmtiError(JNICALL *GetThreadListStackTraces)(jvmtiEnv *env, jint thread_count, const jthread *thread_list, jint max_frame_count, jvmtiStackInfo **stack_info_ptr); | |
jvmtiError(JNICALL *GetThreadLocalStorage)(jvmtiEnv *env, jthread thread, void **data_ptr); | |
jvmtiError(JNICALL *SetThreadLocalStorage)(jvmtiEnv *env, jthread thread, const void *data); | |
jvmtiError(JNICALL *GetStackTrace)(jvmtiEnv *env, jthread thread, jint start_depth, jint max_frame_count, jvmtiFrameInfo *frame_buffer, jint *count_ptr); | |
void *reserved105; | |
jvmtiError(JNICALL *GetTag)(jvmtiEnv *env, jobject object, jlong *tag_ptr); | |
jvmtiError(JNICALL *SetTag)(jvmtiEnv *env, jobject object, jlong tag); | |
jvmtiError(JNICALL *ForceGarbageCollection)(jvmtiEnv *env); | |
jvmtiError(JNICALL *IterateOverObjectsReachableFromObject)(jvmtiEnv *env, jobject object, jvmtiObjectReferenceCallback object_reference_callback, const void *user_data); | |
jvmtiError(JNICALL *IterateOverReachableObjects)(jvmtiEnv *env, jvmtiHeapRootCallback heap_root_callback, jvmtiStackReferenceCallback stack_ref_callback, jvmtiObjectReferenceCallback object_ref_callback, const void *user_data); | |
jvmtiError(JNICALL *IterateOverHeap)(jvmtiEnv *env, jvmtiHeapObjectFilter object_filter, jvmtiHeapObjectCallback heap_object_callback, const void *user_data); | |
jvmtiError(JNICALL *IterateOverInstancesOfClass)(jvmtiEnv *env, jclass klass, jvmtiHeapObjectFilter object_filter, jvmtiHeapObjectCallback heap_object_callback, const void *user_data); | |
void *reserved113; | |
jvmtiError(JNICALL *GetObjectsWithTags)(jvmtiEnv *env, jint tag_count, const jlong *tags, jint *count_ptr, jobject **object_result_ptr, jlong **tag_result_ptr); | |
jvmtiError(JNICALL *FollowReferences)(jvmtiEnv *env, jint heap_filter, jclass klass, jobject initial_object, const jvmtiHeapCallbacks *callbacks, const void *user_data); | |
jvmtiError(JNICALL *IterateThroughHeap)(jvmtiEnv *env, jint heap_filter, jclass klass, const jvmtiHeapCallbacks *callbacks, const void *user_data); | |
void *reserved117; | |
jvmtiError(JNICALL *SuspendAllVirtualThreads)(jvmtiEnv *env, jint except_count, const jthread *except_list); | |
jvmtiError(JNICALL *ResumeAllVirtualThreads)(jvmtiEnv *env, jint except_count, const jthread *except_list); | |
jvmtiError(JNICALL *SetJNIFunctionTable)(jvmtiEnv *env, const jniNativeInterface *function_table); | |
jvmtiError(JNICALL *GetJNIFunctionTable)(jvmtiEnv *env, jniNativeInterface **function_table); | |
jvmtiError(JNICALL *SetEventCallbacks)(jvmtiEnv *env, const jvmtiEventCallbacks *callbacks, jint size_of_callbacks); | |
jvmtiError(JNICALL *GenerateEvents)(jvmtiEnv *env, jvmtiEvent event_type); | |
jvmtiError(JNICALL *GetExtensionFunctions)(jvmtiEnv *env, jint *extension_count_ptr, jvmtiExtensionFunctionInfo **extensions); | |
jvmtiError(JNICALL *GetExtensionEvents)(jvmtiEnv *env, jint *extension_count_ptr, jvmtiExtensionEventInfo **extensions); | |
jvmtiError(JNICALL *SetExtensionEventCallback)(jvmtiEnv *env, jint extension_event_index, jvmtiExtensionEvent callback); | |
jvmtiError(JNICALL *DisposeEnvironment)(jvmtiEnv *env); | |
jvmtiError(JNICALL *GetErrorName)(jvmtiEnv *env, jvmtiError error, char **name_ptr); | |
jvmtiError(JNICALL *GetJLocationFormat)(jvmtiEnv *env, jvmtiJlocationFormat *format_ptr); | |
jvmtiError(JNICALL *GetSystemProperties)(jvmtiEnv *env, jint *count_ptr, char ***property_ptr); | |
jvmtiError(JNICALL *GetSystemProperty)(jvmtiEnv *env, const char *property, char **value_ptr); | |
jvmtiError(JNICALL *SetSystemProperty)(jvmtiEnv *env, const char *property, const char *value_ptr); | |
jvmtiError(JNICALL *GetPhase)(jvmtiEnv *env, jvmtiPhase *phase_ptr); | |
jvmtiError(JNICALL *GetCurrentThreadCpuTimerInfo)(jvmtiEnv *env, jvmtiTimerInfo *info_ptr); | |
jvmtiError(JNICALL *GetCurrentThreadCpuTime)(jvmtiEnv *env, jlong *nanos_ptr); | |
jvmtiError(JNICALL *GetThreadCpuTimerInfo)(jvmtiEnv *env, jvmtiTimerInfo *info_ptr); | |
jvmtiError(JNICALL *GetThreadCpuTime)(jvmtiEnv *env, jthread thread, jlong *nanos_ptr); | |
jvmtiError(JNICALL *GetTimerInfo)(jvmtiEnv *env, jvmtiTimerInfo *info_ptr); | |
jvmtiError(JNICALL *GetTime)(jvmtiEnv *env, jlong *nanos_ptr); | |
jvmtiError(JNICALL *GetPotentialCapabilities)(jvmtiEnv *env, jvmtiCapabilities *capabilities_ptr); | |
void *reserved141; | |
jvmtiError(JNICALL *AddCapabilities)(jvmtiEnv *env, const jvmtiCapabilities *capabilities_ptr); | |
jvmtiError(JNICALL *RelinquishCapabilities)(jvmtiEnv *env, const jvmtiCapabilities *capabilities_ptr); | |
jvmtiError(JNICALL *GetAvailableProcessors)(jvmtiEnv *env, jint *processor_count_ptr); | |
jvmtiError(JNICALL *GetClassVersionNumbers)(jvmtiEnv *env, jclass klass, jint *minor_version_ptr, jint *major_version_ptr); | |
jvmtiError(JNICALL *GetConstantPool)(jvmtiEnv *env, jclass klass, jint *constant_pool_count_ptr, jint *constant_pool_byte_count_ptr, unsigned char **constant_pool_bytes_ptr); | |
jvmtiError(JNICALL *GetEnvironmentLocalStorage)(jvmtiEnv *env, void **data_ptr); | |
jvmtiError(JNICALL *SetEnvironmentLocalStorage)(jvmtiEnv *env, const void *data); | |
jvmtiError(JNICALL *AddToBootstrapClassLoaderSearch)(jvmtiEnv *env, const char *segment); | |
jvmtiError(JNICALL *SetVerboseFlag)(jvmtiEnv *env, jvmtiVerboseFlag flag, jboolean value); | |
jvmtiError(JNICALL *AddToSystemClassLoaderSearch)(jvmtiEnv *env, const char *segment); | |
jvmtiError(JNICALL *RetransformClasses)(jvmtiEnv *env, jint class_count, const jclass *classes); | |
jvmtiError(JNICALL *GetOwnedMonitorStackDepthInfo)(jvmtiEnv *env, jthread thread, jint *monitor_info_count_ptr, jvmtiMonitorStackDepthInfo **monitor_info_ptr); | |
jvmtiError(JNICALL *GetObjectSize)(jvmtiEnv *env, jobject object, jlong *size_ptr); | |
jvmtiError(JNICALL *GetLocalInstance)(jvmtiEnv *env, jthread thread, jint depth, jobject *value_ptr); | |
jvmtiError(JNICALL *SetHeapSamplingInterval)(jvmtiEnv *env, jint sampling_interval); | |
} jvmtiInterface_1; | |
struct _jvmtiEnv | |
{ | |
const struct jvmtiInterface_1_ *functions; | |
#ifdef __cplusplus | |
jvmtiError Allocate(jlong size, unsigned char **mem_ptr) { return functions->Allocate(this, size, mem_ptr); } | |
jvmtiError Deallocate(unsigned char *mem) { return functions->Deallocate(this, mem); } | |
jvmtiError GetThreadState(jthread thread, jint *thread_state_ptr) { return functions->GetThreadState(this, thread, thread_state_ptr); } | |
jvmtiError GetCurrentThread(jthread *thread_ptr) { return functions->GetCurrentThread(this, thread_ptr); } | |
jvmtiError GetAllThreads(jint *threads_count_ptr, jthread **threads_ptr) { return functions->GetAllThreads(this, threads_count_ptr, threads_ptr); } | |
jvmtiError SuspendThread(jthread thread) { return functions->SuspendThread(this, thread); } | |
jvmtiError SuspendThreadList(jint request_count, const jthread *request_list, jvmtiError *results) { return functions->SuspendThreadList(this, request_count, request_list, results); } | |
jvmtiError SuspendAllVirtualThreads(jint except_count, const jthread *except_list) { return functions->SuspendAllVirtualThreads(this, except_count, except_list); } | |
jvmtiError ResumeThread(jthread thread) { return functions->ResumeThread(this, thread); } | |
jvmtiError ResumeThreadList(jint request_count, const jthread *request_list, jvmtiError *results) { return functions->ResumeThreadList(this, request_count, request_list, results); } | |
jvmtiError ResumeAllVirtualThreads(jint except_count, const jthread *except_list) { return functions->ResumeAllVirtualThreads(this, except_count, except_list); } | |
jvmtiError StopThread(jthread thread, jobject exception) { return functions->StopThread(this, thread, exception); } | |
jvmtiError InterruptThread(jthread thread) { return functions->InterruptThread(this, thread); } | |
jvmtiError GetThreadInfo(jthread thread, jvmtiThreadInfo *info_ptr) { return functions->GetThreadInfo(this, thread, info_ptr); } | |
jvmtiError GetOwnedMonitorInfo(jthread thread, jint *owned_monitor_count_ptr, jobject **owned_monitors_ptr) { return functions->GetOwnedMonitorInfo(this, thread, owned_monitor_count_ptr, owned_monitors_ptr); } | |
jvmtiError GetOwnedMonitorStackDepthInfo(jthread thread, jint *monitor_info_count_ptr, jvmtiMonitorStackDepthInfo **monitor_info_ptr) { return functions->GetOwnedMonitorStackDepthInfo(this, thread, monitor_info_count_ptr, monitor_info_ptr); } | |
jvmtiError GetCurrentContendedMonitor(jthread thread, jobject *monitor_ptr) { return functions->GetCurrentContendedMonitor(this, thread, monitor_ptr); } | |
jvmtiError RunAgentThread(jthread thread, jvmtiStartFunction proc, const void *arg, jint priority) { return functions->RunAgentThread(this, thread, proc, arg, priority); } | |
jvmtiError SetThreadLocalStorage(jthread thread, const void *data) { return functions->SetThreadLocalStorage(this, thread, data); } | |
jvmtiError GetThreadLocalStorage(jthread thread, void **data_ptr) { return functions->GetThreadLocalStorage(this, thread, data_ptr); } | |
jvmtiError GetTopThreadGroups(jint *group_count_ptr, jthreadGroup **groups_ptr) { return functions->GetTopThreadGroups(this, group_count_ptr, groups_ptr); } | |
jvmtiError GetThreadGroupInfo(jthreadGroup group, jvmtiThreadGroupInfo *info_ptr) { return functions->GetThreadGroupInfo(this, group, info_ptr); } | |
jvmtiError GetThreadGroupChildren(jthreadGroup group, jint *thread_count_ptr, jthread **threads_ptr, jint *group_count_ptr, jthreadGroup **groups_ptr) { return functions->GetThreadGroupChildren(this, group, thread_count_ptr, threads_ptr, group_count_ptr, groups_ptr); } | |
jvmtiError GetStackTrace(jthread thread, jint start_depth, jint max_frame_count, jvmtiFrameInfo *frame_buffer, jint *count_ptr) { return functions->GetStackTrace(this, thread, start_depth, max_frame_count, frame_buffer, count_ptr); } | |
jvmtiError GetAllStackTraces(jint max_frame_count, jvmtiStackInfo **stack_info_ptr, jint *thread_count_ptr) { return functions->GetAllStackTraces(this, max_frame_count, stack_info_ptr, thread_count_ptr); } | |
jvmtiError GetThreadListStackTraces(jint thread_count, const jthread *thread_list, jint max_frame_count, jvmtiStackInfo **stack_info_ptr) { return functions->GetThreadListStackTraces(this, thread_count, thread_list, max_frame_count, stack_info_ptr); } | |
jvmtiError GetFrameCount(jthread thread, jint *count_ptr) { return functions->GetFrameCount(this, thread, count_ptr); } | |
jvmtiError PopFrame(jthread thread) { return functions->PopFrame(this, thread); } | |
jvmtiError GetFrameLocation(jthread thread, jint depth, jmethodID *method_ptr, jlocation *location_ptr) { return functions->GetFrameLocation(this, thread, depth, method_ptr, location_ptr); } | |
jvmtiError NotifyFramePop(jthread thread, jint depth) { return functions->NotifyFramePop(this, thread, depth); } | |
jvmtiError ForceEarlyReturnObject(jthread thread, jobject value) { return functions->ForceEarlyReturnObject(this, thread, value); } | |
jvmtiError ForceEarlyReturnInt(jthread thread, jint value) { return functions->ForceEarlyReturnInt(this, thread, value); } | |
jvmtiError ForceEarlyReturnLong(jthread thread, jlong value) { return functions->ForceEarlyReturnLong(this, thread, value); } | |
jvmtiError ForceEarlyReturnFloat(jthread thread, jfloat value) { return functions->ForceEarlyReturnFloat(this, thread, value); } | |
jvmtiError ForceEarlyReturnDouble(jthread thread, jdouble value) { return functions->ForceEarlyReturnDouble(this, thread, value); } | |
jvmtiError ForceEarlyReturnVoid(jthread thread) { return functions->ForceEarlyReturnVoid(this, thread); } | |
jvmtiError FollowReferences(jint heap_filter, jclass klass, jobject initial_object, const jvmtiHeapCallbacks *callbacks, const void *user_data) { return functions->FollowReferences(this, heap_filter, klass, initial_object, callbacks, user_data); } | |
jvmtiError IterateThroughHeap(jint heap_filter, jclass klass, const jvmtiHeapCallbacks *callbacks, const void *user_data) { return functions->IterateThroughHeap(this, heap_filter, klass, callbacks, user_data); } | |
jvmtiError GetTag(jobject object, jlong *tag_ptr) { return functions->GetTag(this, object, tag_ptr); } | |
jvmtiError SetTag(jobject object, jlong tag) { return functions->SetTag(this, object, tag); } | |
jvmtiError GetObjectsWithTags(jint tag_count, const jlong *tags, jint *count_ptr, jobject **object_result_ptr, jlong **tag_result_ptr) { return functions->GetObjectsWithTags(this, tag_count, tags, count_ptr, object_result_ptr, tag_result_ptr); } | |
jvmtiError ForceGarbageCollection() { return functions->ForceGarbageCollection(this); } | |
jvmtiError IterateOverObjectsReachableFromObject(jobject object, jvmtiObjectReferenceCallback object_reference_callback, const void *user_data) { return functions->IterateOverObjectsReachableFromObject(this, object, object_reference_callback, user_data); } | |
jvmtiError IterateOverReachableObjects(jvmtiHeapRootCallback heap_root_callback, jvmtiStackReferenceCallback stack_ref_callback, jvmtiObjectReferenceCallback object_ref_callback, const void *user_data) { return functions->IterateOverReachableObjects(this, heap_root_callback, stack_ref_callback, object_ref_callback, user_data); } | |
jvmtiError IterateOverHeap(jvmtiHeapObjectFilter object_filter, jvmtiHeapObjectCallback heap_object_callback, const void *user_data) { return functions->IterateOverHeap(this, object_filter, heap_object_callback, user_data); } | |
jvmtiError IterateOverInstancesOfClass(jclass klass, jvmtiHeapObjectFilter object_filter, jvmtiHeapObjectCallback heap_object_callback, const void *user_data) { return functions->IterateOverInstancesOfClass(this, klass, object_filter, heap_object_callback, user_data); } | |
jvmtiError GetLocalObject(jthread thread, jint depth, jint slot, jobject *value_ptr) { return functions->GetLocalObject(this, thread, depth, slot, value_ptr); } | |
jvmtiError GetLocalInstance(jthread thread, jint depth, jobject *value_ptr) { return functions->GetLocalInstance(this, thread, depth, value_ptr); } | |
jvmtiError GetLocalInt(jthread thread, jint depth, jint slot, jint *value_ptr) { return functions->GetLocalInt(this, thread, depth, slot, value_ptr); } | |
jvmtiError GetLocalLong(jthread thread, jint depth, jint slot, jlong *value_ptr) { return functions->GetLocalLong(this, thread, depth, slot, value_ptr); } | |
jvmtiError GetLocalFloat(jthread thread, jint depth, jint slot, jfloat *value_ptr) { return functions->GetLocalFloat(this, thread, depth, slot, value_ptr); } | |
jvmtiError GetLocalDouble(jthread thread, jint depth, jint slot, jdouble *value_ptr) { return functions->GetLocalDouble(this, thread, depth, slot, value_ptr); } | |
jvmtiError SetLocalObject(jthread thread, jint depth, jint slot, jobject value) { return functions->SetLocalObject(this, thread, depth, slot, value); } | |
jvmtiError SetLocalInt(jthread thread, jint depth, jint slot, jint value) { return functions->SetLocalInt(this, thread, depth, slot, value); } | |
jvmtiError SetLocalLong(jthread thread, jint depth, jint slot, jlong value) { return functions->SetLocalLong(this, thread, depth, slot, value); } | |
jvmtiError SetLocalFloat(jthread thread, jint depth, jint slot, jfloat value) { return functions->SetLocalFloat(this, thread, depth, slot, value); } | |
jvmtiError SetLocalDouble(jthread thread, jint depth, jint slot, jdouble value) { return functions->SetLocalDouble(this, thread, depth, slot, value); } | |
jvmtiError SetBreakpoint(jmethodID method, jlocation location) { return functions->SetBreakpoint(this, method, location); } | |
jvmtiError ClearBreakpoint(jmethodID method, jlocation location) { return functions->ClearBreakpoint(this, method, location); } | |
jvmtiError SetFieldAccessWatch(jclass klass, jfieldID field) { return functions->SetFieldAccessWatch(this, klass, field); } | |
jvmtiError ClearFieldAccessWatch(jclass klass, jfieldID field) { return functions->ClearFieldAccessWatch(this, klass, field); } | |
jvmtiError SetFieldModificationWatch(jclass klass, jfieldID field) { return functions->SetFieldModificationWatch(this, klass, field); } | |
jvmtiError ClearFieldModificationWatch(jclass klass, jfieldID field) { return functions->ClearFieldModificationWatch(this, klass, field); } | |
jvmtiError GetAllModules(jint *module_count_ptr, jobject **modules_ptr) { return functions->GetAllModules(this, module_count_ptr, modules_ptr); } | |
jvmtiError GetNamedModule(jobject class_loader, const char *package_name, jobject *module_ptr) { return functions->GetNamedModule(this, class_loader, package_name, module_ptr); } | |
jvmtiError AddModuleReads(jobject module, jobject to_module) { return functions->AddModuleReads(this, module, to_module); } | |
jvmtiError AddModuleExports(jobject module, const char *pkg_name, jobject to_module) { return functions->AddModuleExports(this, module, pkg_name, to_module); } | |
jvmtiError AddModuleOpens(jobject module, const char *pkg_name, jobject to_module) { return functions->AddModuleOpens(this, module, pkg_name, to_module); } | |
jvmtiError AddModuleUses(jobject module, jclass service) { return functions->AddModuleUses(this, module, service); } | |
jvmtiError AddModuleProvides(jobject module, jclass service, jclass impl_class) { return functions->AddModuleProvides(this, module, service, impl_class); } | |
jvmtiError IsModifiableModule(jobject module, jboolean *is_modifiable_module_ptr) { return functions->IsModifiableModule(this, module, is_modifiable_module_ptr); } | |
jvmtiError GetLoadedClasses(jint *class_count_ptr, jclass **classes_ptr) { return functions->GetLoadedClasses(this, class_count_ptr, classes_ptr); } | |
jvmtiError GetClassLoaderClasses(jobject initiating_loader, jint *class_count_ptr, jclass **classes_ptr) { return functions->GetClassLoaderClasses(this, initiating_loader, class_count_ptr, classes_ptr); } | |
jvmtiError GetClassSignature(jclass klass, char **signature_ptr, char **generic_ptr) { return functions->GetClassSignature(this, klass, signature_ptr, generic_ptr); } | |
jvmtiError GetClassStatus(jclass klass, jint *status_ptr) { return functions->GetClassStatus(this, klass, status_ptr); } | |
jvmtiError GetSourceFileName(jclass klass, char **source_name_ptr) { return functions->GetSourceFileName(this, klass, source_name_ptr); } | |
jvmtiError GetClassModifiers(jclass klass, jint *modifiers_ptr) { return functions->GetClassModifiers(this, klass, modifiers_ptr); } | |
jvmtiError GetClassMethods(jclass klass, jint *method_count_ptr, jmethodID **methods_ptr) { return functions->GetClassMethods(this, klass, method_count_ptr, methods_ptr); } | |
jvmtiError GetClassFields(jclass klass, jint *field_count_ptr, jfieldID **fields_ptr) { return functions->GetClassFields(this, klass, field_count_ptr, fields_ptr); } | |
jvmtiError GetImplementedInterfaces(jclass klass, jint *interface_count_ptr, jclass **interfaces_ptr) { return functions->GetImplementedInterfaces(this, klass, interface_count_ptr, interfaces_ptr); } | |
jvmtiError GetClassVersionNumbers(jclass klass, jint *minor_version_ptr, jint *major_version_ptr) { return functions->GetClassVersionNumbers(this, klass, minor_version_ptr, major_version_ptr); } | |
jvmtiError GetConstantPool(jclass klass, jint *constant_pool_count_ptr, jint *constant_pool_byte_count_ptr, unsigned char **constant_pool_bytes_ptr) { return functions->GetConstantPool(this, klass, constant_pool_count_ptr, constant_pool_byte_count_ptr, constant_pool_bytes_ptr); } | |
jvmtiError IsInterface(jclass klass, jboolean *is_interface_ptr) { return functions->IsInterface(this, klass, is_interface_ptr); } | |
jvmtiError IsArrayClass(jclass klass, jboolean *is_array_class_ptr) { return functions->IsArrayClass(this, klass, is_array_class_ptr); } | |
jvmtiError IsModifiableClass(jclass klass, jboolean *is_modifiable_class_ptr) { return functions->IsModifiableClass(this, klass, is_modifiable_class_ptr); } | |
jvmtiError GetClassLoader(jclass klass, jobject *classloader_ptr) { return functions->GetClassLoader(this, klass, classloader_ptr); } | |
jvmtiError GetSourceDebugExtension(jclass klass, char **source_debug_extension_ptr) { return functions->GetSourceDebugExtension(this, klass, source_debug_extension_ptr); } | |
jvmtiError RetransformClasses(jint class_count, const jclass *classes) { return functions->RetransformClasses(this, class_count, classes); } | |
jvmtiError RedefineClasses(jint class_count, const jvmtiClassDefinition *class_definitions) { return functions->RedefineClasses(this, class_count, class_definitions); } | |
jvmtiError GetObjectSize(jobject object, jlong *size_ptr) { return functions->GetObjectSize(this, object, size_ptr); } | |
jvmtiError GetObjectHashCode(jobject object, jint *hash_code_ptr) { return functions->GetObjectHashCode(this, object, hash_code_ptr); } | |
jvmtiError GetObjectMonitorUsage(jobject object, jvmtiMonitorUsage *info_ptr) { return functions->GetObjectMonitorUsage(this, object, info_ptr); } | |
jvmtiError GetFieldName(jclass klass, jfieldID field, char **name_ptr, char **signature_ptr, char **generic_ptr) { return functions->GetFieldName(this, klass, field, name_ptr, signature_ptr, generic_ptr); } | |
jvmtiError GetFieldDeclaringClass(jclass klass, jfieldID field, jclass *declaring_class_ptr) { return functions->GetFieldDeclaringClass(this, klass, field, declaring_class_ptr); } | |
jvmtiError GetFieldModifiers(jclass klass, jfieldID field, jint *modifiers_ptr) { return functions->GetFieldModifiers(this, klass, field, modifiers_ptr); } | |
jvmtiError IsFieldSynthetic(jclass klass, jfieldID field, jboolean *is_synthetic_ptr) { return functions->IsFieldSynthetic(this, klass, field, is_synthetic_ptr); } | |
jvmtiError GetMethodName(jmethodID method, char **name_ptr, char **signature_ptr, char **generic_ptr) { return functions->GetMethodName(this, method, name_ptr, signature_ptr, generic_ptr); } | |
jvmtiError GetMethodDeclaringClass(jmethodID method, jclass *declaring_class_ptr) { return functions->GetMethodDeclaringClass(this, method, declaring_class_ptr); } | |
jvmtiError GetMethodModifiers(jmethodID method, jint *modifiers_ptr) { return functions->GetMethodModifiers(this, method, modifiers_ptr); } | |
jvmtiError GetMaxLocals(jmethodID method, jint *max_ptr) { return functions->GetMaxLocals(this, method, max_ptr); } | |
jvmtiError GetArgumentsSize(jmethodID method, jint *size_ptr) { return functions->GetArgumentsSize(this, method, size_ptr); } | |
jvmtiError GetLineNumberTable(jmethodID method, jint *entry_count_ptr, jvmtiLineNumberEntry **table_ptr) { return functions->GetLineNumberTable(this, method, entry_count_ptr, table_ptr); } | |
jvmtiError GetMethodLocation(jmethodID method, jlocation *start_location_ptr, jlocation *end_location_ptr) { return functions->GetMethodLocation(this, method, start_location_ptr, end_location_ptr); } | |
jvmtiError GetLocalVariableTable(jmethodID method, jint *entry_count_ptr, jvmtiLocalVariableEntry **table_ptr) { return functions->GetLocalVariableTable(this, method, entry_count_ptr, table_ptr); } | |
jvmtiError GetBytecodes(jmethodID method, jint *bytecode_count_ptr, unsigned char **bytecodes_ptr) { return functions->GetBytecodes(this, method, bytecode_count_ptr, bytecodes_ptr); } | |
jvmtiError IsMethodNative(jmethodID method, jboolean *is_native_ptr) { return functions->IsMethodNative(this, method, is_native_ptr); } | |
jvmtiError IsMethodSynthetic(jmethodID method, jboolean *is_synthetic_ptr) { return functions->IsMethodSynthetic(this, method, is_synthetic_ptr); } | |
jvmtiError IsMethodObsolete(jmethodID method, jboolean *is_obsolete_ptr) { return functions->IsMethodObsolete(this, method, is_obsolete_ptr); } | |
jvmtiError SetNativeMethodPrefix(const char *prefix) { return functions->SetNativeMethodPrefix(this, prefix); } | |
jvmtiError SetNativeMethodPrefixes(jint prefix_count, char **prefixes) { return functions->SetNativeMethodPrefixes(this, prefix_count, prefixes); } | |
jvmtiError CreateRawMonitor(const char *name, jrawMonitorID *monitor_ptr) { return functions->CreateRawMonitor(this, name, monitor_ptr); } | |
jvmtiError DestroyRawMonitor(jrawMonitorID monitor) { return functions->DestroyRawMonitor(this, monitor); } | |
jvmtiError RawMonitorEnter(jrawMonitorID monitor) { return functions->RawMonitorEnter(this, monitor); } | |
jvmtiError RawMonitorExit(jrawMonitorID monitor) { return functions->RawMonitorExit(this, monitor); } | |
jvmtiError RawMonitorWait(jrawMonitorID monitor, jlong millis) { return functions->RawMonitorWait(this, monitor, millis); } | |
jvmtiError RawMonitorNotify(jrawMonitorID monitor) { return functions->RawMonitorNotify(this, monitor); } | |
jvmtiError RawMonitorNotifyAll(jrawMonitorID monitor) { return functions->RawMonitorNotifyAll(this, monitor); } | |
jvmtiError SetJNIFunctionTable(const jniNativeInterface *function_table) { return functions->SetJNIFunctionTable(this, function_table); } | |
jvmtiError GetJNIFunctionTable(jniNativeInterface **function_table) { return functions->GetJNIFunctionTable(this, function_table); } | |
jvmtiError SetEventCallbacks(const jvmtiEventCallbacks *callbacks, jint size_of_callbacks) { return functions->SetEventCallbacks(this, callbacks, size_of_callbacks); } | |
jvmtiError SetEventNotificationMode(jvmtiEventMode mode, jvmtiEvent event_type, jthread event_thread, ...) { return functions->SetEventNotificationMode(this, mode, event_type, event_thread); } | |
jvmtiError GenerateEvents(jvmtiEvent event_type) { return functions->GenerateEvents(this, event_type); } | |
jvmtiError GetExtensionFunctions(jint *extension_count_ptr, jvmtiExtensionFunctionInfo **extensions) { return functions->GetExtensionFunctions(this, extension_count_ptr, extensions); } | |
jvmtiError GetExtensionEvents(jint *extension_count_ptr, jvmtiExtensionEventInfo **extensions) { return functions->GetExtensionEvents(this, extension_count_ptr, extensions); } | |
jvmtiError SetExtensionEventCallback(jint extension_event_index, jvmtiExtensionEvent callback) { return functions->SetExtensionEventCallback(this, extension_event_index, callback); } | |
jvmtiError GetPotentialCapabilities(jvmtiCapabilities *capabilities_ptr) { return functions->GetPotentialCapabilities(this, capabilities_ptr); } | |
jvmtiError AddCapabilities(const jvmtiCapabilities *capabilities_ptr) { return functions->AddCapabilities(this, capabilities_ptr); } | |
jvmtiError RelinquishCapabilities(const jvmtiCapabilities *capabilities_ptr) { return functions->RelinquishCapabilities(this, capabilities_ptr); } | |
jvmtiError GetCapabilities(jvmtiCapabilities *capabilities_ptr) { return functions->GetCapabilities(this, capabilities_ptr); } | |
jvmtiError GetCurrentThreadCpuTimerInfo(jvmtiTimerInfo *info_ptr) { return functions->GetCurrentThreadCpuTimerInfo(this, info_ptr); } | |
jvmtiError GetCurrentThreadCpuTime(jlong *nanos_ptr) { return functions->GetCurrentThreadCpuTime(this, nanos_ptr); } | |
jvmtiError GetThreadCpuTimerInfo(jvmtiTimerInfo *info_ptr) { return functions->GetThreadCpuTimerInfo(this, info_ptr); } | |
jvmtiError GetThreadCpuTime(jthread thread, jlong *nanos_ptr) { return functions->GetThreadCpuTime(this, thread, nanos_ptr); } | |
jvmtiError GetTimerInfo(jvmtiTimerInfo *info_ptr) { return functions->GetTimerInfo(this, info_ptr); } | |
jvmtiError GetTime(jlong *nanos_ptr) { return functions->GetTime(this, nanos_ptr); } | |
jvmtiError GetAvailableProcessors(jint *processor_count_ptr) { return functions->GetAvailableProcessors(this, processor_count_ptr); } | |
jvmtiError AddToBootstrapClassLoaderSearch(const char *segment) { return functions->AddToBootstrapClassLoaderSearch(this, segment); } | |
jvmtiError AddToSystemClassLoaderSearch(const char *segment) { return functions->AddToSystemClassLoaderSearch(this, segment); } | |
jvmtiError GetSystemProperties(jint *count_ptr, char ***property_ptr) { return functions->GetSystemProperties(this, count_ptr, property_ptr); } | |
jvmtiError GetSystemProperty(const char *property, char **value_ptr) { return functions->GetSystemProperty(this, property, value_ptr); } | |
jvmtiError SetSystemProperty(const char *property, const char *value_ptr) { return functions->SetSystemProperty(this, property, value_ptr); } | |
jvmtiError GetPhase(jvmtiPhase *phase_ptr) { return functions->GetPhase(this, phase_ptr); } | |
jvmtiError DisposeEnvironment() { return functions->DisposeEnvironment(this); } | |
jvmtiError SetEnvironmentLocalStorage(const void *data) { return functions->SetEnvironmentLocalStorage(this, data); } | |
jvmtiError GetEnvironmentLocalStorage(void **data_ptr) { return functions->GetEnvironmentLocalStorage(this, data_ptr); } | |
jvmtiError GetVersionNumber(jint *version_ptr) { return functions->GetVersionNumber(this, version_ptr); } | |
jvmtiError GetErrorName(jvmtiError error, char **name_ptr) { return functions->GetErrorName(this, error, name_ptr); } | |
jvmtiError SetVerboseFlag(jvmtiVerboseFlag flag, jboolean value) { return functions->SetVerboseFlag(this, flag, value); } | |
jvmtiError GetJLocationFormat(jvmtiJlocationFormat *format_ptr) { return functions->GetJLocationFormat(this, format_ptr); } | |
jvmtiError SetHeapSamplingInterval(jint sampling_interval) { return functions->SetHeapSamplingInterval(this, sampling_interval); } | |
#endif | |
}; | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif | |
#ifndef INTERNAL_JVMTI_CMLR | |
#define INTERNAL_JVMTI_CMLR | |
enum | |
{ | |
JVMTI_CMLR_MAJOR_VERSION_1 = 0x00000001, | |
JVMTI_CMLR_MINOR_VERSION_0 = 0x00000000, | |
JVMTI_CMLR_MAJOR_VERSION = 0x00000001, | |
JVMTI_CMLR_MINOR_VERSION = 0x00000000 | |
}; | |
typedef enum | |
{ | |
JVMTI_CMLR_DUMMY = 1, | |
JVMTI_CMLR_INLINE_INFO = 2 | |
} jvmtiCMLRKind; | |
typedef struct jvmtiCompiledMethodLoadRecordHeader | |
{ | |
jvmtiCMLRKind kind; | |
jint majorinfoversion; | |
jint minorinfoversion; | |
struct jvmtiCompiledMethodLoadRecordHeader *next; | |
} jvmtiCompiledMethodLoadRecordHeader; | |
typedef struct PCStackInfo | |
{ | |
void *pc; | |
jint numstackframes; | |
jmethodID *methods; | |
jint *bcis; | |
} PCStackInfo; | |
typedef struct jvmtiCompiledMethodLoadInlineRecord | |
{ | |
jvmtiCompiledMethodLoadRecordHeader header; | |
jint numpcs; | |
PCStackInfo *pcinfo; | |
} jvmtiCompiledMethodLoadInlineRecord; | |
typedef struct jvmtiCompiledMethodLoadDummyRecord | |
{ | |
jvmtiCompiledMethodLoadRecordHeader header; | |
char message[50]; | |
} jvmtiCompiledMethodLoadDummyRecord; | |
#endif | |
#ifndef INTERNAL_JAWT | |
#define INTERNAL_JAWT | |
#ifdef __cplusplus | |
extern "C" | |
{ | |
#endif | |
typedef struct jawt_Rectangle | |
{ | |
jint x; | |
jint y; | |
jint width; | |
jint height; | |
} JAWT_Rectangle; | |
struct jawt_DrawingSurface; | |
typedef struct jawt_DrawingSurfaceInfo | |
{ | |
void *platformInfo; | |
struct jawt_DrawingSurface *ds; | |
JAWT_Rectangle bounds; | |
jint clipSize; | |
JAWT_Rectangle *clip; | |
} JAWT_DrawingSurfaceInfo; | |
#define JAWT_LOCK_ERROR 0x00000001 | |
#define JAWT_LOCK_CLIP_CHANGED 0x00000002 | |
#define JAWT_LOCK_BOUNDS_CHANGED 0x00000004 | |
#define JAWT_LOCK_SURFACE_CHANGED 0x00000008 | |
typedef struct jawt_DrawingSurface | |
{ | |
JNIEnv *env; | |
jobject target; | |
jint(JNICALL *Lock)(struct jawt_DrawingSurface *ds); | |
JAWT_DrawingSurfaceInfo *(JNICALL *GetDrawingSurfaceInfo)(struct jawt_DrawingSurface *ds); | |
void(JNICALL *FreeDrawingSurfaceInfo)(JAWT_DrawingSurfaceInfo *dsi); | |
void(JNICALL *Unlock)(struct jawt_DrawingSurface *ds); | |
} JAWT_DrawingSurface; | |
typedef struct jawt | |
{ | |
jint version; | |
JAWT_DrawingSurface *(JNICALL *GetDrawingSurface)(JNIEnv *env, jobject target); | |
void(JNICALL *FreeDrawingSurface)(JAWT_DrawingSurface *ds); | |
void(JNICALL *Lock)(JNIEnv *env); | |
void(JNICALL *Unlock)(JNIEnv *env); | |
jobject(JNICALL *GetComponent)(JNIEnv *env, void *platformInfo); | |
jobject(JNICALL *CreateEmbeddedFrame)(JNIEnv *env, void *platformInfo); | |
void(JNICALL *SetBounds)(JNIEnv *env, jobject embeddedFrame, jint x, jint y, jint w, jint h); | |
void(JNICALL *SynthesizeWindowActivation)(JNIEnv *env, jobject embeddedFrame, jboolean doActivate); | |
} JAWT; | |
JNI_IMPORT_OR_EXPORT | |
jboolean JNICALL JAWT_GetAWT(JNIEnv *env, JAWT *awt); | |
#define JAWT_VERSION_1_3 0x00010003 | |
#define JAWT_VERSION_1_4 0x00010004 | |
#define JAWT_VERSION_1_7 0x00010007 | |
#define JAWT_VERSION_9 0x00090000 | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif | |
#ifndef INTERNAL_JDWPTRANSPORT | |
#define INTERNAL_JDWPTRANSPORT | |
enum | |
{ | |
JDWPTRANSPORT_VERSION_1_0 = 0x00010000, | |
JDWPTRANSPORT_VERSION_1_1 = 0x00010001 | |
}; | |
#ifdef __cplusplus | |
extern "C" | |
{ | |
#endif | |
struct jdwpTransportNativeInterface_; | |
struct _jdwpTransportEnv; | |
#ifdef __cplusplus | |
typedef _jdwpTransportEnv jdwpTransportEnv; | |
#else | |
typedef const struct jdwpTransportNativeInterface_ *jdwpTransportEnv; | |
#endif | |
typedef enum | |
{ | |
JDWPTRANSPORT_ERROR_NONE = 0, | |
JDWPTRANSPORT_ERROR_ILLEGAL_ARGUMENT = 103, | |
JDWPTRANSPORT_ERROR_OUT_OF_MEMORY = 110, | |
JDWPTRANSPORT_ERROR_INTERNAL = 113, | |
JDWPTRANSPORT_ERROR_ILLEGAL_STATE = 201, | |
JDWPTRANSPORT_ERROR_IO_ERROR = 202, | |
JDWPTRANSPORT_ERROR_TIMEOUT = 203, | |
JDWPTRANSPORT_ERROR_MSG_NOT_AVAILABLE = 204 | |
} jdwpTransportError; | |
typedef struct | |
{ | |
unsigned int can_timeout_attach : 1; | |
unsigned int can_timeout_accept : 1; | |
unsigned int can_timeout_handshake : 1; | |
unsigned int reserved3 : 1; | |
unsigned int reserved4 : 1; | |
unsigned int reserved5 : 1; | |
unsigned int reserved6 : 1; | |
unsigned int reserved7 : 1; | |
unsigned int reserved8 : 1; | |
unsigned int reserved9 : 1; | |
unsigned int reserved10 : 1; | |
unsigned int reserved11 : 1; | |
unsigned int reserved12 : 1; | |
unsigned int reserved13 : 1; | |
unsigned int reserved14 : 1; | |
unsigned int reserved15 : 1; | |
} JDWPTransportCapabilities; | |
#define JDWP_HEADER_SIZE 11 | |
enum | |
{ | |
JDWPTRANSPORT_FLAGS_NONE = 0x0, | |
JDWPTRANSPORT_FLAGS_REPLY = 0x80 | |
}; | |
typedef struct | |
{ | |
jint len; | |
jint id; | |
jbyte flags; | |
jbyte cmdSet; | |
jbyte cmd; | |
jbyte *data; | |
} jdwpCmdPacket; | |
typedef struct | |
{ | |
jint len; | |
jint id; | |
jbyte flags; | |
jshort errorCode; | |
jbyte *data; | |
} jdwpReplyPacket; | |
typedef struct | |
{ | |
union | |
{ | |
jdwpCmdPacket cmd; | |
jdwpReplyPacket reply; | |
} type; | |
} jdwpPacket; | |
typedef struct jdwpTransportCallback | |
{ | |
void *(*alloc)(jint numBytes); | |
void (*free)(void *buffer); | |
} jdwpTransportCallback; | |
typedef jint(JNICALL *jdwpTransport_OnLoad_t)(JavaVM *jvm, jdwpTransportCallback *callback, jint version, jdwpTransportEnv **env); | |
typedef struct jdwpTransportConfiguration | |
{ | |
const char *allowed_peers; | |
} jdwpTransportConfiguration; | |
struct jdwpTransportNativeInterface_ | |
{ | |
void *reserved1; | |
jdwpTransportError(JNICALL *GetCapabilities)(jdwpTransportEnv *env, JDWPTransportCapabilities *capabilities_ptr); | |
jdwpTransportError(JNICALL *Attach)(jdwpTransportEnv *env, const char *address, jlong attach_timeout, jlong handshake_timeout); | |
jdwpTransportError(JNICALL *StartListening)(jdwpTransportEnv *env, const char *address, char **actual_address); | |
jdwpTransportError(JNICALL *StopListening)(jdwpTransportEnv *env); | |
jdwpTransportError(JNICALL *Accept)(jdwpTransportEnv *env, jlong accept_timeout, jlong handshake_timeout); | |
jboolean(JNICALL *IsOpen)(jdwpTransportEnv *env); | |
jdwpTransportError(JNICALL *Close)(jdwpTransportEnv *env); | |
jdwpTransportError(JNICALL *ReadPacket)(jdwpTransportEnv *env, jdwpPacket *pkt); | |
jdwpTransportError(JNICALL *WritePacket)(jdwpTransportEnv *env, const jdwpPacket *pkt); | |
jdwpTransportError(JNICALL *GetLastError)(jdwpTransportEnv *env, char **error); | |
jdwpTransportError(JNICALL *SetTransportConfiguration)(jdwpTransportEnv *env, jdwpTransportConfiguration *config); | |
}; | |
struct _jdwpTransportEnv | |
{ | |
const struct jdwpTransportNativeInterface_ *functions; | |
#ifdef __cplusplus | |
jdwpTransportError GetCapabilities(JDWPTransportCapabilities *capabilities_ptr) { return functions->GetCapabilities(this, capabilities_ptr); } | |
jdwpTransportError Attach(const char *address, jlong attach_timeout, jlong handshake_timeout) { return functions->Attach(this, address, attach_timeout, handshake_timeout); } | |
jdwpTransportError StartListening(const char *address, char **actual_address) { return functions->StartListening(this, address, actual_address); } | |
jdwpTransportError StopListening() { return functions->StopListening(this); } | |
jdwpTransportError Accept(jlong accept_timeout, jlong handshake_timeout) { return functions->Accept(this, accept_timeout, handshake_timeout); } | |
jboolean IsOpen() { return functions->IsOpen(this); } | |
jdwpTransportError Close() { return functions->Close(this); } | |
jdwpTransportError ReadPacket(jdwpPacket *pkt) { return functions->ReadPacket(this, pkt); } | |
jdwpTransportError WritePacket(const jdwpPacket *pkt) { return functions->WritePacket(this, pkt); } | |
jdwpTransportError GetLastError(char **error) { return functions->GetLastError(this, error); } | |
jdwpTransportError SetTransportConfiguration(jdwpTransportConfiguration *config) { return functions->SetTransportConfiguration(this, config); } | |
#endif | |
}; | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif | |
#ifndef INTERNAL_ACCESSBRIDGEPACKAGES | |
#define INTERNAL_ACCESSBRIDGEPACKAGES | |
#ifdef __cplusplus | |
extern "C" | |
{ | |
#endif | |
#ifdef ACCESSBRIDGE_ARCH_LEGACY | |
typedef jobject JOBJECT64; | |
typedef HWND ABHWND64; | |
#define ABHandleToLong | |
#define ABLongToHandle | |
#else | |
typedef jlong JOBJECT64; | |
typedef long ABHWND64; | |
#define ABHandleToLong HandleToLong | |
#define ABLongToHandle LongToHandle | |
#endif | |
#define MAX_BUFFER_SIZE 10240 | |
#define MAX_STRING_SIZE 1024 | |
#define SHORT_STRING_SIZE 256 | |
typedef JOBJECT64 AccessibleContext; | |
typedef JOBJECT64 AccessibleText; | |
typedef JOBJECT64 AccessibleValue; | |
typedef JOBJECT64 AccessibleSelection; | |
typedef JOBJECT64 Java_Object; | |
typedef JOBJECT64 PropertyChangeEvent; | |
typedef JOBJECT64 FocusEvent; | |
typedef JOBJECT64 CaretEvent; | |
typedef JOBJECT64 MouseEvent; | |
typedef JOBJECT64 MenuEvent; | |
typedef JOBJECT64 AccessibleTable; | |
typedef JOBJECT64 AccessibleHyperlink; | |
typedef JOBJECT64 AccessibleHypertext; | |
#define cPropertyChangeEvent (jlong)1 // 1 | |
#define cFocusGainedEvent (jlong)2 // 2 | |
#define cFocusLostEvent (jlong)4 // 4 | |
#define cCaretUpdateEvent (jlong)8 // 8 | |
#define cMouseClickedEvent (jlong)16 // 10 | |
#define cMouseEnteredEvent (jlong)32 // 20 | |
#define cMouseExitedEvent (jlong)64 // 40 | |
#define cMousePressedEvent (jlong)128 // 80 | |
#define cMouseReleasedEvent (jlong)256 // 100 | |
#define cMenuCanceledEvent (jlong)512 // 200 | |
#define cMenuDeselectedEvent (jlong)1024 // 400 | |
#define cMenuSelectedEvent (jlong)2048 // 800 | |
#define cPopupMenuCanceledEvent (jlong)4096 // 1000 | |
#define cPopupMenuWillBecomeInvisibleEvent (jlong)8192 // 2000 | |
#define cPopupMenuWillBecomeVisibleEvent (jlong)16384 // 4000 | |
#define cJavaShutdownEvent (jlong)32768 // 8000 | |
#define ACCESSIBLE_ALERT L"alert" | |
#define ACCESSIBLE_COLUMN_HEADER L"column header" | |
#define ACCESSIBLE_CANVAS L"canvas" | |
#define ACCESSIBLE_COMBO_BOX L"combo box" | |
#define ACCESSIBLE_DESKTOP_ICON L"desktop icon" | |
#define ACCESSIBLE_INTERNAL_FRAME L"internal frame" | |
#define ACCESSIBLE_DESKTOP_PANE L"desktop pane" | |
#define ACCESSIBLE_OPTION_PANE L"option pane" | |
#define ACCESSIBLE_WINDOW L"window" | |
#define ACCESSIBLE_FRAME L"frame" | |
#define ACCESSIBLE_DIALOG L"dialog" | |
#define ACCESSIBLE_COLOR_CHOOSER L"color chooser" | |
#define ACCESSIBLE_DIRECTORY_PANE L"directory pane" | |
#define ACCESSIBLE_FILE_CHOOSER L"file chooser" | |
#define ACCESSIBLE_FILLER L"filler" | |
#define ACCESSIBLE_HYPERLINK L"hyperlink" | |
#define ACCESSIBLE_ICON L"icon" | |
#define ACCESSIBLE_LABEL L"label" | |
#define ACCESSIBLE_ROOT_PANE L"root pane" | |
#define ACCESSIBLE_GLASS_PANE L"glass pane" | |
#define ACCESSIBLE_LAYERED_PANE L"layered pane" | |
#define ACCESSIBLE_LIST L"list" | |
#define ACCESSIBLE_LIST_ITEM L"list item" | |
#define ACCESSIBLE_MENU_BAR L"menu bar" | |
#define ACCESSIBLE_POPUP_MENU L"popup menu" | |
#define ACCESSIBLE_MENU L"menu" | |
#define ACCESSIBLE_MENU_ITEM L"menu item" | |
#define ACCESSIBLE_SEPARATOR L"separator" | |
#define ACCESSIBLE_PAGE_TAB_LIST L"page tab list" | |
#define ACCESSIBLE_PAGE_TAB L"page tab" | |
#define ACCESSIBLE_PANEL L"panel" | |
#define ACCESSIBLE_PROGRESS_BAR L"progress bar" | |
#define ACCESSIBLE_PASSWORD_TEXT L"password text" | |
#define ACCESSIBLE_PUSH_BUTTON L"push button" | |
#define ACCESSIBLE_TOGGLE_BUTTON L"toggle button" | |
#define ACCESSIBLE_CHECK_BOX L"check box" | |
#define ACCESSIBLE_RADIO_BUTTON L"radio button" | |
#define ACCESSIBLE_ROW_HEADER L"row header" | |
#define ACCESSIBLE_SCROLL_PANE L"scroll pane" | |
#define ACCESSIBLE_SCROLL_BAR L"scroll bar" | |
#define ACCESSIBLE_VIEWPORT L"viewport" | |
#define ACCESSIBLE_SLIDER L"slider" | |
#define ACCESSIBLE_SPLIT_PANE L"split pane" | |
#define ACCESSIBLE_TABLE L"table" | |
#define ACCESSIBLE_TEXT L"text" | |
#define ACCESSIBLE_TREE L"tree" | |
#define ACCESSIBLE_TOOL_BAR L"tool bar" | |
#define ACCESSIBLE_TOOL_TIP L"tool tip" | |
#define ACCESSIBLE_AWT_COMPONENT L"awt component" | |
#define ACCESSIBLE_SWING_COMPONENT L"swing component" | |
#define ACCESSIBLE_UNKNOWN L"unknown" | |
#define ACCESSIBLE_STATUS_BAR L"status bar" | |
#define ACCESSIBLE_DATE_EDITOR L"date editor" | |
#define ACCESSIBLE_SPIN_BOX L"spin box" | |
#define ACCESSIBLE_FONT_CHOOSER L"font chooser" | |
#define ACCESSIBLE_GROUP_BOX L"group box" | |
#define ACCESSIBLE_HEADER L"header" | |
#define ACCESSIBLE_FOOTER L"footer" | |
#define ACCESSIBLE_PARAGRAPH L"paragraph" | |
#define ACCESSIBLE_RULER L"ruler" | |
#define ACCESSIBLE_EDITBAR L"editbar" | |
#define PROGRESS_MONITOR L"progress monitor" | |
#define cPropertyNameChangeEvent (jlong)1 // 1 | |
#define cPropertyDescriptionChangeEvent (jlong)2 // 2 | |
#define cPropertyStateChangeEvent (jlong)4 // 4 | |
#define cPropertyValueChangeEvent (jlong)8 // 8 | |
#define cPropertySelectionChangeEvent (jlong)16 // 10 | |
#define cPropertyTextChangeEvent (jlong)32 // 20 | |
#define cPropertyCaretChangeEvent (jlong)64 // 40 | |
#define cPropertyVisibleDataChangeEvent (jlong)128 // 80 | |
#define cPropertyChildChangeEvent (jlong)256 // 100 | |
#define cPropertyActiveDescendentChangeEvent (jlong)512 // 200 | |
#define cPropertyTableModelChangeEvent (jlong)1024 // 400 | |
#define cAccessibleValueInterface (jlong)1 // 1 << 1 (TRUE) | |
#define cAccessibleActionInterface (jlong)2 // 1 << 2 | |
#define cAccessibleComponentInterface (jlong)4 // 1 << 3 | |
#define cAccessibleSelectionInterface (jlong)8 // 1 << 4 | |
#define cAccessibleTableInterface (jlong)16 // 1 << 5 | |
#define cAccessibleTextInterface (jlong)32 // 1 << 6 | |
#define cAccessibleHypertextInterface (jlong)64 // 1 << 7 | |
typedef struct AccessBridgeVersionInfoTag | |
{ | |
wchar_t VMversion[SHORT_STRING_SIZE]; | |
wchar_t bridgeJavaClassVersion[SHORT_STRING_SIZE]; | |
wchar_t bridgeJavaDLLVersion[SHORT_STRING_SIZE]; | |
wchar_t bridgeWinDLLVersion[SHORT_STRING_SIZE]; | |
} AccessBridgeVersionInfo; | |
typedef struct AccessibleContextInfoTag | |
{ | |
wchar_t name[MAX_STRING_SIZE]; | |
wchar_t description[MAX_STRING_SIZE]; | |
wchar_t role[SHORT_STRING_SIZE]; | |
wchar_t role_en_US[SHORT_STRING_SIZE]; | |
wchar_t states[SHORT_STRING_SIZE]; | |
wchar_t states_en_US[SHORT_STRING_SIZE]; | |
jint indexInParent; | |
jint childrenCount; | |
jint x; | |
jint y; | |
jint width; | |
jint height; | |
BOOL accessibleComponent; | |
BOOL accessibleAction; | |
BOOL accessibleSelection; | |
BOOL accessibleText; | |
BOOL accessibleInterfaces; | |
} AccessibleContextInfo; | |
typedef struct AccessibleTextInfoTag | |
{ | |
jint charCount; | |
jint caretIndex; | |
jint indexAtPoint; | |
} AccessibleTextInfo; | |
typedef struct AccessibleTextItemsInfoTag | |
{ | |
wchar_t letter; | |
wchar_t word[SHORT_STRING_SIZE]; | |
wchar_t sentence[MAX_STRING_SIZE]; | |
} AccessibleTextItemsInfo; | |
typedef struct AccessibleTextSelectionInfoTag | |
{ | |
jint selectionStartIndex; | |
jint selectionEndIndex; | |
wchar_t selectedText[MAX_STRING_SIZE]; | |
} AccessibleTextSelectionInfo; | |
typedef struct AccessibleTextRectInfoTag | |
{ | |
jint x; | |
jint y; | |
jint width; | |
jint height; | |
} AccessibleTextRectInfo; | |
typedef struct AccessibleTextAttributesInfoTag | |
{ | |
BOOL bold; | |
BOOL italic; | |
BOOL underline; | |
BOOL strikethrough; | |
BOOL superscript; | |
BOOL subscript; | |
wchar_t backgroundColor[SHORT_STRING_SIZE]; | |
wchar_t foregroundColor[SHORT_STRING_SIZE]; | |
wchar_t fontFamily[SHORT_STRING_SIZE]; | |
jint fontSize; | |
jint alignment; | |
jint bidiLevel; | |
jfloat firstLineIndent; | |
jfloat leftIndent; | |
jfloat rightIndent; | |
jfloat lineSpacing; | |
jfloat spaceAbove; | |
jfloat spaceBelow; | |
wchar_t fullAttributesString[MAX_STRING_SIZE]; | |
} AccessibleTextAttributesInfo; | |
#define cMemoryMappedNameSize 255 | |
typedef struct MemoryMappedFileCreatedPackageTag | |
{ | |
ABHWND64 bridgeWindow; | |
char filename[cMemoryMappedNameSize]; | |
} MemoryMappedFileCreatedPackage; | |
typedef struct JavaVMCreatedPackageTag | |
{ | |
ABHWND64 bridgeWindow; | |
long vmID; | |
} JavaVMCreatedPackage; | |
typedef struct JavaVMDestroyedPackageTag | |
{ | |
ABHWND64 bridgeWindow; | |
} JavaVMDestroyedPackage; | |
typedef struct WindowsATCreatedPackageTag | |
{ | |
ABHWND64 bridgeWindow; | |
} WindowsATCreatedPackage; | |
typedef struct WindowsATDestroyedPackageTag | |
{ | |
ABHWND64 bridgeWindow; | |
} WindowsATDestroyedPackage; | |
typedef struct JavaVMPresentNotificationPackageTag | |
{ | |
ABHWND64 bridgeWindow; | |
long vmID; | |
} JavaVMPresentNotificationPackage; | |
typedef struct WindowsATPresentNotificationPackageTag | |
{ | |
ABHWND64 bridgeWindow; | |
} WindowsATPresentNotificationPackage; | |
typedef struct ReleaseJavaObjectPackageTag | |
{ | |
long vmID; | |
JOBJECT64 object; | |
} ReleaseJavaObjectPackage; | |
typedef struct GetAccessBridgeVersionPackageTag | |
{ | |
long vmID; | |
AccessBridgeVersionInfo rVersionInfo; | |
} GetAccessBridgeVersionPackage; | |
typedef struct IsSameObjectPackageTag | |
{ | |
long vmID; | |
JOBJECT64 obj1; | |
JOBJECT64 obj2; | |
jboolean rResult; | |
} IsSameObjectPackage; | |
typedef struct IsJavaWindowPackageTag | |
{ | |
jint window; | |
jboolean rResult; | |
} IsJavaWindowPackage; | |
typedef struct GetAccessibleContextFromHWNDPackageTag | |
{ | |
jint window; | |
long rVMID; | |
JOBJECT64 rAccessibleContext; | |
} GetAccessibleContextFromHWNDPackage; | |
typedef struct GetHWNDFromAccessibleContextPackageTag | |
{ | |
JOBJECT64 accessibleContext; | |
ABHWND64 rHWND; | |
} GetHWNDFromAccessibleContextPackage; | |
typedef struct GetAccessibleContextAtPackageTag | |
{ | |
jint x; | |
jint y; | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
JOBJECT64 rAccessibleContext; | |
} GetAccessibleContextAtPackage; | |
typedef struct GetAccessibleContextWithFocusPackageTag | |
{ | |
long rVMID; | |
JOBJECT64 rAccessibleContext; | |
} GetAccessibleContextWithFocusPackage; | |
typedef struct GetAccessibleContextInfoPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
AccessibleContextInfo rAccessibleContextInfo; | |
} GetAccessibleContextInfoPackage; | |
typedef struct GetAccessibleChildFromContextPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
jint childIndex; | |
JOBJECT64 rAccessibleContext; | |
} GetAccessibleChildFromContextPackage; | |
typedef struct GetAccessibleParentFromContextPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
JOBJECT64 rAccessibleContext; | |
} GetAccessibleParentFromContextPackage; | |
#define MAX_TABLE_SELECTIONS 64 | |
typedef struct AccessibleTableInfoTag | |
{ | |
JOBJECT64 caption; | |
JOBJECT64 summary; | |
jint rowCount; | |
jint columnCount; | |
JOBJECT64 accessibleContext; | |
JOBJECT64 accessibleTable; | |
} AccessibleTableInfo; | |
typedef struct GetAccessibleTableInfoPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
AccessibleTableInfo rTableInfo; | |
} GetAccessibleTableInfoPackage; | |
typedef struct AccessibleTableCellInfoTag | |
{ | |
JOBJECT64 accessibleContext; | |
jint index; | |
jint row; | |
jint column; | |
jint rowExtent; | |
jint columnExtent; | |
jboolean isSelected; | |
} AccessibleTableCellInfo; | |
typedef struct GetAccessibleTableCellInfoPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleTable; | |
jint row; | |
jint column; | |
AccessibleTableCellInfo rTableCellInfo; | |
} GetAccessibleTableCellInfoPackage; | |
typedef struct GetAccessibleTableRowHeaderPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
AccessibleTableInfo rTableInfo; | |
} GetAccessibleTableRowHeaderPackage; | |
typedef struct GetAccessibleTableColumnHeaderPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
AccessibleTableInfo rTableInfo; | |
} GetAccessibleTableColumnHeaderPackage; | |
typedef struct GetAccessibleTableRowDescriptionPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
jint row; | |
JOBJECT64 rAccessibleContext; | |
} GetAccessibleTableRowDescriptionPackage; | |
typedef struct GetAccessibleTableColumnDescriptionPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
jint column; | |
JOBJECT64 rAccessibleContext; | |
} GetAccessibleTableColumnDescriptionPackage; | |
typedef struct GetAccessibleTableRowSelectionCountPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleTable; | |
jint rCount; | |
} GetAccessibleTableRowSelectionCountPackage; | |
typedef struct IsAccessibleTableRowSelectedPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleTable; | |
jint row; | |
jboolean rResult; | |
} IsAccessibleTableRowSelectedPackage; | |
typedef struct GetAccessibleTableRowSelectionsPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleTable; | |
jint count; | |
jint rSelections[MAX_TABLE_SELECTIONS]; | |
} GetAccessibleTableRowSelectionsPackage; | |
typedef struct GetAccessibleTableColumnSelectionCountPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleTable; | |
jint rCount; | |
} GetAccessibleTableColumnSelectionCountPackage; | |
typedef struct IsAccessibleTableColumnSelectedPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleTable; | |
jint column; | |
jboolean rResult; | |
} IsAccessibleTableColumnSelectedPackage; | |
typedef struct GetAccessibleTableColumnSelectionsPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleTable; | |
jint count; | |
jint rSelections[MAX_TABLE_SELECTIONS]; | |
} GetAccessibleTableColumnSelectionsPackage; | |
typedef struct GetAccessibleTableRowPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleTable; | |
jint index; | |
jint rRow; | |
} GetAccessibleTableRowPackage; | |
typedef struct GetAccessibleTableColumnPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleTable; | |
jint index; | |
jint rColumn; | |
} GetAccessibleTableColumnPackage; | |
typedef struct GetAccessibleTableIndexPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleTable; | |
jint row; | |
jint column; | |
jint rIndex; | |
} GetAccessibleTableIndexPackage; | |
#define MAX_RELATION_TARGETS 25 | |
#define MAX_RELATIONS 5 | |
typedef struct AccessibleRelationInfoTag | |
{ | |
wchar_t key[SHORT_STRING_SIZE]; | |
jint targetCount; | |
JOBJECT64 targets[MAX_RELATION_TARGETS]; | |
} AccessibleRelationInfo; | |
typedef struct AccessibleRelationSetInfoTag | |
{ | |
jint relationCount; | |
AccessibleRelationInfo relations[MAX_RELATIONS]; | |
} AccessibleRelationSetInfo; | |
typedef struct GetAccessibleRelationSetPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
AccessibleRelationSetInfo rAccessibleRelationSetInfo; | |
} GetAccessibleRelationSetPackage; | |
#define MAX_HYPERLINKS 64 // maximum number of hyperlinks returned | |
typedef struct AccessibleHyperlinkInfoTag | |
{ | |
wchar_t text[SHORT_STRING_SIZE]; | |
jint startIndex; | |
jint endIndex; | |
JOBJECT64 accessibleHyperlink; | |
} AccessibleHyperlinkInfo; | |
typedef struct AccessibleHypertextInfoTag | |
{ | |
jint linkCount; | |
AccessibleHyperlinkInfo links[MAX_HYPERLINKS]; | |
JOBJECT64 accessibleHypertext; | |
} AccessibleHypertextInfo; | |
typedef struct GetAccessibleHypertextPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
AccessibleHypertextInfo rAccessibleHypertextInfo; | |
} GetAccessibleHypertextPackage; | |
typedef struct ActivateAccessibleHyperlinkPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
JOBJECT64 accessibleHyperlink; | |
BOOL rResult; | |
} ActivateAccessibleHyperlinkPackage; | |
typedef struct GetAccessibleHyperlinkCountPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
jint rLinkCount; | |
} GetAccessibleHyperlinkCountPackage; | |
typedef struct GetAccessibleHypertextExtPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
jint startIndex; | |
AccessibleHypertextInfo rAccessibleHypertextInfo; | |
BOOL rSuccess; | |
} GetAccessibleHypertextExtPackage; | |
typedef struct GetAccessibleHyperlinkPackageTag | |
{ | |
long vmID; | |
JOBJECT64 hypertext; | |
jint linkIndex; | |
AccessibleHyperlinkInfo rAccessibleHyperlinkInfo; | |
} GetAccessibleHyperlinkPackage; | |
typedef struct GetAccessibleHypertextLinkIndexPackageTag | |
{ | |
long vmID; | |
JOBJECT64 hypertext; | |
jint charIndex; | |
jint rLinkIndex; | |
} GetAccessibleHypertextLinkIndexPackage; | |
#define MAX_KEY_BINDINGS 10 | |
#define ACCESSIBLE_SHIFT_KEYSTROKE 1 | |
#define ACCESSIBLE_CONTROL_KEYSTROKE 2 | |
#define ACCESSIBLE_META_KEYSTROKE 4 | |
#define ACCESSIBLE_ALT_KEYSTROKE 8 | |
#define ACCESSIBLE_ALT_GRAPH_KEYSTROKE 16 | |
#define ACCESSIBLE_BUTTON1_KEYSTROKE 32 | |
#define ACCESSIBLE_BUTTON2_KEYSTROKE 64 | |
#define ACCESSIBLE_BUTTON3_KEYSTROKE 128 | |
#define ACCESSIBLE_FKEY_KEYSTROKE 256 // F key pressed, character contains 1-24 | |
#define ACCESSIBLE_CONTROLCODE_KEYSTROKE 512 // Control code key pressed, character contains control code. | |
#define ACCESSIBLE_VK_BACK_SPACE 8 | |
#define ACCESSIBLE_VK_DELETE 127 | |
#define ACCESSIBLE_VK_DOWN 40 | |
#define ACCESSIBLE_VK_END 35 | |
#define ACCESSIBLE_VK_HOME 36 | |
#define ACCESSIBLE_VK_INSERT 155 | |
#define ACCESSIBLE_VK_KP_DOWN 225 | |
#define ACCESSIBLE_VK_KP_LEFT 226 | |
#define ACCESSIBLE_VK_KP_RIGHT 227 | |
#define ACCESSIBLE_VK_KP_UP 224 | |
#define ACCESSIBLE_VK_LEFT 37 | |
#define ACCESSIBLE_VK_PAGE_DOWN 34 | |
#define ACCESSIBLE_VK_PAGE_UP 33 | |
#define ACCESSIBLE_VK_RIGHT 39 | |
#define ACCESSIBLE_VK_UP 38 | |
typedef struct AccessibleKeyBindingInfoTag | |
{ | |
jchar character; | |
jint modifiers; | |
} AccessibleKeyBindingInfo; | |
typedef struct AccessibleKeyBindingsTag | |
{ | |
int keyBindingsCount; | |
AccessibleKeyBindingInfo keyBindingInfo[MAX_KEY_BINDINGS]; | |
} AccessibleKeyBindings; | |
typedef struct GetAccessibleKeyBindingsPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
AccessibleKeyBindings rAccessibleKeyBindings; | |
} GetAccessibleKeyBindingsPackage; | |
#define MAX_ICON_INFO 8 | |
typedef struct AccessibleIconInfoTag | |
{ | |
wchar_t description[SHORT_STRING_SIZE]; | |
jint height; | |
jint width; | |
} AccessibleIconInfo; | |
typedef struct AccessibleIconsTag | |
{ | |
jint iconsCount; | |
AccessibleIconInfo iconInfo[MAX_ICON_INFO]; | |
} AccessibleIcons; | |
typedef struct GetAccessibleIconsPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
AccessibleIcons rAccessibleIcons; | |
} GetAccessibleIconsPackage; | |
#define MAX_ACTION_INFO 256 | |
#define MAX_ACTIONS_TO_DO 32 | |
typedef struct AccessibleActionInfoTag | |
{ | |
wchar_t name[SHORT_STRING_SIZE]; | |
} AccessibleActionInfo; | |
typedef struct AccessibleActionsTag | |
{ | |
jint actionsCount; | |
AccessibleActionInfo actionInfo[MAX_ACTION_INFO]; | |
} AccessibleActions; | |
typedef struct GetAccessibleActionsPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
AccessibleActions rAccessibleActions; | |
} GetAccessibleActionsPackage; | |
typedef struct AccessibleActionsToDoTag | |
{ | |
jint actionsCount; | |
AccessibleActionInfo actions[MAX_ACTIONS_TO_DO]; | |
} AccessibleActionsToDo; | |
typedef struct DoAccessibleActionsPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
AccessibleActionsToDo actionsToDo; | |
BOOL rResult; | |
jint failure; | |
} DoAccessibleActionsPackage; | |
typedef struct GetAccessibleTextInfoPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
jint x; | |
jint y; | |
AccessibleTextInfo rTextInfo; | |
} GetAccessibleTextInfoPackage; | |
typedef struct GetAccessibleTextItemsPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
jint index; | |
AccessibleTextItemsInfo rTextItemsInfo; | |
} GetAccessibleTextItemsPackage; | |
typedef struct GetAccessibleTextSelectionInfoPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
AccessibleTextSelectionInfo rTextSelectionItemsInfo; | |
} GetAccessibleTextSelectionInfoPackage; | |
typedef struct GetAccessibleTextAttributeInfoPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
jint index; | |
AccessibleTextAttributesInfo rAttributeInfo; | |
} GetAccessibleTextAttributeInfoPackage; | |
typedef struct GetAccessibleTextRectInfoPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
jint index; | |
AccessibleTextRectInfo rTextRectInfo; | |
} GetAccessibleTextRectInfoPackage; | |
typedef struct GetCaretLocationPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
jint index; | |
AccessibleTextRectInfo rTextRectInfo; | |
} GetCaretLocationPackage; | |
typedef struct GetAccessibleTextLineBoundsPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
jint index; | |
jint rLineStart; | |
jint rLineEnd; | |
} GetAccessibleTextLineBoundsPackage; | |
typedef struct GetAccessibleTextRangePackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
jint start; | |
jint end; | |
wchar_t rText[MAX_BUFFER_SIZE]; | |
} GetAccessibleTextRangePackage; | |
typedef struct SetTextContentsPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
wchar_t text[MAX_STRING_SIZE]; | |
BOOL rResult; | |
} SetTextContentsPackage; | |
typedef struct GetParentWithRolePackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
wchar_t role[SHORT_STRING_SIZE]; | |
JOBJECT64 rAccessibleContext; | |
} GetParentWithRolePackage; | |
typedef struct GetTopLevelObjectPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
JOBJECT64 rAccessibleContext; | |
} GetTopLevelObjectPackage; | |
typedef struct GetParentWithRoleElseRootPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
wchar_t role[SHORT_STRING_SIZE]; | |
JOBJECT64 rAccessibleContext; | |
} GetParentWithRoleElseRootPackage; | |
typedef struct GetObjectDepthPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
jint rResult; | |
} GetObjectDepthPackage; | |
typedef struct GetActiveDescendentPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
JOBJECT64 rAccessibleContext; | |
} GetActiveDescendentPackage; | |
typedef struct GetCurrentAccessibleValueFromContextPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
wchar_t rValue[SHORT_STRING_SIZE]; | |
} GetCurrentAccessibleValueFromContextPackage; | |
typedef struct GetMaximumAccessibleValueFromContextPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
wchar_t rValue[SHORT_STRING_SIZE]; | |
} GetMaximumAccessibleValueFromContextPackage; | |
typedef struct GetMinimumAccessibleValueFromContextPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
wchar_t rValue[SHORT_STRING_SIZE]; | |
} GetMinimumAccessibleValueFromContextPackage; | |
typedef struct AddAccessibleSelectionFromContextPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
jint index; | |
} AddAccessibleSelectionFromContextPackage; | |
typedef struct ClearAccessibleSelectionFromContextPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
} ClearAccessibleSelectionFromContextPackage; | |
typedef struct GetAccessibleSelectionFromContextPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
jint index; | |
JOBJECT64 rAccessibleContext; | |
} GetAccessibleSelectionFromContextPackage; | |
typedef struct GetAccessibleSelectionCountFromContextPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
jint rCount; | |
} GetAccessibleSelectionCountFromContextPackage; | |
typedef struct IsAccessibleChildSelectedFromContextPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
jint index; | |
jboolean rResult; | |
} IsAccessibleChildSelectedFromContextPackage; | |
typedef struct RemoveAccessibleSelectionFromContextPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
jint index; | |
} RemoveAccessibleSelectionFromContextPackage; | |
typedef struct SelectAllAccessibleSelectionFromContextPackageTag | |
{ | |
long vmID; | |
JOBJECT64 AccessibleContext; | |
} SelectAllAccessibleSelectionFromContextPackage; | |
typedef struct AddJavaEventNotificationPackageTag | |
{ | |
jlong type; | |
ABHWND64 DLLwindow; | |
} AddJavaEventNotificationPackage; | |
typedef struct RemoveJavaEventNotificationPackageTag | |
{ | |
jlong type; | |
ABHWND64 DLLwindow; | |
} RemoveJavaEventNotificationPackage; | |
typedef struct AddAccessibilityEventNotificationPackageTag | |
{ | |
jlong type; | |
ABHWND64 DLLwindow; | |
} AddAccessibilityEventNotificationPackage; | |
typedef struct RemoveAccessibilityEventNotificationPackageTag | |
{ | |
jlong type; | |
ABHWND64 DLLwindow; | |
} RemoveAccessibilityEventNotificationPackage; | |
typedef struct PropertyCaretChangePackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
jint oldPosition; | |
jint newPosition; | |
} PropertyCaretChangePackage; | |
typedef struct PropertyDescriptionChangePackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
wchar_t oldDescription[SHORT_STRING_SIZE]; | |
wchar_t newDescription[SHORT_STRING_SIZE]; | |
} PropertyDescriptionChangePackage; | |
typedef struct PropertyNameChangePackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
wchar_t oldName[SHORT_STRING_SIZE]; | |
wchar_t newName[SHORT_STRING_SIZE]; | |
} PropertyNameChangePackage; | |
typedef struct PropertySelectionChangePackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} PropertySelectionChangePackage; | |
typedef struct PropertyStateChangePackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
wchar_t oldState[SHORT_STRING_SIZE]; | |
wchar_t newState[SHORT_STRING_SIZE]; | |
} PropertyStateChangePackage; | |
typedef struct PropertyTextChangePackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} PropertyTextChangePackage; | |
typedef struct PropertyValueChangePackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
wchar_t oldValue[SHORT_STRING_SIZE]; | |
wchar_t newValue[SHORT_STRING_SIZE]; | |
} PropertyValueChangePackage; | |
typedef struct PropertyVisibleDataChangePackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} PropertyVisibleDataChangePackage; | |
typedef struct PropertyChildChangePackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
JOBJECT64 oldChildAccessibleContext; | |
JOBJECT64 newChildAccessibleContext; | |
} PropertyChildChangePackage; | |
typedef struct PropertyActiveDescendentChangePackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
JOBJECT64 oldActiveDescendentAccessibleContext; | |
JOBJECT64 newActiveDescendentAccessibleContext; | |
} PropertyActiveDescendentChangePackage; | |
typedef struct PropertyTableModelChangePackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
wchar_t oldValue[SHORT_STRING_SIZE]; | |
wchar_t newValue[SHORT_STRING_SIZE]; | |
} PropertyTableModelChangePackage; | |
typedef struct JavaShutdownPackageTag | |
{ | |
long vmID; | |
} JavaShutdownPackage; | |
typedef struct FocusGainedPackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} FocusGainedPackage; | |
typedef struct FocusLostPackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} FocusLostPackage; | |
typedef struct CaretUpdatePackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} CaretUpdatePackage; | |
typedef struct MouseClickedPackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} MouseClickedPackage; | |
typedef struct MouseEnteredPackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} MouseEnteredPackage; | |
typedef struct MouseExitedPackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} MouseExitedPackage; | |
typedef struct MousePressedPackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} MousePressedPackage; | |
typedef struct MouseReleasedPackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} MouseReleasedPackage; | |
typedef struct MenuCanceledPackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} MenuCanceledPackage; | |
typedef struct MenuDeselectedPackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} MenuDeselectedPackage; | |
typedef struct MenuSelectedPackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} MenuSelectedPackage; | |
typedef struct PopupMenuCanceledPackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} PopupMenuCanceledPackage; | |
typedef struct PopupMenuWillBecomeInvisiblePackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} PopupMenuWillBecomeInvisiblePackage; | |
typedef struct PopupMenuWillBecomeVisiblePackageTag | |
{ | |
long vmID; | |
JOBJECT64 Event; | |
JOBJECT64 AccessibleContextSource; | |
} PopupMenuWillBecomeVisiblePackage; | |
typedef struct GetVirtualAccessibleNamePackageTag | |
{ | |
long vmID; | |
AccessibleContext accessibleContext; | |
wchar_t rName[MAX_STRING_SIZE]; | |
int len; | |
} GetVirtualAccessibleNamePackage; | |
typedef struct RequestFocusPackageTag | |
{ | |
long vmID; | |
AccessibleContext accessibleContext; | |
} RequestFocusPackage; | |
typedef struct SelectTextRangePackageTag | |
{ | |
long vmID; | |
AccessibleContext accessibleContext; | |
jint startIndex; | |
jint endIndex; | |
} SelectTextRangePackage; | |
typedef struct GetTextAttributesInRangePackageTag | |
{ | |
long vmID; | |
AccessibleContext accessibleContext; | |
jint startIndex; | |
jint endIndex; | |
AccessibleTextAttributesInfo attributes; | |
short rLength; | |
} GetTextAttributesInRangePackage; | |
#define MAX_VISIBLE_CHILDREN 256 | |
typedef struct VisibleChildenInfoTag | |
{ | |
int returnedChildrenCount; | |
AccessibleContext children[MAX_VISIBLE_CHILDREN]; | |
} VisibleChildrenInfo; | |
typedef struct GetVisibleChildrenCountPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
jint rChildrenCount; | |
} GetVisibleChildrenCountPackage; | |
typedef struct GetVisibleChildrenPackageTag | |
{ | |
long vmID; | |
JOBJECT64 accessibleContext; | |
jint startIndex; | |
VisibleChildrenInfo rVisibleChildrenInfo; | |
BOOL rSuccess; | |
} GetVisibleChildrenPackage; | |
typedef struct SetCaretPositionPackageTag | |
{ | |
long vmID; | |
AccessibleContext accessibleContext; | |
jint position; | |
} SetCaretPositionPackage; | |
typedef enum PackageType | |
{ | |
cMemoryMappedFileCreatedPackage = 0x11000, | |
cJavaVMCreatedPackage = 0x10000, | |
cJavaVMDestroyedPackage, | |
cWindowsATCreatedPackage, | |
cWindowsATDestroyedPackage, | |
cJavaVMPresentNotificationPackage, | |
cWindowsATPresentNotificationPackage, | |
cReleaseJavaObjectPackage = 1, | |
cGetAccessBridgeVersionPackage = 2, | |
cGetAccessibleContextFromHWNDPackage = 0x10, | |
cIsJavaWindowPackage, | |
cGetHWNDFromAccessibleContextPackage, | |
cGetAccessibleContextAtPackage = 0x100, | |
cGetAccessibleContextWithFocusPackage, | |
cGetAccessibleContextInfoPackage, | |
cGetAccessibleChildFromContextPackage, | |
cGetAccessibleParentFromContextPackage, | |
cIsSameObjectPackage, | |
cGetAccessibleTextInfoPackage = 0x200, | |
cGetAccessibleTextItemsPackage, | |
cGetAccessibleTextSelectionInfoPackage, | |
cGetAccessibleTextAttributeInfoPackage, | |
cGetAccessibleTextRectInfoPackage, | |
cGetAccessibleTextLineBoundsPackage, | |
cGetAccessibleTextRangePackage, | |
cGetCurrentAccessibleValueFromContextPackage = 0x300, | |
cGetMaximumAccessibleValueFromContextPackage, | |
cGetMinimumAccessibleValueFromContextPackage, | |
cAddAccessibleSelectionFromContextPackage = 0x400, | |
cClearAccessibleSelectionFromContextPackage, | |
cGetAccessibleSelectionFromContextPackage, | |
cGetAccessibleSelectionCountFromContextPackage, | |
cIsAccessibleChildSelectedFromContextPackage, | |
cRemoveAccessibleSelectionFromContextPackage, | |
cSelectAllAccessibleSelectionFromContextPackage, | |
cAddJavaEventNotificationPackage = 0x900, | |
cRemoveJavaEventNotificationPackage, | |
cAddAccessibilityEventNotificationPackage, | |
cRemoveAccessibilityEventNotificationPackage, | |
cPropertyChangePackage = 0x1000, | |
cJavaShutdownPackage = 0x1010, | |
cFocusGainedPackage, | |
cFocusLostPackage, | |
cCaretUpdatePackage = 0x1020, | |
cMouseClickedPackage = 0x1030, | |
cMouseEnteredPackage, | |
cMouseExitedPackage, | |
cMousePressedPackage, | |
cMouseReleasedPackage, | |
cMenuCanceledPackage = 0x1040, | |
cMenuDeselectedPackage, | |
cMenuSelectedPackage, | |
cPopupMenuCanceledPackage, | |
cPopupMenuWillBecomeInvisiblePackage, | |
cPopupMenuWillBecomeVisiblePackage, | |
cPropertyCaretChangePackage = 0x1100, | |
cPropertyDescriptionChangePackage, | |
cPropertyNameChangePackage, | |
cPropertySelectionChangePackage, | |
cPropertyStateChangePackage, | |
cPropertyTextChangePackage, | |
cPropertyValueChangePackage, | |
cPropertyVisibleDataChangePackage, | |
cPropertyChildChangePackage, | |
cPropertyActiveDescendentChangePackage, | |
cGetAccessibleTableInfoPackage = 0x1200, | |
cGetAccessibleTableCellInfoPackage, | |
cGetAccessibleTableRowHeaderPackage, | |
cGetAccessibleTableColumnHeaderPackage, | |
cGetAccessibleTableRowDescriptionPackage, | |
cGetAccessibleTableColumnDescriptionPackage, | |
cGetAccessibleTableRowSelectionCountPackage, | |
cIsAccessibleTableRowSelectedPackage, | |
cGetAccessibleTableRowSelectionsPackage, | |
cGetAccessibleTableColumnSelectionCountPackage, | |
cIsAccessibleTableColumnSelectedPackage, | |
cGetAccessibleTableColumnSelectionsPackage, | |
cGetAccessibleTableRowPackage, | |
cGetAccessibleTableColumnPackage, | |
cGetAccessibleTableIndexPackage, | |
cPropertyTableModelChangePackage, | |
cGetAccessibleRelationSetPackage = 0x1300, | |
cGetAccessibleHypertextPackage = 0x1400, | |
cActivateAccessibleHyperlinkPackage, | |
cGetAccessibleHyperlinkCountPackage, | |
cGetAccessibleHypertextExtPackage, | |
cGetAccessibleHypertextLinkIndexPackage, | |
cGetAccessibleHyperlinkPackage, | |
cGetAccessibleKeyBindingsPackage = 0x1500, | |
cGetAccessibleIconsPackage, | |
cGetAccessibleActionsPackage, | |
cDoAccessibleActionsPackage, | |
cSetTextContentsPackage = 0x1600, | |
cGetParentWithRolePackage, | |
cGetTopLevelObjectPackage, | |
cGetParentWithRoleElseRootPackage, | |
cGetObjectDepthPackage, | |
cGetActiveDescendentPackage, | |
cGetVirtualAccessibleNamePackage = 0x1700, | |
cRequestFocusPackage, | |
cSelectTextRangePackage, | |
cGetTextAttributesInRangePackage, | |
cGetSameTextAttributesInRangePackage, | |
cGetVisibleChildrenCountPackage, | |
cGetVisibleChildrenPackage, | |
cSetCaretPositionPackage, | |
cGetCaretLocationPackage | |
} PackageType; | |
typedef union AllPackagesTag | |
{ | |
MemoryMappedFileCreatedPackage memoryMappedFileCreatedPackage; | |
JavaVMCreatedPackage javaVMCreatedPackage; | |
JavaVMDestroyedPackage javaVMDestroyedPackage; | |
WindowsATCreatedPackage windowsATCreatedPackage; | |
WindowsATDestroyedPackage windowsATDestroyedPackage; | |
JavaVMPresentNotificationPackage javaVMPresentNotificationPackage; | |
WindowsATPresentNotificationPackage windowsATPresentNotificationPackage; | |
ReleaseJavaObjectPackage releaseJavaObject; | |
GetAccessBridgeVersionPackage getAccessBridgeVersion; | |
GetAccessibleContextFromHWNDPackage getAccessibleContextFromHWND; | |
GetHWNDFromAccessibleContextPackage getHWNDFromAccessibleContext; | |
GetAccessibleContextAtPackage getAccessibleContextAt; | |
GetAccessibleContextWithFocusPackage getAccessibleContextWithFocus; | |
GetAccessibleContextInfoPackage getAccessibleContextInfo; | |
GetAccessibleChildFromContextPackage getAccessibleChildFromContext; | |
GetAccessibleParentFromContextPackage getAccessibleParentFromContext; | |
GetAccessibleTextInfoPackage getAccessibleTextInfo; | |
GetAccessibleTextItemsPackage getAccessibleTextItems; | |
GetAccessibleTextSelectionInfoPackage getAccessibleTextSelectionInfo; | |
GetAccessibleTextAttributeInfoPackage getAccessibleTextAttributeInfo; | |
GetAccessibleTextRectInfoPackage getAccessibleTextRectInfo; | |
GetAccessibleTextLineBoundsPackage getAccessibleTextLineBounds; | |
GetAccessibleTextRangePackage getAccessibleTextRange; | |
GetCurrentAccessibleValueFromContextPackage getCurrentAccessibleValueFromContext; | |
GetMaximumAccessibleValueFromContextPackage getMaximumAccessibleValueFromContext; | |
GetMinimumAccessibleValueFromContextPackage getMinimumAccessibleValueFromContext; | |
AddAccessibleSelectionFromContextPackage addAccessibleSelectionFromContext; | |
ClearAccessibleSelectionFromContextPackage clearAccessibleSelectionFromContext; | |
GetAccessibleSelectionFromContextPackage getAccessibleSelectionFromContext; | |
GetAccessibleSelectionCountFromContextPackage getAccessibleSelectionCountFromContext; | |
IsAccessibleChildSelectedFromContextPackage isAccessibleChildSelectedFromContext; | |
RemoveAccessibleSelectionFromContextPackage removeAccessibleSelectionFromContext; | |
SelectAllAccessibleSelectionFromContextPackage selectAllAccessibleSelectionFromContext; | |
AddJavaEventNotificationPackage addJavaEventNotification; | |
RemoveJavaEventNotificationPackage removeJavaEventNotification; | |
AddAccessibilityEventNotificationPackage addAccessibilityEventNotification; | |
RemoveAccessibilityEventNotificationPackage removeAccessibilityEventNotification; | |
PropertyCaretChangePackage propertyCaretChangePackage; | |
PropertyDescriptionChangePackage propertyDescriptionChangePackage; | |
PropertyNameChangePackage propertyNameChangePackage; | |
PropertySelectionChangePackage propertySelectionChangePackage; | |
PropertyStateChangePackage propertyStateChangePackage; | |
PropertyTextChangePackage propertyTextChangePackage; | |
PropertyValueChangePackage propertyValueChangePackage; | |
PropertyVisibleDataChangePackage propertyVisibleDataChangePackage; | |
PropertyChildChangePackage propertyChildChangePackage; | |
PropertyActiveDescendentChangePackage propertyActiveDescendentChangePackage; | |
PropertyTableModelChangePackage propertyTableModelChangePackage; | |
JavaShutdownPackage JavaShutdown; | |
FocusGainedPackage focusGained; | |
FocusLostPackage focusLost; | |
CaretUpdatePackage caretUpdate; | |
MouseClickedPackage mouseClicked; | |
MouseEnteredPackage mouseEntered; | |
MouseExitedPackage mouseExited; | |
MousePressedPackage mousePressed; | |
MouseReleasedPackage mouseReleased; | |
MenuCanceledPackage menuCanceled; | |
MenuDeselectedPackage menuDeselected; | |
MenuSelectedPackage menuSelected; | |
PopupMenuCanceledPackage popupMenuCanceled; | |
PopupMenuWillBecomeInvisiblePackage popupMenuWillBecomeInvisible; | |
PopupMenuWillBecomeVisiblePackage popupMenuWillBecomeVisible; | |
GetAccessibleRelationSetPackage getAccessibleRelationSet; | |
GetAccessibleHypertextPackage _getAccessibleHypertext; | |
ActivateAccessibleHyperlinkPackage _activateAccessibleHyperlink; | |
GetAccessibleHyperlinkCountPackage _getAccessibleHyperlinkCount; | |
GetAccessibleHypertextExtPackage _getAccessibleHypertextExt; | |
GetAccessibleHypertextLinkIndexPackage _getAccessibleHypertextLinkIndex; | |
GetAccessibleHyperlinkPackage _getAccessibleHyperlink; | |
GetAccessibleKeyBindingsPackage getAccessibleKeyBindings; | |
GetAccessibleIconsPackage getAccessibleIcons; | |
GetAccessibleActionsPackage getAccessibleActions; | |
DoAccessibleActionsPackage doAccessibleActions; | |
SetTextContentsPackage _setTextContents; | |
GetParentWithRolePackage _getParentWithRole; | |
GetTopLevelObjectPackage _getTopLevelObject; | |
GetParentWithRoleElseRootPackage _getParentWithRoleElseRoot; | |
GetObjectDepthPackage _getObjectDepth; | |
GetActiveDescendentPackage _getActiveDescendent; | |
GetVirtualAccessibleNamePackage _getVirtualAccessibleName; | |
RequestFocusPackage _requestFocus; | |
SelectTextRangePackage _selectTextRange; | |
GetTextAttributesInRangePackage _getTextAttributesInRange; | |
GetVisibleChildrenCountPackage _getVisibleChildrenCount; | |
GetVisibleChildrenPackage _getVisibleChildren; | |
SetCaretPositionPackage _setCaretPosition; | |
} AllPackages; | |
typedef union JavaInitiatedPackagesTag | |
{ | |
JavaVMCreatedPackage javaVMCreatedPackage; | |
JavaVMDestroyedPackage javaVMDestroyedPackage; | |
JavaVMPresentNotificationPackage javaVMPresentNotificationPackage; | |
PropertyCaretChangePackage propertyCaretChangePackage; | |
PropertyDescriptionChangePackage propertyDescriptionChangePackage; | |
PropertyNameChangePackage propertyNameChangePackage; | |
PropertySelectionChangePackage propertySelectionChangePackage; | |
PropertyStateChangePackage propertyStateChangePackage; | |
PropertyTextChangePackage propertyTextChangePackage; | |
PropertyValueChangePackage propertyValueChangePackage; | |
PropertyVisibleDataChangePackage propertyVisibleDataChangePackage; | |
PropertyChildChangePackage propertyChildChangePackage; | |
PropertyActiveDescendentChangePackage propertyActiveDescendentChangePackage; | |
PropertyTableModelChangePackage propertyTableModelChangePackage; | |
JavaShutdownPackage JavaShutdown; | |
FocusGainedPackage focusGained; | |
FocusLostPackage focusLost; | |
CaretUpdatePackage caretUpdate; | |
MouseClickedPackage mouseClicked; | |
MouseEnteredPackage mouseEntered; | |
MouseExitedPackage mouseExited; | |
MousePressedPackage mousePressed; | |
MouseReleasedPackage mouseReleased; | |
MenuCanceledPackage menuCanceled; | |
MenuDeselectedPackage menuDeselected; | |
MenuSelectedPackage menuSelected; | |
PopupMenuCanceledPackage popupMenuCanceled; | |
PopupMenuWillBecomeInvisiblePackage popupMenuWillBecomeInvisible; | |
PopupMenuWillBecomeVisiblePackage popupMenuWillBecomeVisible; | |
} JavaInitiatedPackages; | |
typedef union WindowsInitiatedPackagesTag | |
{ | |
MemoryMappedFileCreatedPackage memoryMappedFileCreatedPackage; | |
WindowsATCreatedPackage windowsATCreatedPackage; | |
WindowsATDestroyedPackage windowsATDestroyedPackage; | |
WindowsATPresentNotificationPackage windowsATPresentNotificationPackage; | |
ReleaseJavaObjectPackage releaseJavaObject; | |
GetAccessBridgeVersionPackage getAccessBridgeVersion; | |
GetAccessibleContextFromHWNDPackage getAccessibleContextFromHWND; | |
GetHWNDFromAccessibleContextPackage getHWNDFromAccessibleContext; | |
GetAccessibleContextAtPackage getAccessibleContextAt; | |
GetAccessibleContextWithFocusPackage getAccessibleContextWithFocus; | |
GetAccessibleContextInfoPackage getAccessibleContextInfo; | |
GetAccessibleChildFromContextPackage getAccessibleChildFromContext; | |
GetAccessibleParentFromContextPackage getAccessibleParentFromContext; | |
GetAccessibleTextInfoPackage getAccessibleTextInfo; | |
GetAccessibleTextItemsPackage getAccessibleTextItems; | |
GetAccessibleTextSelectionInfoPackage getAccessibleTextSelectionInfo; | |
GetAccessibleTextAttributeInfoPackage getAccessibleTextAttributeInfo; | |
GetAccessibleTextRectInfoPackage getAccessibleTextRectInfo; | |
GetAccessibleTextLineBoundsPackage getAccessibleTextLineBounds; | |
GetAccessibleTextRangePackage getAccessibleTextRange; | |
GetCurrentAccessibleValueFromContextPackage getCurrentAccessibleValueFromContext; | |
GetMaximumAccessibleValueFromContextPackage getMaximumAccessibleValueFromContext; | |
GetMinimumAccessibleValueFromContextPackage getMinimumAccessibleValueFromContext; | |
AddAccessibleSelectionFromContextPackage addAccessibleSelectionFromContext; | |
ClearAccessibleSelectionFromContextPackage clearAccessibleSelectionFromContext; | |
GetAccessibleSelectionFromContextPackage getAccessibleSelectionFromContext; | |
GetAccessibleSelectionCountFromContextPackage getAccessibleSelectionCountFromContext; | |
IsAccessibleChildSelectedFromContextPackage isAccessibleChildSelectedFromContext; | |
RemoveAccessibleSelectionFromContextPackage removeAccessibleSelectionFromContext; | |
SelectAllAccessibleSelectionFromContextPackage selectAllAccessibleSelectionFromContext; | |
AddJavaEventNotificationPackage addJavaEventNotification; | |
RemoveJavaEventNotificationPackage removeJavaEventNotification; | |
AddAccessibilityEventNotificationPackage addAccessibilityEventNotification; | |
RemoveAccessibilityEventNotificationPackage removeAccessibilityEventNotification; | |
GetAccessibleTableInfoPackage _getAccessibleTableInfo; | |
GetAccessibleTableCellInfoPackage _getAccessibleTableCellInfo; | |
GetAccessibleTableRowHeaderPackage _getAccessibleTableRowHeader; | |
GetAccessibleTableColumnHeaderPackage _getAccessibleTableColumnHeader; | |
GetAccessibleTableRowDescriptionPackage _getAccessibleTableRowDescription; | |
GetAccessibleTableColumnDescriptionPackage _getAccessibleTableColumnDescription; | |
GetAccessibleTableRowSelectionCountPackage _getAccessibleTableRowSelectionCount; | |
IsAccessibleTableRowSelectedPackage _isAccessibleTableRowSelected; | |
GetAccessibleTableRowSelectionsPackage _getAccessibleTableRowSelections; | |
GetAccessibleTableColumnSelectionCountPackage _getAccessibleTableColumnSelectionCount; | |
IsAccessibleTableColumnSelectedPackage _isAccessibleTableColumnSelected; | |
GetAccessibleTableColumnSelectionsPackage _getAccessibleTableColumnSelections; | |
GetAccessibleTableRowPackage _getAccessibleTableRow; | |
GetAccessibleTableColumnPackage _getAccessibleTableColumn; | |
GetAccessibleTableIndexPackage _getAccessibleTableIndex; | |
GetAccessibleRelationSetPackage _getAccessibleRelationSet; | |
GetAccessibleKeyBindingsPackage _getAccessibleKeyBindings; | |
GetAccessibleIconsPackage _getAccessibleIcons; | |
GetAccessibleActionsPackage _getAccessibleActions; | |
DoAccessibleActionsPackage _doAccessibleActions; | |
IsSameObjectPackage _isSameObject; | |
SetTextContentsPackage _setTextContents; | |
GetParentWithRolePackage _getParentWithRole; | |
GetTopLevelObjectPackage _getTopLevelObject; | |
GetParentWithRoleElseRootPackage _getParentWithRoleElseRoot; | |
GetObjectDepthPackage _getObjectDepth; | |
GetActiveDescendentPackage _getActiveDescendent; | |
GetVirtualAccessibleNamePackage _getVirtualAccessibleName; | |
RequestFocusPackage _requestFocus; | |
SelectTextRangePackage _selectTextRange; | |
GetTextAttributesInRangePackage _getTextAttributesInRange; | |
GetVisibleChildrenCountPackage _getVisibleChildrenCount; | |
GetVisibleChildrenPackage _getVisibleChildren; | |
SetCaretPositionPackage _setCaretPosition; | |
} WindowsInitiatedPackages; | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif | |
#ifndef INTERNAL_BRIDGECALLBACKS | |
#define INTERNAL_BRIDGECALLBACKS | |
#ifdef __cplusplus | |
extern "C" | |
{ | |
#endif | |
typedef void (*AccessBridge_PropertyChangeFP)(long vmID, JOBJECT64 event, JOBJECT64 source, wchar_t *property, wchar_t *oldValue, wchar_t *newValue); | |
typedef void (*AccessBridge_JavaShutdownFP)(long vmID); | |
typedef void (*AccessBridge_JavaShutdownFP)(long vmID); | |
typedef void (*AccessBridge_FocusGainedFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_FocusLostFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_CaretUpdateFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_MouseClickedFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_MouseEnteredFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_MouseExitedFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_MousePressedFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_MouseReleasedFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_MenuCanceledFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_MenuDeselectedFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_MenuSelectedFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_PopupMenuCanceledFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_PopupMenuWillBecomeInvisibleFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_PopupMenuWillBecomeVisibleFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_PropertyNameChangeFP)(long vmID, JOBJECT64 event, JOBJECT64 source, wchar_t *oldName, wchar_t *newName); | |
typedef void (*AccessBridge_PropertyDescriptionChangeFP)(long vmID, JOBJECT64 event, JOBJECT64 source, wchar_t *oldDescription, wchar_t *newDescription); | |
typedef void (*AccessBridge_PropertyStateChangeFP)(long vmID, JOBJECT64 event, JOBJECT64 source, wchar_t *oldState, wchar_t *newState); | |
typedef void (*AccessBridge_PropertyValueChangeFP)(long vmID, JOBJECT64 event, JOBJECT64 source, wchar_t *oldValue, wchar_t *newValue); | |
typedef void (*AccessBridge_PropertySelectionChangeFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_PropertyTextChangeFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_PropertyCaretChangeFP)(long vmID, JOBJECT64 event, JOBJECT64 source, int oldPosition, int newPosition); | |
typedef void (*AccessBridge_PropertyVisibleDataChangeFP)(long vmID, JOBJECT64 event, JOBJECT64 source); | |
typedef void (*AccessBridge_PropertyChildChangeFP)(long vmID, JOBJECT64 event, JOBJECT64 source, JOBJECT64 oldChild, JOBJECT64 newChild); | |
typedef void (*AccessBridge_PropertyActiveDescendentChangeFP)(long vmID, JOBJECT64 event, JOBJECT64 source, JOBJECT64 oldActiveDescendent, JOBJECT64 newActiveDescendent); | |
typedef void (*AccessBridge_PropertyTableModelChangeFP)(long vmID, JOBJECT64 event, JOBJECT64 src, wchar_t *oldValue, wchar_t *newValue); | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif | |
#ifndef INTERNAL_ACCESSBRIDGECALLS | |
#define INTERNAL_ACCESSBRIDGECALLS | |
#ifdef __cplusplus | |
extern "C" | |
{ | |
#endif | |
#define null NULL | |
typedef JOBJECT64 AccessibleContext; | |
typedef JOBJECT64 AccessibleText; | |
typedef JOBJECT64 AccessibleValue; | |
typedef JOBJECT64 AccessibleSelection; | |
typedef JOBJECT64 Java_Object; | |
typedef JOBJECT64 PropertyChangeEvent; | |
typedef JOBJECT64 FocusEvent; | |
typedef JOBJECT64 CaretEvent; | |
typedef JOBJECT64 MouseEvent; | |
typedef JOBJECT64 MenuEvent; | |
typedef JOBJECT64 AccessibleTable; | |
typedef JOBJECT64 AccessibleHyperlink; | |
typedef JOBJECT64 AccessibleHypertext; | |
typedef void (*Windows_runFP)(); | |
typedef void (*SetPropertyChangeFP)(AccessBridge_PropertyChangeFP fp); | |
typedef void (*SetJavaShutdownFP)(AccessBridge_JavaShutdownFP fp); | |
typedef void (*SetFocusGainedFP)(AccessBridge_FocusGainedFP fp); | |
typedef void (*SetFocusLostFP)(AccessBridge_FocusLostFP fp); | |
typedef void (*SetCaretUpdateFP)(AccessBridge_CaretUpdateFP fp); | |
typedef void (*SetMouseClickedFP)(AccessBridge_MouseClickedFP fp); | |
typedef void (*SetMouseEnteredFP)(AccessBridge_MouseEnteredFP fp); | |
typedef void (*SetMouseExitedFP)(AccessBridge_MouseExitedFP fp); | |
typedef void (*SetMousePressedFP)(AccessBridge_MousePressedFP fp); | |
typedef void (*SetMouseReleasedFP)(AccessBridge_MouseReleasedFP fp); | |
typedef void (*SetMenuCanceledFP)(AccessBridge_MenuCanceledFP fp); | |
typedef void (*SetMenuDeselectedFP)(AccessBridge_MenuDeselectedFP fp); | |
typedef void (*SetMenuSelectedFP)(AccessBridge_MenuSelectedFP fp); | |
typedef void (*SetPopupMenuCanceledFP)(AccessBridge_PopupMenuCanceledFP fp); | |
typedef void (*SetPopupMenuWillBecomeInvisibleFP)(AccessBridge_PopupMenuWillBecomeInvisibleFP fp); | |
typedef void (*SetPopupMenuWillBecomeVisibleFP)(AccessBridge_PopupMenuWillBecomeVisibleFP fp); | |
typedef void (*SetPropertyNameChangeFP)(AccessBridge_PropertyNameChangeFP fp); | |
typedef void (*SetPropertyDescriptionChangeFP)(AccessBridge_PropertyDescriptionChangeFP fp); | |
typedef void (*SetPropertyStateChangeFP)(AccessBridge_PropertyStateChangeFP fp); | |
typedef void (*SetPropertyValueChangeFP)(AccessBridge_PropertyValueChangeFP fp); | |
typedef void (*SetPropertySelectionChangeFP)(AccessBridge_PropertySelectionChangeFP fp); | |
typedef void (*SetPropertyTextChangeFP)(AccessBridge_PropertyTextChangeFP fp); | |
typedef void (*SetPropertyCaretChangeFP)(AccessBridge_PropertyCaretChangeFP fp); | |
typedef void (*SetPropertyVisibleDataChangeFP)(AccessBridge_PropertyVisibleDataChangeFP fp); | |
typedef void (*SetPropertyChildChangeFP)(AccessBridge_PropertyChildChangeFP fp); | |
typedef void (*SetPropertyActiveDescendentChangeFP)(AccessBridge_PropertyActiveDescendentChangeFP fp); | |
typedef void (*SetPropertyTableModelChangeFP)(AccessBridge_PropertyTableModelChangeFP fp); | |
typedef void (*ReleaseJavaObjectFP)(long vmID, Java_Object object); | |
typedef BOOL (*GetVersionInfoFP)(long vmID, AccessBridgeVersionInfo *info); | |
typedef BOOL (*IsJavaWindowFP)(HWND window); | |
typedef BOOL (*IsSameObjectFP)(long vmID, JOBJECT64 obj1, JOBJECT64 obj2); | |
typedef BOOL (*GetAccessibleContextFromHWNDFP)(HWND window, long *vmID, AccessibleContext *ac); | |
typedef HWND (*getHWNDFromAccessibleContextFP)(long vmID, AccessibleContext ac); | |
typedef BOOL (*GetAccessibleContextAtFP)(long vmID, AccessibleContext acParent, jint x, jint y, AccessibleContext *ac); | |
typedef BOOL (*GetAccessibleContextWithFocusFP)(HWND window, long *vmID, AccessibleContext *ac); | |
typedef BOOL (*GetAccessibleContextInfoFP)(long vmID, AccessibleContext ac, AccessibleContextInfo *info); | |
typedef AccessibleContext (*GetAccessibleChildFromContextFP)(long vmID, AccessibleContext ac, jint i); | |
typedef AccessibleContext (*GetAccessibleParentFromContextFP)(long vmID, AccessibleContext ac); | |
typedef BOOL (*getAccessibleTableInfoFP)(long vmID, AccessibleContext ac, AccessibleTableInfo *tableInfo); | |
typedef BOOL (*getAccessibleTableCellInfoFP)(long vmID, AccessibleTable accessibleTable, jint row, jint column, AccessibleTableCellInfo *tableCellInfo); | |
typedef BOOL (*getAccessibleTableRowHeaderFP)(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo); | |
typedef BOOL (*getAccessibleTableColumnHeaderFP)(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo); | |
typedef AccessibleContext (*getAccessibleTableRowDescriptionFP)(long vmID, AccessibleContext acParent, jint row); | |
typedef AccessibleContext (*getAccessibleTableColumnDescriptionFP)(long vmID, AccessibleContext acParent, jint column); | |
typedef jint (*getAccessibleTableRowSelectionCountFP)(long vmID, AccessibleTable table); | |
typedef BOOL (*isAccessibleTableRowSelectedFP)(long vmID, AccessibleTable table, jint row); | |
typedef BOOL (*getAccessibleTableRowSelectionsFP)(long vmID, AccessibleTable table, jint count, jint *selections); | |
typedef jint (*getAccessibleTableColumnSelectionCountFP)(long vmID, AccessibleTable table); | |
typedef BOOL (*isAccessibleTableColumnSelectedFP)(long vmID, AccessibleTable table, jint column); | |
typedef BOOL (*getAccessibleTableColumnSelectionsFP)(long vmID, AccessibleTable table, jint count, jint *selections); | |
typedef jint (*getAccessibleTableRowFP)(long vmID, AccessibleTable table, jint index); | |
typedef jint (*getAccessibleTableColumnFP)(long vmID, AccessibleTable table, jint index); | |
typedef jint (*getAccessibleTableIndexFP)(long vmID, AccessibleTable table, jint row, jint column); | |
typedef BOOL (*getAccessibleRelationSetFP)(long vmID, AccessibleContext accessibleContext, AccessibleRelationSetInfo *relationSetInfo); | |
typedef BOOL (*getAccessibleHypertextFP)(long vmID, AccessibleContext accessibleContext, AccessibleHypertextInfo *hypertextInfo); | |
typedef BOOL (*activateAccessibleHyperlinkFP)(long vmID, AccessibleContext accessibleContext, AccessibleHyperlink accessibleHyperlink); | |
typedef jint (*getAccessibleHyperlinkCountFP)(const long vmID, const AccessibleContext accessibleContext); | |
typedef BOOL (*getAccessibleHypertextExtFP)(const long vmID, const AccessibleContext accessibleContext, const jint nStartIndex, AccessibleHypertextInfo *hypertextInfo); | |
typedef jint (*getAccessibleHypertextLinkIndexFP)(const long vmID, const AccessibleHypertext hypertext, const jint nIndex); | |
typedef BOOL (*getAccessibleHyperlinkFP)(const long vmID, const AccessibleHypertext hypertext, const jint nIndex, AccessibleHyperlinkInfo *hyperlinkInfo); | |
typedef BOOL (*getAccessibleKeyBindingsFP)(long vmID, AccessibleContext accessibleContext, AccessibleKeyBindings *keyBindings); | |
typedef BOOL (*getAccessibleIconsFP)(long vmID, AccessibleContext accessibleContext, AccessibleIcons *icons); | |
typedef BOOL (*getAccessibleActionsFP)(long vmID, AccessibleContext accessibleContext, AccessibleActions *actions); | |
typedef BOOL (*doAccessibleActionsFP)(long vmID, AccessibleContext accessibleContext, AccessibleActionsToDo *actionsToDo, jint *failure); | |
typedef BOOL (*GetAccessibleTextInfoFP)(long vmID, AccessibleText at, AccessibleTextInfo *textInfo, jint x, jint y); | |
typedef BOOL (*GetAccessibleTextItemsFP)(long vmID, AccessibleText at, AccessibleTextItemsInfo *textItems, jint index); | |
typedef BOOL (*GetAccessibleTextSelectionInfoFP)(long vmID, AccessibleText at, AccessibleTextSelectionInfo *textSelection); | |
typedef BOOL (*GetAccessibleTextAttributesFP)(long vmID, AccessibleText at, jint index, AccessibleTextAttributesInfo *attributes); | |
typedef BOOL (*GetAccessibleTextRectFP)(long vmID, AccessibleText at, AccessibleTextRectInfo *rectInfo, jint index); | |
typedef BOOL (*GetAccessibleTextLineBoundsFP)(long vmID, AccessibleText at, jint index, jint *startIndex, jint *endIndex); | |
typedef BOOL (*GetAccessibleTextRangeFP)(long vmID, AccessibleText at, jint start, jint end, wchar_t *text, short len); | |
typedef BOOL (*GetCurrentAccessibleValueFromContextFP)(long vmID, AccessibleValue av, wchar_t *value, short len); | |
typedef BOOL (*GetMaximumAccessibleValueFromContextFP)(long vmID, AccessibleValue av, wchar_t *value, short len); | |
typedef BOOL (*GetMinimumAccessibleValueFromContextFP)(long vmID, AccessibleValue av, wchar_t *value, short len); | |
typedef void (*AddAccessibleSelectionFromContextFP)(long vmID, AccessibleSelection as, int i); | |
typedef void (*ClearAccessibleSelectionFromContextFP)(long vmID, AccessibleSelection as); | |
typedef JOBJECT64 (*GetAccessibleSelectionFromContextFP)(long vmID, AccessibleSelection as, int i); | |
typedef int (*GetAccessibleSelectionCountFromContextFP)(long vmID, AccessibleSelection as); | |
typedef BOOL (*IsAccessibleChildSelectedFromContextFP)(long vmID, AccessibleSelection as, int i); | |
typedef void (*RemoveAccessibleSelectionFromContextFP)(long vmID, AccessibleSelection as, int i); | |
typedef void (*SelectAllAccessibleSelectionFromContextFP)(long vmID, AccessibleSelection as); | |
typedef BOOL (*setTextContentsFP)(const long vmID, const AccessibleContext ac, const wchar_t *text); | |
typedef AccessibleContext (*getParentWithRoleFP)(const long vmID, const AccessibleContext ac, const wchar_t *role); | |
typedef AccessibleContext (*getParentWithRoleElseRootFP)(const long vmID, const AccessibleContext ac, const wchar_t *role); | |
typedef AccessibleContext (*getTopLevelObjectFP)(const long vmID, const AccessibleContext ac); | |
typedef int (*getObjectDepthFP)(const long vmID, const AccessibleContext ac); | |
typedef AccessibleContext (*getActiveDescendentFP)(const long vmID, const AccessibleContext ac); | |
typedef BOOL (*getVirtualAccessibleNameFP)(const long vmID, const AccessibleContext accessibleContext, wchar_t *name, int len); | |
typedef BOOL (*requestFocusFP)(const long vmID, const AccessibleContext accessibleContext); | |
typedef BOOL (*selectTextRangeFP)(const long vmID, const AccessibleContext accessibleContext, const int startIndex, const int endIndex); | |
typedef BOOL (*getTextAttributesInRangeFP)(const long vmID, const AccessibleContext accessibleContext, const int startIndex, const int endIndex, AccessibleTextAttributesInfo *attributes, short *len); | |
typedef int (*getVisibleChildrenCountFP)(const long vmID, const AccessibleContext accessibleContext); | |
typedef BOOL (*getVisibleChildrenFP)(const long vmID, const AccessibleContext accessibleContext, const int startIndex, VisibleChildrenInfo *children); | |
typedef BOOL (*setCaretPositionFP)(const long vmID, const AccessibleContext accessibleContext, const int position); | |
typedef BOOL (*getCaretLocationFP)(long vmID, AccessibleContext ac, AccessibleTextRectInfo *rectInfo, jint index); | |
typedef int (*getEventsWaitingFP)(); | |
typedef struct AccessBridgeFPsTag | |
{ | |
Windows_runFP Windows_run; | |
SetPropertyChangeFP SetPropertyChange; | |
SetJavaShutdownFP SetJavaShutdown; | |
SetFocusGainedFP SetFocusGained; | |
SetFocusLostFP SetFocusLost; | |
SetCaretUpdateFP SetCaretUpdate; | |
SetMouseClickedFP SetMouseClicked; | |
SetMouseEnteredFP SetMouseEntered; | |
SetMouseExitedFP SetMouseExited; | |
SetMousePressedFP SetMousePressed; | |
SetMouseReleasedFP SetMouseReleased; | |
SetMenuCanceledFP SetMenuCanceled; | |
SetMenuDeselectedFP SetMenuDeselected; | |
SetMenuSelectedFP SetMenuSelected; | |
SetPopupMenuCanceledFP SetPopupMenuCanceled; | |
SetPopupMenuWillBecomeInvisibleFP SetPopupMenuWillBecomeInvisible; | |
SetPopupMenuWillBecomeVisibleFP SetPopupMenuWillBecomeVisible; | |
SetPropertyNameChangeFP SetPropertyNameChange; | |
SetPropertyDescriptionChangeFP SetPropertyDescriptionChange; | |
SetPropertyStateChangeFP SetPropertyStateChange; | |
SetPropertyValueChangeFP SetPropertyValueChange; | |
SetPropertySelectionChangeFP SetPropertySelectionChange; | |
SetPropertyTextChangeFP SetPropertyTextChange; | |
SetPropertyCaretChangeFP SetPropertyCaretChange; | |
SetPropertyVisibleDataChangeFP SetPropertyVisibleDataChange; | |
SetPropertyChildChangeFP SetPropertyChildChange; | |
SetPropertyActiveDescendentChangeFP SetPropertyActiveDescendentChange; | |
SetPropertyTableModelChangeFP SetPropertyTableModelChange; | |
ReleaseJavaObjectFP ReleaseJavaObject; | |
GetVersionInfoFP GetVersionInfo; | |
IsJavaWindowFP IsJavaWindow; | |
IsSameObjectFP IsSameObject; | |
GetAccessibleContextFromHWNDFP GetAccessibleContextFromHWND; | |
getHWNDFromAccessibleContextFP getHWNDFromAccessibleContext; | |
GetAccessibleContextAtFP GetAccessibleContextAt; | |
GetAccessibleContextWithFocusFP GetAccessibleContextWithFocus; | |
GetAccessibleContextInfoFP GetAccessibleContextInfo; | |
GetAccessibleChildFromContextFP GetAccessibleChildFromContext; | |
GetAccessibleParentFromContextFP GetAccessibleParentFromContext; | |
getAccessibleTableInfoFP getAccessibleTableInfo; | |
getAccessibleTableCellInfoFP getAccessibleTableCellInfo; | |
getAccessibleTableRowHeaderFP getAccessibleTableRowHeader; | |
getAccessibleTableColumnHeaderFP getAccessibleTableColumnHeader; | |
getAccessibleTableRowDescriptionFP getAccessibleTableRowDescription; | |
getAccessibleTableColumnDescriptionFP getAccessibleTableColumnDescription; | |
getAccessibleTableRowSelectionCountFP getAccessibleTableRowSelectionCount; | |
isAccessibleTableRowSelectedFP isAccessibleTableRowSelected; | |
getAccessibleTableRowSelectionsFP getAccessibleTableRowSelections; | |
getAccessibleTableColumnSelectionCountFP getAccessibleTableColumnSelectionCount; | |
isAccessibleTableColumnSelectedFP isAccessibleTableColumnSelected; | |
getAccessibleTableColumnSelectionsFP getAccessibleTableColumnSelections; | |
getAccessibleTableRowFP getAccessibleTableRow; | |
getAccessibleTableColumnFP getAccessibleTableColumn; | |
getAccessibleTableIndexFP getAccessibleTableIndex; | |
getAccessibleRelationSetFP getAccessibleRelationSet; | |
getAccessibleHypertextFP getAccessibleHypertext; | |
activateAccessibleHyperlinkFP activateAccessibleHyperlink; | |
getAccessibleHyperlinkCountFP getAccessibleHyperlinkCount; | |
getAccessibleHypertextExtFP getAccessibleHypertextExt; | |
getAccessibleHypertextLinkIndexFP getAccessibleHypertextLinkIndex; | |
getAccessibleHyperlinkFP getAccessibleHyperlink; | |
getAccessibleKeyBindingsFP getAccessibleKeyBindings; | |
getAccessibleIconsFP getAccessibleIcons; | |
getAccessibleActionsFP getAccessibleActions; | |
doAccessibleActionsFP doAccessibleActions; | |
GetAccessibleTextInfoFP GetAccessibleTextInfo; | |
GetAccessibleTextItemsFP GetAccessibleTextItems; | |
GetAccessibleTextSelectionInfoFP GetAccessibleTextSelectionInfo; | |
GetAccessibleTextAttributesFP GetAccessibleTextAttributes; | |
GetAccessibleTextRectFP GetAccessibleTextRect; | |
GetAccessibleTextLineBoundsFP GetAccessibleTextLineBounds; | |
GetAccessibleTextRangeFP GetAccessibleTextRange; | |
GetCurrentAccessibleValueFromContextFP GetCurrentAccessibleValueFromContext; | |
GetMaximumAccessibleValueFromContextFP GetMaximumAccessibleValueFromContext; | |
GetMinimumAccessibleValueFromContextFP GetMinimumAccessibleValueFromContext; | |
AddAccessibleSelectionFromContextFP AddAccessibleSelectionFromContext; | |
ClearAccessibleSelectionFromContextFP ClearAccessibleSelectionFromContext; | |
GetAccessibleSelectionFromContextFP GetAccessibleSelectionFromContext; | |
GetAccessibleSelectionCountFromContextFP GetAccessibleSelectionCountFromContext; | |
IsAccessibleChildSelectedFromContextFP IsAccessibleChildSelectedFromContext; | |
RemoveAccessibleSelectionFromContextFP RemoveAccessibleSelectionFromContext; | |
SelectAllAccessibleSelectionFromContextFP SelectAllAccessibleSelectionFromContext; | |
setTextContentsFP setTextContents; | |
getParentWithRoleFP getParentWithRole; | |
getTopLevelObjectFP getTopLevelObject; | |
getParentWithRoleElseRootFP getParentWithRoleElseRoot; | |
getObjectDepthFP getObjectDepth; | |
getActiveDescendentFP getActiveDescendent; | |
getVirtualAccessibleNameFP getVirtualAccessibleName; | |
requestFocusFP requestFocus; | |
selectTextRangeFP selectTextRange; | |
getTextAttributesInRangeFP getTextAttributesInRange; | |
getVisibleChildrenCountFP getVisibleChildrenCount; | |
getVisibleChildrenFP getVisibleChildren; | |
setCaretPositionFP setCaretPosition; | |
getCaretLocationFP getCaretLocation; | |
getEventsWaitingFP getEventsWaiting; | |
} AccessBridgeFPs; | |
BOOL initializeAccessBridge(); | |
BOOL shutdownAccessBridge(); | |
BOOL IsJavaWindow(HWND window); | |
BOOL GetAccessibleContextFromHWND(HWND target, long *vmID, AccessibleContext *ac); | |
HWND getHWNDFromAccessibleContext(long vmID, AccessibleContext ac); | |
void SetJavaShutdown(AccessBridge_JavaShutdownFP fp); | |
void SetFocusGained(AccessBridge_FocusGainedFP fp); | |
void SetFocusLost(AccessBridge_FocusLostFP fp); | |
void SetCaretUpdate(AccessBridge_CaretUpdateFP fp); | |
void SetMouseClicked(AccessBridge_MouseClickedFP fp); | |
void SetMouseEntered(AccessBridge_MouseEnteredFP fp); | |
void SetMouseExited(AccessBridge_MouseExitedFP fp); | |
void SetMousePressed(AccessBridge_MousePressedFP fp); | |
void SetMouseReleased(AccessBridge_MouseReleasedFP fp); | |
void SetMenuCanceled(AccessBridge_MenuCanceledFP fp); | |
void SetMenuDeselected(AccessBridge_MenuDeselectedFP fp); | |
void SetMenuSelected(AccessBridge_MenuSelectedFP fp); | |
void SetPopupMenuCanceled(AccessBridge_PopupMenuCanceledFP fp); | |
void SetPopupMenuWillBecomeInvisible(AccessBridge_PopupMenuWillBecomeInvisibleFP fp); | |
void SetPopupMenuWillBecomeVisible(AccessBridge_PopupMenuWillBecomeVisibleFP fp); | |
void SetPropertyNameChange(AccessBridge_PropertyNameChangeFP fp); | |
void SetPropertyDescriptionChange(AccessBridge_PropertyDescriptionChangeFP fp); | |
void SetPropertyStateChange(AccessBridge_PropertyStateChangeFP fp); | |
void SetPropertyValueChange(AccessBridge_PropertyValueChangeFP fp); | |
void SetPropertySelectionChange(AccessBridge_PropertySelectionChangeFP fp); | |
void SetPropertyTextChange(AccessBridge_PropertyTextChangeFP fp); | |
void SetPropertyCaretChange(AccessBridge_PropertyCaretChangeFP fp); | |
void SetPropertyVisibleDataChange(AccessBridge_PropertyVisibleDataChangeFP fp); | |
void SetPropertyChildChange(AccessBridge_PropertyChildChangeFP fp); | |
void SetPropertyActiveDescendentChange(AccessBridge_PropertyActiveDescendentChangeFP fp); | |
void SetPropertyTableModelChange(AccessBridge_PropertyTableModelChangeFP fp); | |
void ReleaseJavaObject(long vmID, Java_Object object); | |
BOOL GetVersionInfo(long vmID, AccessBridgeVersionInfo *info); | |
HWND GetHWNDFromAccessibleContext(long vmID, JOBJECT64 accesibleContext); | |
BOOL GetAccessibleContextAt(long vmID, AccessibleContext acParent, jint x, jint y, AccessibleContext *ac); | |
BOOL GetAccessibleContextWithFocus(HWND window, long *vmID, AccessibleContext *ac); | |
BOOL GetAccessibleContextInfo(long vmID, AccessibleContext ac, AccessibleContextInfo *info); | |
AccessibleContext GetAccessibleChildFromContext(long vmID, AccessibleContext ac, jint index); | |
AccessibleContext GetAccessibleParentFromContext(long vmID, AccessibleContext ac); | |
BOOL GetAccessibleTextInfo(long vmID, AccessibleText at, AccessibleTextInfo *textInfo, jint x, jint y); | |
BOOL GetAccessibleTextItems(long vmID, AccessibleText at, AccessibleTextItemsInfo *textItems, jint index); | |
BOOL GetAccessibleTextSelectionInfo(long vmID, AccessibleText at, AccessibleTextSelectionInfo *textSelection); | |
BOOL GetAccessibleTextAttributes(long vmID, AccessibleText at, jint index, AccessibleTextAttributesInfo *attributes); | |
BOOL GetAccessibleTextRect(long vmID, AccessibleText at, AccessibleTextRectInfo *rectInfo, jint index); | |
BOOL GetAccessibleTextLineBounds(long vmID, AccessibleText at, jint index, jint *startIndex, jint *endIndex); | |
BOOL GetAccessibleTextRange(long vmID, AccessibleText at, jint start, jint end, wchar_t *text, short len); | |
BOOL getAccessibleTableInfo(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo); | |
BOOL getAccessibleTableCellInfo(long vmID, AccessibleTable accessibleTable, jint row, jint column, AccessibleTableCellInfo *tableCellInfo); | |
BOOL getAccessibleTableRowHeader(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo); | |
BOOL getAccessibleTableColumnHeader(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo); | |
AccessibleContext getAccessibleTableRowDescription(long vmID, AccessibleContext acParent, jint row); | |
AccessibleContext getAccessibleTableColumnDescription(long vmID, AccessibleContext acParent, jint column); | |
jint getAccessibleTableRowSelectionCount(long vmID, AccessibleTable table); | |
BOOL isAccessibleTableRowSelected(long vmID, AccessibleTable table, jint row); | |
BOOL getAccessibleTableRowSelections(long vmID, AccessibleTable table, jint count, jint *selections); | |
jint getAccessibleTableColumnSelectionCount(long vmID, AccessibleTable table); | |
BOOL isAccessibleTableColumnSelected(long vmID, AccessibleTable table, jint column); | |
BOOL getAccessibleTableColumnSelections(long vmID, AccessibleTable table, jint count, jint *selections); | |
jint getAccessibleTableRow(long vmID, AccessibleTable table, jint index); | |
jint getAccessibleTableColumn(long vmID, AccessibleTable table, jint index); | |
jint getAccessibleTableIndex(long vmID, AccessibleTable table, jint row, jint column); | |
BOOL getAccessibleRelationSet(long vmID, AccessibleContext accessibleContext, AccessibleRelationSetInfo *relationSetInfo); | |
BOOL getAccessibleHypertext(long vmID, AccessibleContext accessibleContext, AccessibleHypertextInfo *hypertextInfo); | |
BOOL activateAccessibleHyperlink(long vmID, AccessibleContext accessibleContext, AccessibleHyperlink accessibleHyperlink); | |
jint getAccessibleHyperlinkCount(long vmID, AccessibleHypertext hypertext); | |
BOOL getAccessibleHypertextExt(long vmID, AccessibleContext accessibleContext, jint nStartIndex, AccessibleHypertextInfo *hypertextInfo); | |
jint getAccessibleHypertextLinkIndex(long vmID, AccessibleHypertext hypertext, jint nIndex); | |
BOOL getAccessibleHyperlink(long vmID, AccessibleHypertext hypertext, jint nIndex, AccessibleHyperlinkInfo *hyperlinkInfo); | |
BOOL getAccessibleKeyBindings(long vmID, AccessibleContext accessibleContext, AccessibleKeyBindings *keyBindings); | |
BOOL getAccessibleIcons(long vmID, AccessibleContext accessibleContext, AccessibleIcons *icons); | |
BOOL getAccessibleActions(long vmID, AccessibleContext accessibleContext, AccessibleActions *actions); | |
BOOL doAccessibleActions(long vmID, AccessibleContext accessibleContext, AccessibleActionsToDo *actionsToDo, jint *failure); | |
BOOL IsSameObject(long vmID, JOBJECT64 obj1, JOBJECT64 obj2); | |
BOOL setTextContents(long vmID, AccessibleContext accessibleContext, const wchar_t *text); | |
AccessibleContext getParentWithRole(long vmID, AccessibleContext accessibleContext, const wchar_t *role); | |
AccessibleContext getParentWithRoleElseRoot(long vmID, AccessibleContext accessibleContext, const wchar_t *role); | |
AccessibleContext getTopLevelObject(long vmID, AccessibleContext accessibleContext); | |
int getObjectDepth(long vmID, AccessibleContext accessibleContext); | |
AccessibleContext getActiveDescendent(long vmID, AccessibleContext accessibleContext); | |
BOOL GetCurrentAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len); | |
BOOL GetMaximumAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len); | |
BOOL GetMinimumAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len); | |
void AddAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i); | |
void ClearAccessibleSelectionFromContext(long vmID, AccessibleSelection as); | |
JOBJECT64 GetAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i); | |
int GetAccessibleSelectionCountFromContext(long vmID, AccessibleSelection as); | |
BOOL IsAccessibleChildSelectedFromContext(long vmID, AccessibleSelection as, int i); | |
void RemoveAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i); | |
void SelectAllAccessibleSelectionFromContext(long vmID, AccessibleSelection as); | |
BOOL getVirtualAccessibleName(long vmID, AccessibleContext accessibleContext, wchar_t *name, int len); | |
BOOL requestFocus(long vmID, AccessibleContext accessibleContext); | |
BOOL selectTextRange(long vmID, AccessibleContext accessibleContext, int startIndex, int endIndex); | |
BOOL getTextAttributesInRange(long vmID, AccessibleContext accessibleContext, int startIndex, int endIndex, AccessibleTextAttributesInfo *attributes, short *len); | |
int getVisibleChildrenCount(long vmID, AccessibleContext accessibleContext); | |
BOOL getVisibleChildren(long vmID, AccessibleContext accessibleContext, int startIndex, VisibleChildrenInfo *visibleChildrenInfo); | |
BOOL setCaretPosition(long vmID, AccessibleContext accessibleContext, int position); | |
BOOL getCaretLocation(long vmID, AccessibleContext ac, AccessibleTextRectInfo *rectInfo, jint index); | |
int getEventsWaiting(); | |
#ifdef __cplusplus | |
} | |
#endif | |
#endif | |
#endif |
1/5/2025 - Fixed quick but I accidentally made when reviewing some stuff
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
1/5/2025 - Added a slightly minified version