summaryrefslogtreecommitdiff
path: root/demos
diff options
context:
space:
mode:
authorThomas Deutschmann <whissi@gentoo.org>2021-09-27 11:19:24 +0200
committerThomas Deutschmann <whissi@gentoo.org>2021-10-20 18:22:47 +0200
commitcc6be9c3577168805ec34b2d396e63361012282b (patch)
tree7dc794b08a1a6a786d540516c623cb1eebfb1863 /demos
parentImport Ghostscript 9.54 (diff)
downloadghostscript-gpl-patches-cc6be9c3577168805ec34b2d396e63361012282b.tar.gz
ghostscript-gpl-patches-cc6be9c3577168805ec34b2d396e63361012282b.tar.bz2
ghostscript-gpl-patches-cc6be9c3577168805ec34b2d396e63361012282b.zip
Import Ghostscript 9.55ghostscript-9.55
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
Diffstat (limited to 'demos')
-rw-r--r--demos/csharp/README.txt1
-rw-r--r--demos/csharp/api/ghostapi.cs29
-rw-r--r--demos/csharp/api/ghostmono.cs243
-rw-r--r--demos/csharp/api/ghostnet.cs281
-rw-r--r--demos/csharp/linux/gs_mono.sln17
-rw-r--r--demos/csharp/linux/gtk_viewer/Properties/AssemblyInfo.cs26
-rw-r--r--demos/csharp/linux/gtk_viewer/gtk-gui/generated.cs30
-rw-r--r--demos/csharp/linux/gtk_viewer/gtk-gui/gtk_viewer.src.gsOutput.cs10
-rw-r--r--demos/csharp/linux/gtk_viewer/gtk-gui/gui.stetic18
-rw-r--r--demos/csharp/linux/gtk_viewer/gtk_viewer.csproj73
-rw-r--r--demos/csharp/linux/gtk_viewer/gtk_viewer.sln17
-rwxr-xr-xdemos/csharp/linux/gtk_viewer/make.sh18
-rw-r--r--demos/csharp/linux/gtk_viewer/src/DocPage.cs19
-rw-r--r--demos/csharp/linux/gtk_viewer/src/MainRender.cs28
-rw-r--r--demos/csharp/linux/gtk_viewer/src/MainThumbRendering.cs27
-rw-r--r--demos/csharp/linux/gtk_viewer/src/MainWindow.cs32
-rw-r--r--demos/csharp/linux/gtk_viewer/src/MainZoom.cs17
-rw-r--r--demos/csharp/linux/gtk_viewer/src/Program.cs19
-rw-r--r--demos/csharp/linux/gtk_viewer/src/TempFile.cs19
-rw-r--r--demos/csharp/linux/gtk_viewer/src/gsOutput.cs19
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/App.xaml.cs21
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/DocPage.cs19
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/MainPrint.cs52
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/MainRender.cs27
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/MainThumbRendering.cs25
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/MainWindow.xaml20
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/MainWindow.xaml.cs45
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/MainZoom.cs17
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/PrintControl.xaml18
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/PrintControl.xaml.cs17
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/PrintStatus.xaml18
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/PrintStatus.xaml.cs27
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/TempFile.cs17
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/XPSprint.cs15
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/gsIO.cs17
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/gsOutput.xaml18
-rw-r--r--demos/csharp/windows/ghostnet_wpf_example/gsOutput.xaml.cs17
-rw-r--r--demos/java/README.txt8
-rw-r--r--demos/java/gsjava/Manifest.md2
-rw-r--r--demos/java/gsjava/README.txt94
-rw-r--r--demos/java/gsjava/build_darwin.sh62
-rw-r--r--demos/java/gsjava/build_linux.sh62
-rw-r--r--demos/java/gsjava/build_win32.bat101
-rw-r--r--demos/java/gsjava/src/com/artifex/gsjava/GSAPI.java33
-rw-r--r--demos/java/gsjava/src/com/artifex/gsjava/util/NativePointer.java24
-rw-r--r--demos/java/gsviewer/Manifest.md3
-rw-r--r--demos/java/gsviewer/README.txt70
-rw-r--r--demos/java/gsviewer/build_darwin.sh37
-rw-r--r--demos/java/gsviewer/build_linux.sh37
-rw-r--r--demos/java/gsviewer/build_win32.bat42
-rw-r--r--demos/java/gsviewer/install_darwin.sh11
-rw-r--r--demos/java/gsviewer/install_linux.sh7
-rw-r--r--demos/java/gsviewer/src/com/artifex/gsviewer/Document.java4
-rw-r--r--demos/java/gsviewer/src/com/artifex/gsviewer/Main.java1
-rw-r--r--demos/java/gsviewer/start_darwin.sh5
-rw-r--r--demos/java/gsviewer/start_linux.sh5
-rw-r--r--demos/java/jni/gs_jni/README.txt112
-rw-r--r--demos/java/jni/gs_jni/build_darwin.sh57
-rw-r--r--demos/java/jni/gs_jni/build_linux.sh57
-rw-r--r--demos/java/jni/gs_jni/callbacks.cpp15
-rw-r--r--demos/java/jni/gs_jni/com_artifex_gsjava_GSAPI.cpp5
-rw-r--r--demos/java/jni/gs_jni/com_artifex_gsjava_util_NativePointer.cpp2
-rw-r--r--demos/java/jni/gs_jni/gs_jni.vcxproj8
-rw-r--r--demos/java/jni/gs_jni/include/classfile_constants.h560
-rw-r--r--demos/java/jni/gs_jni/include/jawt.h299
-rw-r--r--demos/java/jni/gs_jni/include/jdwpTransport.h259
-rw-r--r--demos/java/jni/gs_jni/include/jni.h1964
-rw-r--r--demos/java/jni/gs_jni/include/jvmti.h2533
-rw-r--r--demos/java/jni/gs_jni/include/jvmticmlr.h115
-rw-r--r--demos/java/jni/gs_jni/include/win32/bridge/AccessBridgeCallbacks.h96
-rw-r--r--demos/java/jni/gs_jni/include/win32/bridge/AccessBridgeCalls.c1131
-rw-r--r--demos/java/jni/gs_jni/include/win32/bridge/AccessBridgeCalls.h706
-rw-r--r--demos/java/jni/gs_jni/include/win32/bridge/AccessBridgePackages.h2215
-rw-r--r--demos/java/jni/gs_jni/include/win32/jawt_md.h59
-rw-r--r--demos/java/jni/gs_jni/include/win32/jni_md.h37
-rw-r--r--demos/java/jni/gs_jni/install_linux.sh7
-rw-r--r--demos/java/jni/gs_jni/jni_util.cpp7
-rwxr-xr-xdemos/python/gsapi.py136
78 files changed, 1713 insertions, 10608 deletions
diff --git a/demos/csharp/README.txt b/demos/csharp/README.txt
index 1665c7cd..e4ef3051 100644
--- a/demos/csharp/README.txt
+++ b/demos/csharp/README.txt
@@ -28,5 +28,6 @@ performance on rendering only the visible pages when PDF is the document source.
PCL and PS file formats are streamed and so cannot work in this manner without
a severe performance penalty.
+The Linux application is built using the make.sh bash script.
diff --git a/demos/csharp/api/ghostapi.cs b/demos/csharp/api/ghostapi.cs
index a3491fd7..7a563edc 100644
--- a/demos/csharp/api/ghostapi.cs
+++ b/demos/csharp/api/ghostapi.cs
@@ -1,4 +1,19 @@
-using System; /* IntPtr */
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System; /* IntPtr */
using System.Runtime.InteropServices; /* DLLImport */
namespace GhostAPI
@@ -42,13 +57,13 @@ namespace GhostAPI
public const int DISPLAY_COLORS_RGB = (1 << 2);
public const int DISPLAY_DEPTH_8 = (1 << 11);
public const int DISPLAY_LITTLEENDIAN = (1 << 16);
- public const int DISPLAY_BIGENDIAN = (0 << 16);
+ public const int DISPLAY_BIGENDIAN = (0 << 16);
}
- class ghostapi
+ class GSAPI
{
#if MONO
- private const string lib_dll = "libgpdl.so";
+ private const string lib_dll = "libgpdl.so";
#else
#if WIN64
#if !GHOSTPDL
@@ -64,8 +79,8 @@ namespace GhostAPI
#endif
#endif
#endif
- /* Callback proto for stdio */
- public delegate int gs_stdio_handler(IntPtr caller_handle, IntPtr buffer, int len);
+ /* Callback proto for stdio */
+ public delegate int gs_stdio_handler(IntPtr caller_handle, IntPtr buffer, int len);
/* Callback proto for poll function */
public delegate int gsPollHandler(IntPtr caller_handle);
@@ -185,7 +200,7 @@ namespace GhostAPI
[DllImport(lib_dll, EntryPoint = "gsapi_enumerate_params", CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.StdCall)]
- public static extern int gsapi_enumerate_params(IntPtr instance, out IntPtr inter,
+ public static extern int gsapi_enumerate_params(IntPtr instance, out IntPtr iter,
out IntPtr key, IntPtr type);
[DllImport(lib_dll, EntryPoint = "gsapi_add_control_path", CharSet = CharSet.Ansi,
diff --git a/demos/csharp/api/ghostmono.cs b/demos/csharp/api/ghostmono.cs
index 850ff039..80723e0c 100644
--- a/demos/csharp/api/ghostmono.cs
+++ b/demos/csharp/api/ghostmono.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.Runtime.InteropServices; /* Marshaling */
using System.Threading;
using System.Collections.Generic; /* Use of List */
@@ -74,7 +89,7 @@ namespace GhostMono
}
}
- class ghostsharp
+ class GSMONO
{
public class GhostscriptException : Exception
{
@@ -153,7 +168,7 @@ namespace GhostMono
{
m_params.currpage += 1;
Gtk.Application.Invoke(delegate {
- gsPageRenderedMain(m_pagewidth, m_pageheight, m_pageraster, m_pageptr, m_params);
+ PageRenderedCallBack(m_pagewidth, m_pageheight, m_pageraster, m_pageptr, m_params);
});
return 0;
}
@@ -205,7 +220,7 @@ namespace GhostMono
private int stdin_callback(IntPtr handle, IntPtr pointer, int count)
{
- String output = Marshal.PtrToStringAnsi(pointer);
+ Marshal.PtrToStringAnsi(pointer);
return count;
}
@@ -216,7 +231,7 @@ namespace GhostMono
{
output = Marshal.PtrToStringAnsi(pointer);
Gtk.Application.Invoke(delegate {
- gsIOUpdateMain(output, count);
+ StdIOCallBack(output, count);
});
}
catch (Exception excep2)
@@ -232,7 +247,7 @@ namespace GhostMono
{
String output = Marshal.PtrToStringAnsi(pointer);
Gtk.Application.Invoke(delegate {
- gsIOUpdateMain(output, count);
+ StdIOCallBack(output, count);
});
return count;
@@ -252,26 +267,29 @@ namespace GhostMono
IntPtr ptr_display_struct;
/* Callbacks to Main */
- internal delegate void gsDLLProblem(String mess);
- internal event gsDLLProblem gsDLLProblemMain;
+ internal delegate void DLLProblem(String mess);
+ internal event DLLProblem DLLProblemCallBack;
- internal delegate void gsIOCallBackMain(String mess, int len);
- internal event gsIOCallBackMain gsIOUpdateMain;
+ internal delegate void StdIO(String mess, int len);
+ internal event StdIO StdIOCallBack;
- internal delegate void gsCallBackMain(gsThreadCallBack info);
- internal event gsCallBackMain gsUpdateMain;
+ internal delegate void Progress(gsThreadCallBack info);
+ internal event Progress ProgressCallBack;
- internal delegate void gsCallBackPageRenderedMain(int width, int height, int raster,
+ internal delegate void PageRendered(int width, int height, int raster,
IntPtr data, gsParamState_t state);
- internal event gsCallBackPageRenderedMain gsPageRenderedMain;
-
+ internal event PageRendered PageRenderedCallBack;
- /* From my understanding you cannot pin delegates. These need to be declared
+ /* From my understanding you cannot pin delegates. These need to be declared
* as members to keep a reference to the delegates and avoid their possible GC.
- * since the C# GC has no idea that GS has a reference to these items. */
- readonly gs_stdio_handler raise_stdin;
- readonly gs_stdio_handler raise_stdout;
- readonly gs_stdio_handler raise_stderr;
+ * since the C# GC has no idea that GS has a reference to these items. For some
+ * reason the Mono compiler throws a CS0414 warning about these not being assigned
+ * even though they are */
+#pragma warning disable 0414
+ GSAPI.gs_stdio_handler raise_stdin;
+ GSAPI.gs_stdio_handler raise_stdout;
+ GSAPI.gs_stdio_handler raise_stderr;
+#pragma warning restore 0414
/* Ghostscript display callback struct */
public struct display_callback_t
@@ -290,7 +308,8 @@ namespace GhostMono
public display_memalloc_del display_memalloc;
public display_memfree_del display_memfree;
};
- public ghostsharp()
+
+ public GSMONO()
{
m_worker = null;
gsInstance = IntPtr.Zero;
@@ -331,7 +350,7 @@ namespace GhostMono
gsThreadCallBack info = new gsThreadCallBack(true, 100, Params);
m_worker_busy = false;
Gtk.Application.Invoke(delegate {
- gsUpdateMain(info);
+ ProgressCallBack(info);
});
}
@@ -341,7 +360,7 @@ namespace GhostMono
/* Callback with progress */
gsThreadCallBack info = new gsThreadCallBack(false, percent, Params);
Gtk.Application.Invoke(delegate {
- gsUpdateMain(info);
+ ProgressCallBack(info);
});
}
@@ -349,7 +368,7 @@ namespace GhostMono
private void gsErrorReport(string message)
{
Gtk.Application.Invoke(delegate {
- gsDLLProblemMain(message);;
+ DLLProblemCallBack(message);;
});
m_worker_busy = false;
}
@@ -366,17 +385,17 @@ namespace GhostMono
try
{
- code = ghostapi.gsapi_new_instance(out gsInstance, IntPtr.Zero);
+ code = GSAPI.gsapi_new_instance(out gsInstance, IntPtr.Zero);
if (code < 0)
{
throw new GhostscriptException("gsFileSync: gsapi_new_instance error");
}
- code = ghostapi.gsapi_set_stdio(gsInstance, stdin_callback, stdout_callback, stderr_callback);
+ code = GSAPI.gsapi_set_stdio(gsInstance, stdin_callback, stdout_callback, stderr_callback);
if (code < 0)
{
throw new GhostscriptException("gsFileSync: gsapi_set_stdio error");
}
- code = ghostapi.gsapi_set_arg_encoding(gsInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
+ code = GSAPI.gsapi_set_arg_encoding(gsInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
if (code < 0)
{
throw new GhostscriptException("gsFileSync: gsapi_set_arg_encoding error");
@@ -397,8 +416,8 @@ namespace GhostMono
argPtrsStable = GCHandle.Alloc(argPtrs, GCHandleType.Pinned);
fullcommand = "Command Line: " + fullcommand + "\n";
- gsIOUpdateMain(fullcommand, fullcommand.Length);
- code = ghostapi.gsapi_init_with_args(gsInstance, num_params, argPtrsStable.AddrOfPinnedObject());
+ StdIOCallBack(fullcommand, fullcommand.Length);
+ code = GSAPI.gsapi_init_with_args(gsInstance, num_params, argPtrsStable.AddrOfPinnedObject());
if (code < 0 && code != gsConstants.E_QUIT)
{
throw new GhostscriptException("gsFileSync: gsapi_init_with_args error");
@@ -435,11 +454,11 @@ namespace GhostMono
}
argPtrsStable.Free();
- int code1 = ghostapi.gsapi_exit(gsInstance);
+ int code1 = GSAPI.gsapi_exit(gsInstance);
if ((code == 0) || (code == gsConstants.E_QUIT))
code = code1;
- ghostapi.gsapi_delete_instance(gsInstance);
+ GSAPI.gsapi_delete_instance(gsInstance);
in_params.return_code = code;
if ((code == 0) || (code == gsConstants.E_QUIT))
@@ -472,17 +491,17 @@ namespace GhostMono
try
{
- code = ghostapi.gsapi_new_instance(out gsInstance, IntPtr.Zero);
+ code = GSAPI.gsapi_new_instance(out gsInstance, IntPtr.Zero);
if (code < 0)
{
throw new GhostscriptException("gsFileAsync: gsapi_new_instance error");
}
- code = ghostapi.gsapi_set_stdio(gsInstance, stdin_callback, stdout_callback, stderr_callback);
+ code = GSAPI.gsapi_set_stdio(gsInstance, stdin_callback, stdout_callback, stderr_callback);
if (code < 0)
{
throw new GhostscriptException("gsFileAsync: gsapi_set_stdio error");
}
- code = ghostapi.gsapi_set_arg_encoding(gsInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
+ code = GSAPI.gsapi_set_arg_encoding(gsInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
if (code < 0)
{
throw new GhostscriptException("gsFileAsync: gsapi_set_arg_encoding error");
@@ -503,8 +522,8 @@ namespace GhostMono
argPtrsStable = GCHandle.Alloc(argPtrs, GCHandleType.Pinned);
fullcommand = "Command Line: " + fullcommand + "\n";
- gsIOUpdateMain(fullcommand, fullcommand.Length);
- code = ghostapi.gsapi_init_with_args(gsInstance, num_params, argPtrsStable.AddrOfPinnedObject());
+ StdIOCallBack(fullcommand, fullcommand.Length);
+ code = GSAPI.gsapi_init_with_args(gsInstance, num_params, argPtrsStable.AddrOfPinnedObject());
if (code < 0)
{
throw new GhostscriptException("gsFileAsync: gsapi_init_with_args error");
@@ -543,11 +562,11 @@ namespace GhostMono
}
argPtrsStable.Free();
- int code1 = ghostapi.gsapi_exit(gsInstance);
+ int code1 = GSAPI.gsapi_exit(gsInstance);
if ((code == 0) || (code == gsConstants.E_QUIT))
code = code1;
- ghostapi.gsapi_delete_instance(gsInstance);
+ GSAPI.gsapi_delete_instance(gsInstance);
Params.return_code = code;
if ((code == 0) || (code == gsConstants.E_QUIT))
@@ -586,7 +605,6 @@ namespace GhostMono
int exitcode = 0;
var Feed = new GCHandle();
var FeedPtr = new IntPtr();
- String[] strParams = new String[num_params];
FileStream fs = null;
bool cleanup = true;
@@ -596,24 +614,24 @@ namespace GhostMono
fs = new FileStream(Params.inputfile, FileMode.Open);
var len = (int)fs.Length;
- code = ghostapi.gsapi_new_instance(out gsInstance, IntPtr.Zero);
+ code = GSAPI.gsapi_new_instance(out gsInstance, IntPtr.Zero);
if (code < 0)
{
throw new GhostscriptException("gsBytesAsync: gsapi_new_instance error");
}
- code = ghostapi.gsapi_set_stdio(gsInstance, stdin_callback, stdout_callback, stderr_callback);
+ code = GSAPI.gsapi_set_stdio(gsInstance, stdin_callback, stdout_callback, stderr_callback);
if (code < 0)
{
throw new GhostscriptException("gsBytesAsync: gsapi_set_stdio error");
}
- code = ghostapi.gsapi_set_arg_encoding(gsInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
+ code = GSAPI.gsapi_set_arg_encoding(gsInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
if (code < 0)
{
throw new GhostscriptException("gsBytesAsync: gsapi_set_arg_encoding error");
}
/* Now convert our Strings to char* and get pinned handles to these.
- * This keeps the c# GC from moving stuff around on us */
+ * This keeps the c# GC from moving stuff around on us */
String fullcommand = "";
for (int k = 0; k < num_params; k++)
{
@@ -627,8 +645,8 @@ namespace GhostMono
argPtrsStable = GCHandle.Alloc(argPtrs, GCHandleType.Pinned);
fullcommand = "Command Line: " + fullcommand + "\n";
- gsIOUpdateMain(fullcommand, fullcommand.Length);
- code = ghostapi.gsapi_init_with_args(gsInstance, num_params, argPtrsStable.AddrOfPinnedObject());
+ StdIOCallBack(fullcommand, fullcommand.Length);
+ code = GSAPI.gsapi_init_with_args(gsInstance, num_params, argPtrsStable.AddrOfPinnedObject());
if (code < 0)
{
throw new GhostscriptException("gsBytesAsync: gsapi_init_with_args error");
@@ -645,9 +663,8 @@ namespace GhostMono
int count;
double perc;
int total = 0;
- int ret_code;
- ret_code = ghostapi.gsapi_run_string_begin(gsInstance, 0, ref exitcode);
+ GSAPI.gsapi_run_string_begin(gsInstance, 0, ref exitcode);
if (exitcode < 0)
{
code = exitcode;
@@ -656,7 +673,7 @@ namespace GhostMono
while ((count = fs.Read(Buffer, 0, gsConstants.GS_READ_BUFFER)) > 0)
{
- ret_code = ghostapi.gsapi_run_string_continue(gsInstance, FeedPtr, count, 0, ref exitcode);
+ GSAPI.gsapi_run_string_continue(gsInstance, FeedPtr, count, 0, ref exitcode);
if (exitcode < 0)
{
code = exitcode;
@@ -667,7 +684,7 @@ namespace GhostMono
perc = 100.0 * (double)total / (double)len;
gsProgressChanged(Params, (int)perc);
}
- ret_code = ghostapi.gsapi_run_string_end(gsInstance, 0, ref exitcode);
+ GSAPI.gsapi_run_string_end(gsInstance, 0, ref exitcode);
if (exitcode < 0)
{
code = exitcode;
@@ -716,11 +733,11 @@ namespace GhostMono
Feed.Free();
/* gs clean up */
- int code1 = ghostapi.gsapi_exit(gsInstance);
+ int code1 = GSAPI.gsapi_exit(gsInstance);
if ((code == 0) || (code == gsConstants.E_QUIT))
code = code1;
- ghostapi.gsapi_delete_instance(gsInstance);
+ GSAPI.gsapi_delete_instance(gsInstance);
Params.return_code = code;
if ((code == 0) || (code == gsConstants.E_QUIT))
@@ -758,25 +775,25 @@ namespace GhostMono
try
{
- code = ghostapi.gsapi_new_instance(out dispInstance, IntPtr.Zero);
+ code = GSAPI.gsapi_new_instance(out dispInstance, IntPtr.Zero);
if (code < 0)
{
throw new GhostscriptException("DisplayDeviceAsync: gsapi_new_instance error");
}
- code = ghostapi.gsapi_set_stdio(dispInstance, stdin_callback, stdout_callback, stderr_callback);
+ code = GSAPI.gsapi_set_stdio(dispInstance, stdin_callback, stdout_callback, stderr_callback);
if (code < 0)
{
throw new GhostscriptException("DisplayDeviceAsync: gsapi_set_stdio error");
}
- code = ghostapi.gsapi_set_arg_encoding(dispInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
+ code = GSAPI.gsapi_set_arg_encoding(dispInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
if (code < 0)
{
throw new GhostscriptException("DisplayDeviceAsync: gsapi_set_arg_encoding error");
}
- code = ghostapi.gsapi_set_display_callback(dispInstance, ptr_display_struct);
+ code = GSAPI.gsapi_set_display_callback(dispInstance, ptr_display_struct);
if (code < 0)
{
throw new GhostscriptException("DisplayDeviceAsync: gsapi_set_display_callback error");
@@ -793,8 +810,8 @@ namespace GhostMono
argPtrsStable = GCHandle.Alloc(argPtrs, GCHandleType.Pinned);
fullcommand = "Command Line: " + fullcommand + "\n";
- gsIOUpdateMain(fullcommand, fullcommand.Length);
- code = ghostapi.gsapi_init_with_args(dispInstance, num_params, argPtrsStable.AddrOfPinnedObject());
+ StdIOCallBack(fullcommand, fullcommand.Length);
+ code = GSAPI.gsapi_init_with_args(dispInstance, num_params, argPtrsStable.AddrOfPinnedObject());
if (code < 0)
{
throw new GhostscriptException("DisplayDeviceAsync: gsapi_init_with_args error");
@@ -820,7 +837,7 @@ namespace GhostMono
gsErrorReport("Exception: " + except.Message);
gsparams.result = GS_Result_t.gsFAILED;
if (dispInstance != IntPtr.Zero)
- ghostapi.gsapi_delete_instance(dispInstance);
+ GSAPI.gsapi_delete_instance(dispInstance);
dispInstance = IntPtr.Zero;
}
catch (Exception except)
@@ -828,7 +845,7 @@ namespace GhostMono
gsErrorReport("Exception: " + except.Message);
gsparams.result = GS_Result_t.gsFAILED;
if (dispInstance != IntPtr.Zero)
- ghostapi.gsapi_delete_instance(dispInstance);
+ GSAPI.gsapi_delete_instance(dispInstance);
dispInstance = IntPtr.Zero;
}
finally
@@ -915,7 +932,7 @@ namespace GhostMono
try
{
- if (ghostapi.gsapi_revision(ref vers, size) == 0)
+ if (GSAPI.gsapi_revision(ref vers, size) == 0)
{
String product = Marshal.PtrToStringAnsi(vers.product);
String output;
@@ -986,8 +1003,38 @@ namespace GhostMono
}
/* Launch a thread rendering all the pages with the display device
+ * to collect thumbnail images via init_with_args. */
+ public gsStatus DisplayDeviceRenderThumbs(String fileName, double zoom, bool aa)
+ {
+ gsParamState_t gsparams = new gsParamState_t();
+ int format = (gsConstants.DISPLAY_COLORS_RGB |
+ gsConstants.DISPLAY_DEPTH_8 |
+ gsConstants.DISPLAY_LITTLEENDIAN);
+ int resolution = (int)(72.0 * zoom + 0.5);
+ GS_Task_t task = GS_Task_t.DISPLAY_DEV_THUMBS_NON_PDF;
+
+ gsparams.args = new List<string>();
+ gsparams.args.Add("gs");
+ gsparams.args.Add("-dFirstPage=1"); /* To ensure gdevflp is setup */
+ gsparams.args.Add("-r" + resolution);
+ if (aa)
+ {
+ gsparams.args.Add("-dTextAlphaBits=4");
+ gsparams.args.Add("-dGraphicsAlphaBits=4");
+ }
+ gsparams.args.Add("-sDEVICE=display");
+ gsparams.args.Add("-dDisplayFormat=" + format);
+ gsparams.args.Add("-f");
+ gsparams.args.Add(fileName);
+ gsparams.task = task;
+ gsparams.currpage = 0;
+ m_params.currpage = 0;
+ return RunGhostscriptAsync(gsparams);
+ }
+
+ /* Launch a thread rendering all the pages with the display device
* to collect thumbnail images or full resolution. */
- public gsStatus gsDisplayDeviceRenderAll(String fileName, double zoom, bool aa, GS_Task_t task)
+ public gsStatus DisplayDeviceRenderAll(String fileName, double zoom, bool aa, GS_Task_t task)
{
gsParamState_t gsparams = new gsParamState_t();
int format = (gsConstants.DISPLAY_COLORS_RGB |
@@ -1017,10 +1064,9 @@ namespace GhostMono
return RunGhostscriptAsync(gsparams);
}
-
/* Launch a thread rendering a set of pages with the display device. For use with languages
that can be indexed via pages which include PDF and XPS */
- public gsStatus gsDisplayDeviceRenderPages(String fileName, int first_page, int last_page, double zoom)
+ public gsStatus DisplayDeviceRenderPages(String fileName, int first_page, int last_page, double zoom)
{
gsParamState_t gsparams = new gsParamState_t();
int format = (gsConstants.DISPLAY_COLORS_RGB |
@@ -1048,6 +1094,72 @@ namespace GhostMono
return RunGhostscriptAsync(gsparams);
}
+ /* Set up the display device ahead of time */
+ public gsParamState_t DisplayDeviceOpen()
+ {
+ int code;
+ gsParamState_t gsparams = new gsParamState_t();
+ gsparams.result = GS_Result_t.gsOK;
+
+ if (dispInstance != IntPtr.Zero)
+ return gsparams;
+
+ try
+ {
+ code = GSAPI.gsapi_new_instance(out dispInstance, IntPtr.Zero);
+ if (code < 0)
+ {
+ throw new GhostscriptException("DisplayDeviceOpen: gsapi_new_instance error");
+ }
+
+ code = GSAPI.gsapi_set_stdio(dispInstance, raise_stdin, raise_stdout, raise_stderr);
+ if (code < 0)
+ {
+ throw new GhostscriptException("DisplayDeviceOpen: gsapi_set_stdio error");
+ }
+
+ code = GSAPI.gsapi_set_arg_encoding(dispInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
+ if (code < 0)
+ {
+ throw new GhostscriptException("DisplayDeviceOpen: gsapi_set_arg_encoding error");
+ }
+
+ code = GSAPI.gsapi_set_display_callback(dispInstance, ptr_display_struct);
+ if (code < 0)
+ {
+ throw new GhostscriptException("DisplayDeviceOpen: gsapi_set_display_callback error");
+ }
+ }
+
+ catch (DllNotFoundException except)
+ {
+ DLLProblemCallBack("Exception: " + except.Message);
+ gsparams.result = GS_Result_t.gsFAILED;
+ }
+ catch (BadImageFormatException except)
+ {
+ DLLProblemCallBack("Exception: " + except.Message);
+ gsparams.result = GS_Result_t.gsFAILED;
+ }
+ catch (GhostscriptException except)
+ {
+ DLLProblemCallBack("Exception: " + except.Message);
+ gsparams.result = GS_Result_t.gsFAILED;
+ if (dispInstance != IntPtr.Zero)
+ GSAPI.gsapi_delete_instance(dispInstance);
+ dispInstance = IntPtr.Zero;
+ }
+ catch (Exception except)
+ {
+ DLLProblemCallBack("Exception: " + except.Message);
+ gsparams.result = GS_Result_t.gsFAILED;
+ if (dispInstance != IntPtr.Zero)
+ GSAPI.gsapi_delete_instance(dispInstance);
+ dispInstance = IntPtr.Zero;
+ }
+ return gsparams;
+ }
+
/* Close the display device and delete the instance */
public gsParamState_t DisplayDeviceClose()
{
@@ -1058,11 +1170,11 @@ namespace GhostMono
try
{
- int code1 = ghostapi.gsapi_exit(dispInstance);
+ int code1 = GSAPI.gsapi_exit(dispInstance);
if ((code == 0) || (code == gsConstants.E_QUIT))
code = code1;
- ghostapi.gsapi_delete_instance(dispInstance);
+ GSAPI.gsapi_delete_instance(dispInstance);
dispInstance = IntPtr.Zero;
}
@@ -1071,7 +1183,6 @@ namespace GhostMono
gsErrorReport("Exception: " + except.Message);
out_params.result = GS_Result_t.gsFAILED;
}
-
return out_params;
}
diff --git a/demos/csharp/api/ghostnet.cs b/demos/csharp/api/ghostnet.cs
index f033941f..ab1c44f2 100644
--- a/demos/csharp/api/ghostnet.cs
+++ b/demos/csharp/api/ghostnet.cs
@@ -1,10 +1,24 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.Runtime.InteropServices; /* Marshaling */
using System.ComponentModel; /* Background threading */
using System.Collections.Generic; /* Use of List */
using System.IO; /* Use of path */
using GhostAPI; /* Use of Ghostscript API */
-using ghostnet_wpf_example; /* For Print control */
namespace GhostNET
{
@@ -77,7 +91,7 @@ public class gsEventArgs : EventArgs
}
}
- class ghostsharp
+ class GSNET
{
public class GhostscriptException : Exception
{
@@ -167,7 +181,7 @@ public class gsEventArgs : EventArgs
private int display_page(IntPtr handle, IntPtr device, int copies, int flush)
{
m_params.currpage += 1;
- gsPageRenderedMain(m_pagewidth, m_pageheight, m_pageraster, m_pageptr, m_params);
+ PageRenderedCallBack(m_pagewidth, m_pageheight, m_pageraster, m_pageptr, m_params);
return 0;
}
@@ -220,24 +234,24 @@ public class gsEventArgs : EventArgs
private int stdout_callback(IntPtr handle, IntPtr pointer, int count)
{
- String output = null;
- try
- {
- output = Marshal.PtrToStringAnsi(pointer);
- }
- catch (Exception except)
- {
- var mess = except.Message;
- }
-
- try
- {
- gsIOUpdateMain(output, count);
- }
- catch (Exception excep2)
- {
- var mess = excep2.Message;
- }
+ String output = null;
+ try
+ {
+ output = Marshal.PtrToStringAnsi(pointer);
+ }
+ catch (Exception except)
+ {
+ var mess = except.Message;
+ }
+
+ try
+ {
+ StdIOCallBack(output, count);
+ }
+ catch (Exception excep2)
+ {
+ var mess = excep2.Message;
+ }
/* Callback for progress on XPS creation */
if (m_params.task == GS_Task_t.CREATE_XPS)
@@ -288,7 +302,7 @@ public class gsEventArgs : EventArgs
private int stderr_callback(IntPtr handle, IntPtr pointer, int count)
{
String output = Marshal.PtrToStringAnsi(pointer);
- gsIOUpdateMain(output, count);
+ StdIOCallBack(output, count);
return count;
}
@@ -302,33 +316,31 @@ public class gsEventArgs : EventArgs
int m_pageraster;
gsParamState_t m_displaystate;
-
display_callback_t m_display_callback;
IntPtr ptr_display_struct;
- /* Callbacks to Main */
- internal delegate void gsDLLProblem(String mess);
- internal event gsDLLProblem gsDLLProblemMain;
+ /* Callbacks to application */
+ internal delegate void DLLProblem(String mess);
+ internal event DLLProblem DLLProblemCallBack;
- internal delegate void gsIOCallBackMain(String mess, int len);
- internal event gsIOCallBackMain gsIOUpdateMain;
+ internal delegate void StdIO(String mess, int len);
+ internal event StdIO StdIOCallBack;
- internal delegate void gsCallBackMain(gsEventArgs info);
- internal event gsCallBackMain gsUpdateMain;
+ internal delegate void Progress(gsEventArgs info);
+ internal event Progress ProgressCallBack;
- internal delegate void gsCallBackPageRenderedMain(int width, int height, int raster,
+ internal delegate void PageRendered(int width, int height, int raster,
IntPtr data, gsParamState_t state);
- internal event gsCallBackPageRenderedMain gsPageRenderedMain;
+ internal event PageRendered PageRenderedCallBack;
-
/* From my understanding you cannot pin delegates. These need to be declared
* as members to keep a reference to the delegates and avoid their possible GC.
* since the C# GC has no idea that GS has a reference to these items. While the
- * methods themselves dont move, apparently the address of the translation code
+ * methods themselves don't move, apparently the address of the translation code
* is what is passed, and one of these abstractions can be GC or relocated. */
- ghostapi.gs_stdio_handler raise_stdin;
- ghostapi.gs_stdio_handler raise_stdout;
- ghostapi.gs_stdio_handler raise_stderr;
+ GSAPI.gs_stdio_handler raise_stdin;
+ GSAPI.gs_stdio_handler raise_stdout;
+ GSAPI.gs_stdio_handler raise_stderr;
/* Ghostscript display callback struct */
public struct display_callback_t
@@ -347,7 +359,8 @@ public class gsEventArgs : EventArgs
public display_memalloc_del display_memalloc;
public display_memfree_del display_memfree;
};
- public ghostsharp()
+
+ public GSNET()
{
m_worker = null;
gsInstance = IntPtr.Zero;
@@ -384,7 +397,6 @@ public class gsEventArgs : EventArgs
Marshal.StructureToPtr(m_display_callback, ptr_display_struct, false);
}
-
/* Callback upon worker all done */
private void gsCompleted(object sender, RunWorkerCompletedEventArgs e)
{
@@ -420,7 +432,7 @@ public class gsEventArgs : EventArgs
gsIOUpdateMain(this, bound, bound.Length);
gsIOUpdateMain(this, stack, stack.Length); */
String output = "Ghostscript DLL Invalid Access.";
- gsDLLProblemMain(output);
+ DLLProblemCallBack(output);
return;
}
switch (Params.task)
@@ -452,7 +464,7 @@ public class gsEventArgs : EventArgs
Value = (gsParamState_t)e.Result;
info = new gsEventArgs(true, 100, Value);
}
- gsUpdateMain(info);
+ ProgressCallBack(info);
}
/* Callback as worker progresses */
@@ -460,7 +472,7 @@ public class gsEventArgs : EventArgs
{
/* Callback with progress */
gsEventArgs info = new gsEventArgs(false, e.ProgressPercentage, (gsParamState_t) e.UserState);
- gsUpdateMain(info);
+ ProgressCallBack(info);
}
private gsParamState_t gsFileSync(gsParamState_t in_params)
{
@@ -474,17 +486,17 @@ public class gsEventArgs : EventArgs
try
{
- code = ghostapi.gsapi_new_instance(out gsInstance, IntPtr.Zero);
+ code = GSAPI.gsapi_new_instance(out gsInstance, IntPtr.Zero);
if (code < 0)
{
throw new GhostscriptException("gsFileSync: gsapi_new_instance error");
}
- code = ghostapi.gsapi_set_stdio(gsInstance, stdin_callback, stdout_callback, stderr_callback);
+ code = GSAPI.gsapi_set_stdio(gsInstance, stdin_callback, stdout_callback, stderr_callback);
if (code < 0)
{
throw new GhostscriptException("gsFileSync: gsapi_set_stdio error");
}
- code = ghostapi.gsapi_set_arg_encoding(gsInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
+ code = GSAPI.gsapi_set_arg_encoding(gsInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
if (code < 0)
{
throw new GhostscriptException("gsFileSync: gsapi_set_arg_encoding error");
@@ -505,8 +517,8 @@ public class gsEventArgs : EventArgs
argPtrsStable = GCHandle.Alloc(argPtrs, GCHandleType.Pinned);
fullcommand = "Command Line: " + fullcommand + "\n";
- gsIOUpdateMain(fullcommand, fullcommand.Length);
- code = ghostapi.gsapi_init_with_args(gsInstance, num_params, argPtrsStable.AddrOfPinnedObject());
+ StdIOCallBack(fullcommand, fullcommand.Length);
+ code = GSAPI.gsapi_init_with_args(gsInstance, num_params, argPtrsStable.AddrOfPinnedObject());
if (code < 0 && code != gsConstants.E_QUIT)
{
throw new GhostscriptException("gsFileSync: gsapi_init_with_args error");
@@ -514,23 +526,23 @@ public class gsEventArgs : EventArgs
}
catch (DllNotFoundException except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
in_params.result = GS_Result_t.gsFAILED;
cleanup = false;
}
catch (BadImageFormatException except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
in_params.result = GS_Result_t.gsFAILED;
cleanup = false;
}
catch (GhostscriptException except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
}
catch (Exception except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
}
finally
{
@@ -543,11 +555,11 @@ public class gsEventArgs : EventArgs
}
argPtrsStable.Free();
- int code1 = ghostapi.gsapi_exit(gsInstance);
+ int code1 = GSAPI.gsapi_exit(gsInstance);
if ((code == 0) || (code == gsConstants.E_QUIT))
code = code1;
- ghostapi.gsapi_delete_instance(gsInstance);
+ GSAPI.gsapi_delete_instance(gsInstance);
in_params.return_code = code;
if ((code == 0) || (code == gsConstants.E_QUIT))
@@ -578,24 +590,24 @@ public class gsEventArgs : EventArgs
try
{
- code = ghostapi.gsapi_new_instance(out gsInstance, IntPtr.Zero);
+ code = GSAPI.gsapi_new_instance(out gsInstance, IntPtr.Zero);
if (code < 0)
{
throw new GhostscriptException("gsFileAsync: gsapi_new_instance error");
}
- code = ghostapi.gsapi_set_stdio(gsInstance, stdin_callback, stdout_callback, stderr_callback);
+ code = GSAPI.gsapi_set_stdio(gsInstance, stdin_callback, stdout_callback, stderr_callback);
if (code < 0)
{
throw new GhostscriptException("gsFileAsync: gsapi_set_stdio error");
}
- code = ghostapi.gsapi_set_arg_encoding(gsInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
+ code = GSAPI.gsapi_set_arg_encoding(gsInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
if (code < 0)
{
throw new GhostscriptException("gsFileAsync: gsapi_set_arg_encoding error");
}
/* Now convert our Strings to char* and get pinned handles to these.
- * This keeps the c# GC from moving stuff around on us */
+ * This keeps the c# GC from moving stuff around on us */
String fullcommand = "";
for (int k = 0; k < num_params; k++)
{
@@ -609,8 +621,8 @@ public class gsEventArgs : EventArgs
argPtrsStable = GCHandle.Alloc(argPtrs, GCHandleType.Pinned);
fullcommand = "Command Line: " + fullcommand + "\n";
- gsIOUpdateMain(fullcommand, fullcommand.Length);
- code = ghostapi.gsapi_init_with_args(gsInstance, num_params, argPtrsStable.AddrOfPinnedObject());
+ StdIOCallBack(fullcommand, fullcommand.Length);
+ code = GSAPI.gsapi_init_with_args(gsInstance, num_params, argPtrsStable.AddrOfPinnedObject());
if (code < 0)
{
throw new GhostscriptException("gsFileAsync: gsapi_init_with_args error");
@@ -618,25 +630,25 @@ public class gsEventArgs : EventArgs
}
catch (DllNotFoundException except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
Params.result = GS_Result_t.gsFAILED;
cleanup = false;
e.Result = Params;
}
catch (BadImageFormatException except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
Params.result = GS_Result_t.gsFAILED;
cleanup = false;
e.Result = Params;
}
catch (GhostscriptException except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
}
catch (Exception except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
}
finally
{
@@ -649,11 +661,11 @@ public class gsEventArgs : EventArgs
}
argPtrsStable.Free();
- int code1 = ghostapi.gsapi_exit(gsInstance);
+ int code1 = GSAPI.gsapi_exit(gsInstance);
if ((code == 0) || (code == gsConstants.E_QUIT))
code = code1;
- ghostapi.gsapi_delete_instance(gsInstance);
+ GSAPI.gsapi_delete_instance(gsInstance);
Params.return_code = code;
if ((code == 0) || (code == gsConstants.E_QUIT))
@@ -697,24 +709,24 @@ public class gsEventArgs : EventArgs
fs = new FileStream(Params.inputfile, FileMode.Open);
var len = (int)fs.Length;
- code = ghostapi.gsapi_new_instance(out gsInstance, IntPtr.Zero);
+ code = GSAPI.gsapi_new_instance(out gsInstance, IntPtr.Zero);
if (code < 0)
{
throw new GhostscriptException("gsBytesAsync: gsapi_new_instance error");
}
- code = ghostapi.gsapi_set_stdio(gsInstance, stdin_callback, stdout_callback, stderr_callback);
+ code = GSAPI.gsapi_set_stdio(gsInstance, stdin_callback, stdout_callback, stderr_callback);
if (code < 0)
{
throw new GhostscriptException("gsBytesAsync: gsapi_set_stdio error");
}
- code = ghostapi.gsapi_set_arg_encoding(gsInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
+ code = GSAPI.gsapi_set_arg_encoding(gsInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
if (code < 0)
{
throw new GhostscriptException("gsBytesAsync: gsapi_set_arg_encoding error");
}
/* Now convert our Strings to char* and get pinned handles to these.
- * This keeps the c# GC from moving stuff around on us */
+ * This keeps the c# GC from moving stuff around on us */
String fullcommand = "";
for (int k = 0; k < num_params; k++)
{
@@ -728,8 +740,8 @@ public class gsEventArgs : EventArgs
argPtrsStable = GCHandle.Alloc(argPtrs, GCHandleType.Pinned);
fullcommand = "Command Line: " + fullcommand + "\n";
- gsIOUpdateMain(fullcommand, fullcommand.Length);
- code = ghostapi.gsapi_init_with_args(gsInstance, num_params, argPtrsStable.AddrOfPinnedObject());
+ StdIOCallBack(fullcommand, fullcommand.Length);
+ code = GSAPI.gsapi_init_with_args(gsInstance, num_params, argPtrsStable.AddrOfPinnedObject());
if (code < 0)
{
throw new GhostscriptException("gsBytesAsync: gsapi_init_with_args error");
@@ -748,7 +760,7 @@ public class gsEventArgs : EventArgs
int total = 0;
int ret_code;
- ret_code = ghostapi.gsapi_run_string_begin(gsInstance, 0, ref exitcode);
+ ret_code = GSAPI.gsapi_run_string_begin(gsInstance, 0, ref exitcode);
if (exitcode < 0)
{
code = exitcode;
@@ -757,7 +769,7 @@ public class gsEventArgs : EventArgs
while ((count = fs.Read(Buffer, 0, gsConstants.GS_READ_BUFFER)) > 0)
{
- ret_code = ghostapi.gsapi_run_string_continue(gsInstance, FeedPtr, count, 0, ref exitcode);
+ ret_code = GSAPI.gsapi_run_string_continue(gsInstance, FeedPtr, count, 0, ref exitcode);
if (exitcode < 0)
{
code = exitcode;
@@ -773,7 +785,7 @@ public class gsEventArgs : EventArgs
break;
}
}
- ret_code = ghostapi.gsapi_run_string_end(gsInstance, 0, ref exitcode);
+ ret_code = GSAPI.gsapi_run_string_end(gsInstance, 0, ref exitcode);
if (exitcode < 0)
{
code = exitcode;
@@ -783,26 +795,26 @@ public class gsEventArgs : EventArgs
}
catch (DllNotFoundException except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
Params.result = GS_Result_t.gsFAILED;
cleanup = false;
e.Result = Params;
}
catch (BadImageFormatException except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
Params.result = GS_Result_t.gsFAILED;
cleanup = false;
e.Result = Params;
}
catch (GhostscriptException except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
}
catch (Exception except)
{
/* Could be a file io issue */
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
Params.result = GS_Result_t.gsFAILED;
cleanup = false;
e.Result = Params;
@@ -822,11 +834,11 @@ public class gsEventArgs : EventArgs
Feed.Free();
/* gs clean up */
- int code1 = ghostapi.gsapi_exit(gsInstance);
+ int code1 = GSAPI.gsapi_exit(gsInstance);
if ((code == 0) || (code == gsConstants.E_QUIT))
code = code1;
- ghostapi.gsapi_delete_instance(gsInstance);
+ GSAPI.gsapi_delete_instance(gsInstance);
Params.return_code = code;
if ((code == 0) || (code == gsConstants.E_QUIT))
@@ -856,7 +868,7 @@ public class gsEventArgs : EventArgs
GCHandle pinParamLast = GCHandle.Alloc(param_last, GCHandleType.Pinned);
GCHandle firstValue = GCHandle.Alloc(first, GCHandleType.Pinned);
GCHandle lastValue = GCHandle.Alloc(last, GCHandleType.Pinned);
- code = ghostapi.gsapi_set_param(dispInstance, pinParamFirst.AddrOfPinnedObject(),
+ code = GSAPI.gsapi_set_param(dispInstance, pinParamFirst.AddrOfPinnedObject(),
firstValue.AddrOfPinnedObject(), gs_set_param_type.gs_spt_int | gs_set_param_type.gs_spt_more_to_come);
if (code < 0)
{
@@ -868,10 +880,10 @@ public class gsEventArgs : EventArgs
}
if (delay)
- code = ghostapi.gsapi_set_param(dispInstance, pinParamLast.AddrOfPinnedObject(),
+ code = GSAPI.gsapi_set_param(dispInstance, pinParamLast.AddrOfPinnedObject(),
lastValue.AddrOfPinnedObject(), gs_set_param_type.gs_spt_int | gs_set_param_type.gs_spt_more_to_come);
else
- code = ghostapi.gsapi_set_param(dispInstance, pinParamLast.AddrOfPinnedObject(),
+ code = GSAPI.gsapi_set_param(dispInstance, pinParamLast.AddrOfPinnedObject(),
lastValue.AddrOfPinnedObject(), gs_set_param_type.gs_spt_int);
pinParamFirst.Free();
@@ -901,7 +913,7 @@ public class gsEventArgs : EventArgs
GCHandle pinParamGraph = GCHandle.Alloc(param_graph, GCHandleType.Pinned);
GCHandle valueParam = GCHandle.Alloc(value, GCHandleType.Pinned);
- code = ghostapi.gsapi_set_param(dispInstance, pinParamText.AddrOfPinnedObject(),
+ code = GSAPI.gsapi_set_param(dispInstance, pinParamText.AddrOfPinnedObject(),
valueParam.AddrOfPinnedObject(), gs_set_param_type.gs_spt_int | gs_set_param_type.gs_spt_more_to_come);
if (code < 0)
{
@@ -911,10 +923,10 @@ public class gsEventArgs : EventArgs
throw new GhostscriptException("SetAA: gsapi_set_param error");
}
if (delay)
- code = ghostapi.gsapi_set_param(dispInstance, pinParamGraph.AddrOfPinnedObject(),
+ code = GSAPI.gsapi_set_param(dispInstance, pinParamGraph.AddrOfPinnedObject(),
valueParam.AddrOfPinnedObject(), gs_set_param_type.gs_spt_int | gs_set_param_type.gs_spt_more_to_come);
else
- code = ghostapi.gsapi_set_param(dispInstance, pinParamGraph.AddrOfPinnedObject(),
+ code = GSAPI.gsapi_set_param(dispInstance, pinParamGraph.AddrOfPinnedObject(),
valueParam.AddrOfPinnedObject(), gs_set_param_type.gs_spt_int);
pinParamText.Free();
@@ -938,10 +950,10 @@ public class gsEventArgs : EventArgs
GCHandle valueParam = GCHandle.Alloc(value, GCHandleType.Pinned);
if (delay)
- code = ghostapi.gsapi_set_param(dispInstance, pinParam.AddrOfPinnedObject(),
+ code = GSAPI.gsapi_set_param(dispInstance, pinParam.AddrOfPinnedObject(),
valueParam.AddrOfPinnedObject(), gs_set_param_type.gs_spt_parsed | gs_set_param_type.gs_spt_more_to_come);
else
- code = ghostapi.gsapi_set_param(dispInstance, pinParam.AddrOfPinnedObject(),
+ code = GSAPI.gsapi_set_param(dispInstance, pinParam.AddrOfPinnedObject(),
valueParam.AddrOfPinnedObject(), gs_set_param_type.gs_spt_parsed);
pinParam.Free();
@@ -971,7 +983,7 @@ public class gsEventArgs : EventArgs
{
gsparams.result = GS_Result_t.gsFAILED;
e.Result = gsparams;
- gsDLLProblemMain("Failure: Display device not initialized");
+ DLLProblemCallBack("Failure: Display device not initialized");
return;
}
@@ -1040,7 +1052,7 @@ public class gsEventArgs : EventArgs
byte[] fname = System.Text.Encoding.UTF8.GetBytes(fileName + "\0");
GCHandle pinfname = GCHandle.Alloc(fname, GCHandleType.Pinned);
- code = ghostapi.gsapi_run_file(dispInstance, pinfname.AddrOfPinnedObject(), 0, ref exitcode);
+ code = GSAPI.gsapi_run_file(dispInstance, pinfname.AddrOfPinnedObject(), 0, ref exitcode);
pinfname.Free();
if (exitcode < 0)
@@ -1051,7 +1063,7 @@ public class gsEventArgs : EventArgs
catch (GhostscriptException except)
{
gsparams.result = GS_Result_t.gsFAILED;
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
}
finally
{
@@ -1078,7 +1090,7 @@ public class gsEventArgs : EventArgs
{
gsparams.result = GS_Result_t.gsFAILED;
e.Result = gsparams;
- gsDLLProblemMain("Failure: Display device not initialized");
+ DLLProblemCallBack("Failure: Display device not initialized");
return;
}
@@ -1096,8 +1108,8 @@ public class gsEventArgs : EventArgs
argPtrsStable = GCHandle.Alloc(argPtrs, GCHandleType.Pinned);
fullcommand = "Command Line: " + fullcommand + "\n";
- gsIOUpdateMain(fullcommand, fullcommand.Length);
- code = ghostapi.gsapi_init_with_args(dispInstance, num_params, argPtrsStable.AddrOfPinnedObject());
+ StdIOCallBack(fullcommand, fullcommand.Length);
+ code = GSAPI.gsapi_init_with_args(dispInstance, num_params, argPtrsStable.AddrOfPinnedObject());
if (code < 0)
{
throw new GhostscriptException("DisplayDeviceAsync: gsapi_init_with_args error");
@@ -1106,26 +1118,26 @@ public class gsEventArgs : EventArgs
catch (DllNotFoundException except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
gsparams.result = GS_Result_t.gsFAILED;
cleanup = false;
e.Result = gsparams;
}
catch (BadImageFormatException except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
gsparams.result = GS_Result_t.gsFAILED;
cleanup = false;
e.Result = gsparams;
}
catch (GhostscriptException except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
gsparams.result = GS_Result_t.gsFAILED;
}
catch (Exception except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
gsparams.result = GS_Result_t.gsFAILED;
}
finally
@@ -1208,7 +1220,7 @@ public class gsEventArgs : EventArgs
try
{
- if (ghostapi.gsapi_revision(ref vers, size) == 0)
+ if (GSAPI.gsapi_revision(ref vers, size) == 0)
{
String product = Marshal.PtrToStringAnsi(vers.product);
String output;
@@ -1223,7 +1235,7 @@ public class gsEventArgs : EventArgs
}
catch (Exception except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
}
return null;
}
@@ -1256,7 +1268,8 @@ public class gsEventArgs : EventArgs
/* Launch a thread to create XPS document for windows printing */
public gsStatus CreateXPS(String fileName, int resolution, int num_pages,
- Print printsettings, int firstpage, int lastpage)
+ double width, double height, bool fit_page, int firstpage,
+ int lastpage)
{
gsParamState_t gsparams = new gsParamState_t();
gsparams.args = new List<string>();
@@ -1270,32 +1283,13 @@ public class gsEventArgs : EventArgs
gsparams.args.Add("-dFirstPage=" + firstpage.ToString());
gsparams.args.Add("-dLastPage=" + lastpage.ToString());
- if (printsettings != null)
- {
- double paperheight;
- double paperwidth;
+ gsparams.args.Add("-dDEVICEWIDTHPOINTS=" + Convert.ToInt32(width));
+ gsparams.args.Add("-dDEVICEHEIGHTPOINTS=" + Convert.ToInt32(height));
+ gsparams.args.Add("-dFIXEDMEDIA");
- if (printsettings.m_pagedetails.Landscape == true)
- {
- paperheight = printsettings.m_pagedetails.PrintableArea.Width;
- paperwidth = printsettings.m_pagedetails.PrintableArea.Height;
- }
- else
- {
- paperheight = printsettings.m_pagedetails.PrintableArea.Height;
- paperwidth = printsettings.m_pagedetails.PrintableArea.Width;
- }
-
- double width = paperwidth * 72.0 / 100.0;
- double height = paperheight * 72.0 / 100.0;
- gsparams.args.Add("-dDEVICEWIDTHPOINTS=" + width);
- gsparams.args.Add("-dDEVICEHEIGHTPOINTS=" + height);
- gsparams.args.Add("-dFIXEDMEDIA");
+ if (fit_page)
+ gsparams.args.Add("-dFitPage");
- /* Scale and translate and rotate if needed */
- if (printsettings.xaml_autofit.IsChecked == true)
- gsparams.args.Add("-dFitPage");
- }
gsparams.outputfile = Path.GetTempFileName();
gsparams.args.Add("-o");
gsparams.args.Add(gsparams.outputfile);
@@ -1326,7 +1320,7 @@ public class gsEventArgs : EventArgs
/* Run a file with the display device
* public gsStatus gsDsiplayDeviceRunFile() */
- public gsStatus gsDisplayDeviceRunFile(String fileName, double zoom, bool aa, int firstpage, int lastpage)
+ public gsStatus DisplayDeviceRunFile(String fileName, double zoom, bool aa, int firstpage, int lastpage)
{
gsParamState_t gsparams = new gsParamState_t();
@@ -1347,13 +1341,14 @@ public class gsEventArgs : EventArgs
/* Launch a thread rendering all the pages with the display device
* to collect thumbnail images via init_with_args. */
- public gsStatus gsDisplayDeviceRenderThumbs(String fileName, double zoom, bool aa, GS_Task_t task)
+ public gsStatus DisplayDeviceRenderThumbs(String fileName, double zoom, bool aa)
{
gsParamState_t gsparams = new gsParamState_t();
int format = (gsConstants.DISPLAY_COLORS_RGB |
gsConstants.DISPLAY_DEPTH_8 |
gsConstants.DISPLAY_LITTLEENDIAN);
int resolution = (int)(72.0 * zoom + 0.5);
+ GS_Task_t task = GS_Task_t.DISPLAY_DEV_THUMBS;
gsparams.args = new List<string>();
gsparams.args.Add("gs");
@@ -1375,8 +1370,8 @@ public class gsEventArgs : EventArgs
}
/* Launch a thread rendering a set of pages with the display device. For use with languages
- that can be indexed via pages which include PDF and XPS */
- public gsStatus gsDisplayDeviceRenderPages(String fileName, int first_page, int last_page, double zoom)
+ * that can be indexed via pages which include PDF and XPS */
+ public gsStatus DisplayDeviceRenderPages(String fileName, int first_page, int last_page, double zoom)
{
gsParamState_t gsparams = new gsParamState_t();
int format = (gsConstants.DISPLAY_COLORS_RGB |
@@ -1411,25 +1406,25 @@ public class gsEventArgs : EventArgs
try
{
- code = ghostapi.gsapi_new_instance(out dispInstance, IntPtr.Zero);
+ code = GSAPI.gsapi_new_instance(out dispInstance, IntPtr.Zero);
if (code < 0)
{
throw new GhostscriptException("DisplayDeviceOpen: gsapi_new_instance error");
}
- code = ghostapi.gsapi_set_stdio(dispInstance, raise_stdin, raise_stdout, raise_stderr);
+ code = GSAPI.gsapi_set_stdio(dispInstance, raise_stdin, raise_stdout, raise_stderr);
if (code < 0)
{
throw new GhostscriptException("DisplayDeviceOpen: gsapi_set_stdio error");
}
- code = ghostapi.gsapi_set_arg_encoding(dispInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
+ code = GSAPI.gsapi_set_arg_encoding(dispInstance, (int)gsEncoding.GS_ARG_ENCODING_UTF8);
if (code < 0)
{
throw new GhostscriptException("DisplayDeviceOpen: gsapi_set_arg_encoding error");
}
- code = ghostapi.gsapi_set_display_callback(dispInstance, ptr_display_struct);
+ code = GSAPI.gsapi_set_display_callback(dispInstance, ptr_display_struct);
if (code < 0)
{
throw new GhostscriptException("DisplayDeviceOpen: gsapi_set_display_callback error");
@@ -1438,28 +1433,28 @@ public class gsEventArgs : EventArgs
catch (DllNotFoundException except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
gsparams.result = GS_Result_t.gsFAILED;
}
catch (BadImageFormatException except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
gsparams.result = GS_Result_t.gsFAILED;
}
catch (GhostscriptException except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
gsparams.result = GS_Result_t.gsFAILED;
if (dispInstance != IntPtr.Zero)
- ghostapi.gsapi_delete_instance(dispInstance);
+ GSAPI.gsapi_delete_instance(dispInstance);
dispInstance = IntPtr.Zero;
}
catch (Exception except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
gsparams.result = GS_Result_t.gsFAILED;
if (dispInstance != IntPtr.Zero)
- ghostapi.gsapi_delete_instance(dispInstance);
+ GSAPI.gsapi_delete_instance(dispInstance);
dispInstance = IntPtr.Zero;
}
return gsparams;
@@ -1475,19 +1470,19 @@ public class gsEventArgs : EventArgs
try
{
- code = ghostapi.gsapi_exit(dispInstance);
+ code = GSAPI.gsapi_exit(dispInstance);
if (code < 0)
{
out_params.result = GS_Result_t.gsFAILED;
throw new GhostscriptException("DisplayDeviceClose: gsapi_exit error");
}
- ghostapi.gsapi_delete_instance(dispInstance);
+ GSAPI.gsapi_delete_instance(dispInstance);
}
catch (Exception except)
{
- gsDLLProblemMain("Exception: " + except.Message);
+ DLLProblemCallBack("Exception: " + except.Message);
out_params.result = GS_Result_t.gsFAILED;
}
diff --git a/demos/csharp/linux/gs_mono.sln b/demos/csharp/linux/gs_mono.sln
deleted file mode 100644
index c3a015a1..00000000
--- a/demos/csharp/linux/gs_mono.sln
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gtk_viewer", "gtk_viewer\gtk_viewer.csproj", "{8941969C-A209-4109-AF7B-E4CF9D309B5B}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|x86 = Debug|x86
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {8941969C-A209-4109-AF7B-E4CF9D309B5B}.Debug|x86.ActiveCfg = Debug|x86
- {8941969C-A209-4109-AF7B-E4CF9D309B5B}.Debug|x86.Build.0 = Debug|x86
- {8941969C-A209-4109-AF7B-E4CF9D309B5B}.Release|x86.ActiveCfg = Release|x86
- {8941969C-A209-4109-AF7B-E4CF9D309B5B}.Release|x86.Build.0 = Release|x86
- EndGlobalSection
-EndGlobal
diff --git a/demos/csharp/linux/gtk_viewer/Properties/AssemblyInfo.cs b/demos/csharp/linux/gtk_viewer/Properties/AssemblyInfo.cs
deleted file mode 100644
index a9d0d285..00000000
--- a/demos/csharp/linux/gtk_viewer/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-
-// Information about this assembly is defined by the following attributes.
-// Change them to the values specific to your project.
-
-[assembly: AssemblyTitle("gs_mono_example")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("")]
-[assembly: AssemblyCopyright("${AuthorCopyright}")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
-// The form "{Major}.{Minor}.*" will automatically update the build and revision,
-// and "{Major}.{Minor}.{Build}.*" will update just the revision.
-
-[assembly: AssemblyVersion("1.0.*")]
-
-// The following attributes are used to specify the signing key for the assembly,
-// if desired. See the Mono documentation for more information about signing.
-
-//[assembly: AssemblyDelaySign(false)]
-//[assembly: AssemblyKeyFile("")]
diff --git a/demos/csharp/linux/gtk_viewer/gtk-gui/generated.cs b/demos/csharp/linux/gtk_viewer/gtk-gui/generated.cs
deleted file mode 100644
index 4842e95d..00000000
--- a/demos/csharp/linux/gtk_viewer/gtk-gui/generated.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-
-// This file has been generated by the GUI designer. Do not modify.
-namespace Stetic
-{
- internal class Gui
- {
- private static bool initialized;
-
- internal static void Initialize(Gtk.Widget iconRenderer)
- {
- if ((Stetic.Gui.initialized == false))
- {
- Stetic.Gui.initialized = true;
- }
- }
- }
-
- internal class ActionGroups
- {
- public static Gtk.ActionGroup GetActionGroup(System.Type type)
- {
- return Stetic.ActionGroups.GetActionGroup(type.FullName);
- }
-
- public static Gtk.ActionGroup GetActionGroup(string name)
- {
- return null;
- }
- }
-}
diff --git a/demos/csharp/linux/gtk_viewer/gtk-gui/gtk_viewer.src.gsOutput.cs b/demos/csharp/linux/gtk_viewer/gtk-gui/gtk_viewer.src.gsOutput.cs
deleted file mode 100644
index 0eab65c6..00000000
--- a/demos/csharp/linux/gtk_viewer/gtk-gui/gtk_viewer.src.gsOutput.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-
-namespace gtk_viewer.src
-{
- public partial class gsOutput
- {
- private void Build()
- {
- }
- }
-}
diff --git a/demos/csharp/linux/gtk_viewer/gtk-gui/gui.stetic b/demos/csharp/linux/gtk_viewer/gtk-gui/gui.stetic
deleted file mode 100644
index 172ba497..00000000
--- a/demos/csharp/linux/gtk_viewer/gtk-gui/gui.stetic
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<stetic-interface>
- <configuration>
- <images-root-path>..</images-root-path>
- <target-gtk-version>2.12</target-gtk-version>
- </configuration>
- <import>
- <widget-library name="../bin/Debug/gtk_viewer.exe" internal="true" />
- </import>
- <widget class="Gtk.Window" id="gtk_viewer.src.gsOutput" design-size="400 300">
- <property name="MemberName" />
- <property name="Title" translatable="yes">gsOutput</property>
- <property name="WindowPosition">CenterOnParent</property>
- <child>
- <placeholder />
- </child>
- </widget>
-</stetic-interface> \ No newline at end of file
diff --git a/demos/csharp/linux/gtk_viewer/gtk_viewer.csproj b/demos/csharp/linux/gtk_viewer/gtk_viewer.csproj
deleted file mode 100644
index ee512951..00000000
--- a/demos/csharp/linux/gtk_viewer/gtk_viewer.csproj
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
- <ProjectGuid>{8941969C-A209-4109-AF7B-E4CF9D309B5B}</ProjectGuid>
- <OutputType>WinExe</OutputType>
- <RootNamespace>gtk_viewer</RootNamespace>
- <AssemblyName>gtk_viewer</AssemblyName>
- <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug</OutputPath>
- <DefineConstants>DEBUG;MONO</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <PlatformTarget>x64</PlatformTarget>
- <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
- <Optimize>true</Optimize>
- <OutputPath>bin\Release</OutputPath>
- <DefineConstants>MONO</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <PlatformTarget>x64</PlatformTarget>
- <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="Mono.Posix" />
- <Reference Include="System.Drawing" />
- <Reference Include="Mono.CSharp" />
- <Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
- <Package>gtk-sharp-2.0</Package>
- </Reference>
- <Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
- <Package>gtk-sharp-2.0</Package>
- </Reference>
- <Reference Include="glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
- <Package>glib-sharp-2.0</Package>
- </Reference>
- </ItemGroup>
- <ItemGroup>
- <EmbeddedResource Include="gtk-gui\gui.stetic">
- <LogicalName>gui.stetic</LogicalName>
- </EmbeddedResource>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="gtk-gui\generated.cs" />
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="src\MainWindow.cs" />
- <Compile Include="src\Program.cs" />
- <Compile Include="src\MainThumbRendering.cs" />
- <Compile Include="src\DocPage.cs" />
- <Compile Include="src\MainRender.cs" />
- <Compile Include="src\TempFile.cs" />
- <Compile Include="src\MainZoom.cs" />
- <Compile Include="..\..\api\ghostapi.cs">
- <Link>src\ghostapi.cs</Link>
- </Compile>
- <Compile Include="src\gsOutput.cs" />
- <Compile Include="gtk-gui\gtk_viewer.src.gsOutput.cs" />
- <Compile Include="..\..\api\ghostmono.cs">
- <Link>src\ghostmono.cs</Link>
- </Compile>
- </ItemGroup>
- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
- <Import Project="packages\GtkSharp.3.22.25.98\build\GtkSharp.targets" Condition="Exists('packages\GtkSharp.3.22.25.98\build\GtkSharp.targets')" />
-</Project> \ No newline at end of file
diff --git a/demos/csharp/linux/gtk_viewer/gtk_viewer.sln b/demos/csharp/linux/gtk_viewer/gtk_viewer.sln
deleted file mode 100644
index 229145da..00000000
--- a/demos/csharp/linux/gtk_viewer/gtk_viewer.sln
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gtk_viewer", "gtk_viewer.csproj", "{8941969C-A209-4109-AF7B-E4CF9D309B5B}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|x86 = Debug|x86
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {8941969C-A209-4109-AF7B-E4CF9D309B5B}.Debug|x86.ActiveCfg = Debug|x86
- {8941969C-A209-4109-AF7B-E4CF9D309B5B}.Debug|x86.Build.0 = Debug|x86
- {8941969C-A209-4109-AF7B-E4CF9D309B5B}.Release|x86.ActiveCfg = Release|x86
- {8941969C-A209-4109-AF7B-E4CF9D309B5B}.Release|x86.Build.0 = Release|x86
- EndGlobalSection
-EndGlobal
diff --git a/demos/csharp/linux/gtk_viewer/make.sh b/demos/csharp/linux/gtk_viewer/make.sh
new file mode 100755
index 00000000..e7d86193
--- /dev/null
+++ b/demos/csharp/linux/gtk_viewer/make.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+# Build for gsmono gtk sample viewer
+# Note first do "make so" in ghostpdl
+# root directory to create libgpdl.so
+
+cp ../../../../sobin/libgpdl.so bin/libgpdl.so
+mcs -define:MONO -pkg:gtk-sharp-2.0 \
+ src/DocPage.cs \
+ src/gsOutput.cs \
+ src/MainRender.cs \
+ src/MainThumbRendering.cs \
+ src/MainWindow.cs \
+ src/MainZoom.cs \
+ src/Program.cs \
+ src/TempFile.cs \
+ ../../api/ghostapi.cs \
+ ../../api/ghostmono.cs \
+ -out:bin/gsMonoGtkViewer.exe
diff --git a/demos/csharp/linux/gtk_viewer/src/DocPage.cs b/demos/csharp/linux/gtk_viewer/src/DocPage.cs
index d1cb5493..13c41b9f 100644
--- a/demos/csharp/linux/gtk_viewer/src/DocPage.cs
+++ b/demos/csharp/linux/gtk_viewer/src/DocPage.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.ComponentModel;
using System.Collections.ObjectModel;
@@ -105,4 +120,4 @@ namespace gs_mono_example
{
}
}
-}
+} \ No newline at end of file
diff --git a/demos/csharp/linux/gtk_viewer/src/MainRender.cs b/demos/csharp/linux/gtk_viewer/src/MainRender.cs
index e4749f1c..f8c0d2e0 100644
--- a/demos/csharp/linux/gtk_viewer/src/MainRender.cs
+++ b/demos/csharp/linux/gtk_viewer/src/MainRender.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.Runtime;
using System.Runtime.InteropServices;
using GhostMono;
@@ -7,8 +22,6 @@ namespace gs_mono_example
{
public partial class MainWindow
{
- int m_firstpage;
- int m_lastpage;
int m_current_page;
Gtk.TreeIter m_tree_iter;
@@ -28,8 +41,6 @@ namespace gs_mono_example
return;
m_busy_render = true;
- m_firstpage = first_page;
- m_lastpage = last_page;
//m_ghostscript.gsDisplayDeviceRender(m_currfile, first_page + 1, last_page + 1, 1.0);
}
@@ -97,7 +108,7 @@ namespace gs_mono_example
RemoveProgressBar();
m_file_open = true;
- m_ghostscript.gsPageRenderedMain -= new ghostsharp.gsCallBackPageRenderedMain(gsPageRendered);
+ m_ghostscript.PageRenderedCallBack -= new GSMONO.PageRendered(gsPageRendered);
m_GtkaaCheck.Sensitive = true;
m_GtkZoomMinus.Sensitive = true;
m_GtkZoomPlus.Sensitive = true;
@@ -106,13 +117,12 @@ namespace gs_mono_example
/* Render all pages full resolution */
private void RenderMainFirst()
{
- m_firstpage = 1;
m_current_page = 0;
m_GtkimageStoreMain.GetIterFirst(out m_tree_iter);
m_busy_render = true;
- m_ghostscript.gsPageRenderedMain += new ghostsharp.gsCallBackPageRenderedMain(gsPageRendered);
+ m_ghostscript.PageRenderedCallBack += new GSMONO.PageRendered(gsPageRendered);
AddProgressBar("Rendering Pages");
- m_ghostscript.gsDisplayDeviceRenderAll(m_currfile, m_doczoom, m_aa, GS_Task_t.DISPLAY_DEV_NON_PDF);
+ m_ghostscript.DisplayDeviceRenderAll(m_currfile, m_doczoom, m_aa, GS_Task_t.DISPLAY_DEV_NON_PDF);
}
/* Render all, but only if not already busy, called via zoom or aa changes */
diff --git a/demos/csharp/linux/gtk_viewer/src/MainThumbRendering.cs b/demos/csharp/linux/gtk_viewer/src/MainThumbRendering.cs
index 0d64fa13..9e1b0bcc 100644
--- a/demos/csharp/linux/gtk_viewer/src/MainThumbRendering.cs
+++ b/demos/csharp/linux/gtk_viewer/src/MainThumbRendering.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using GhostMono;
@@ -30,7 +45,7 @@ namespace gs_mono_example
private void ThumbsDone()
{
m_GtkProgressBar.Fraction = 1.0;
- m_ghostscript.gsPageRenderedMain -= new ghostsharp.gsCallBackPageRenderedMain(gsThumbRendered);
+ m_ghostscript.PageRenderedCallBack -= new GSMONO.PageRendered(gsThumbRendered);
m_numpages = m_thumbnails.Count;
if (m_numpages < 1)
{
@@ -82,10 +97,10 @@ namespace gs_mono_example
private void RenderThumbs()
{
AddProgressBar("Rendering Thumbs");
- m_ghostscript.gsPageRenderedMain +=
- new ghostsharp.gsCallBackPageRenderedMain(gsThumbRendered);
- m_ghostscript.gsDisplayDeviceRenderAll(m_currfile,
- Constants.SCALE_THUMB, false, GS_Task_t.DISPLAY_DEV_THUMBS_NON_PDF);
+ m_ghostscript.PageRenderedCallBack +=
+ new GSMONO.PageRendered(gsThumbRendered);
+ m_ghostscript.DisplayDeviceRenderThumbs(m_currfile,
+ Constants.SCALE_THUMB, false);
}
}
} \ No newline at end of file
diff --git a/demos/csharp/linux/gtk_viewer/src/MainWindow.cs b/demos/csharp/linux/gtk_viewer/src/MainWindow.cs
index f621cd47..5e8941f8 100644
--- a/demos/csharp/linux/gtk_viewer/src/MainWindow.cs
+++ b/demos/csharp/linux/gtk_viewer/src/MainWindow.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.Collections.Generic;
using Gtk;
using GhostMono;
@@ -38,7 +53,7 @@ namespace gs_mono_example
public partial class MainWindow : Gtk.Window
{
- ghostsharp m_ghostscript;
+ GSMONO m_ghostscript;
bool m_file_open;
String m_currfile;
String m_extension;
@@ -107,10 +122,10 @@ namespace gs_mono_example
public MainWindow() : base(Gtk.WindowType.Toplevel)
{
/* Set up ghostscript calls for progress update */
- m_ghostscript = new ghostsharp();
- m_ghostscript.gsUpdateMain += new ghostsharp.gsCallBackMain(gsProgress);
- m_ghostscript.gsIOUpdateMain += new ghostsharp.gsIOCallBackMain(gsIO);
- m_ghostscript.gsDLLProblemMain += new ghostsharp.gsDLLProblem(gsDLL);
+ m_ghostscript = new GSMONO();
+ m_ghostscript.ProgressCallBack += new GSMONO.Progress(gsProgress);
+ m_ghostscript.StdIOCallBack += new GSMONO.StdIO(gsIO);
+ m_ghostscript.DLLProblemCallBack += new GSMONO.DLLProblem(gsDLL);
DeleteEvent += delegate { Application.Quit(); };
@@ -546,7 +561,7 @@ namespace gs_mono_example
System.IO.File.Delete(m_currfile);
}
- var res = System.IO.File.Exists(tempfile.Filename);
+ System.IO.File.Exists(tempfile.Filename);
System.IO.File.Copy(tempfile.Filename, dialog.Filename);
}
catch (Exception except)
@@ -607,7 +622,6 @@ namespace gs_mono_example
/* launch a new process */
string path = System.Reflection.Assembly.GetExecutingAssembly().Location;
- Process p = new Process();
try
{
String name = dialog.Filename;
@@ -710,4 +724,4 @@ namespace gs_mono_example
m_tempfiles.Clear();
}
}
-}
+} \ No newline at end of file
diff --git a/demos/csharp/linux/gtk_viewer/src/MainZoom.cs b/demos/csharp/linux/gtk_viewer/src/MainZoom.cs
index 5d415351..1177b5b0 100644
--- a/demos/csharp/linux/gtk_viewer/src/MainZoom.cs
+++ b/demos/csharp/linux/gtk_viewer/src/MainZoom.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.Text.RegularExpressions;
namespace gs_mono_example
diff --git a/demos/csharp/linux/gtk_viewer/src/Program.cs b/demos/csharp/linux/gtk_viewer/src/Program.cs
index 7446f0bc..c6862901 100644
--- a/demos/csharp/linux/gtk_viewer/src/Program.cs
+++ b/demos/csharp/linux/gtk_viewer/src/Program.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using Gtk;
namespace gs_mono_example
@@ -22,4 +37,4 @@ namespace gs_mono_example
}
}
}
-}
+} \ No newline at end of file
diff --git a/demos/csharp/linux/gtk_viewer/src/TempFile.cs b/demos/csharp/linux/gtk_viewer/src/TempFile.cs
index c6c313de..b233b435 100644
--- a/demos/csharp/linux/gtk_viewer/src/TempFile.cs
+++ b/demos/csharp/linux/gtk_viewer/src/TempFile.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.IO;
/* A class to help in the management of temp files */
@@ -31,4 +46,4 @@ namespace gs_mono_example
}
}
}
-}
+} \ No newline at end of file
diff --git a/demos/csharp/linux/gtk_viewer/src/gsOutput.cs b/demos/csharp/linux/gtk_viewer/src/gsOutput.cs
index c74dc7a3..0952ee34 100644
--- a/demos/csharp/linux/gtk_viewer/src/gsOutput.cs
+++ b/demos/csharp/linux/gtk_viewer/src/gsOutput.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using Gtk;
namespace gs_mono_example
@@ -38,4 +53,4 @@ namespace gs_mono_example
}
}
-}
+} \ No newline at end of file
diff --git a/demos/csharp/windows/ghostnet_wpf_example/App.xaml.cs b/demos/csharp/windows/ghostnet_wpf_example/App.xaml.cs
index 79444fe4..7ca46e73 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/App.xaml.cs
+++ b/demos/csharp/windows/ghostnet_wpf_example/App.xaml.cs
@@ -1,9 +1,18 @@
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.Data;
-using System.Linq;
-using System.Threading.Tasks;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
using System.Windows;
namespace ghostnet_wpf_example
diff --git a/demos/csharp/windows/ghostnet_wpf_example/DocPage.cs b/demos/csharp/windows/ghostnet_wpf_example/DocPage.cs
index 93316d9d..b529b3c1 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/DocPage.cs
+++ b/demos/csharp/windows/ghostnet_wpf_example/DocPage.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.ComponentModel;
using System.Windows.Media.Imaging;
using System.Collections.ObjectModel;
@@ -94,7 +109,7 @@ namespace ghostnet_wpf_example
this.zoom = 0;
this.bitmap = null;
this.pagenum = -1;
- this.pagename = "";
+ this.pagename = " ";
}
public DocPage(int Height, int Width, double Zoom, BitmapSource BitMap, int PageNum, bool AA)
diff --git a/demos/csharp/windows/ghostnet_wpf_example/MainPrint.cs b/demos/csharp/windows/ghostnet_wpf_example/MainPrint.cs
index 40855ba0..28c5c6bb 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/MainPrint.cs
+++ b/demos/csharp/windows/ghostnet_wpf_example/MainPrint.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.Windows;
using System.Collections.Generic;
using System.Threading;
@@ -52,18 +67,41 @@ namespace ghostnet_wpf_example
string extension = System.IO.Path.GetExtension(m_currfile);
/* If file is already xps then gs need not do this */
- /* We are doing this based on the extension but like should do
+ /* We are doing this based on the extension but should do
* it based upon the content */
- if ( !(String.Equals(extension.ToUpper(),"XPS") || String.Equals(extension.ToUpper(), "OXPS")) )
+ if (!(String.Equals(extension.ToUpper(), "XPS") || String.Equals(extension.ToUpper(), "OXPS")))
{
m_printstatus.xaml_PrintProgress.Value = 0;
- if (m_ghostscript.CreateXPS(m_currfile, Constants.DEFAULT_GS_RES,
- last_page - first_page + 1, m_printcontrol, first_page, last_page) == gsStatus.GS_BUSY)
+ /* Extract needed information from print dialog and pass to GSNET */
+ if (m_printcontrol == null)
{
- ShowMessage(NotifyType_t.MESS_STATUS, "GS currently busy");
return;
}
+ else
+ {
+ double width;
+ double height;
+ bool fit_page = (m_printcontrol.xaml_autofit.IsChecked == true);
+
+ if (m_printcontrol.m_pagedetails.Landscape == true)
+ {
+ height = m_printcontrol.m_pagedetails.PrintableArea.Width * 72.0 / 100.0;
+ width = m_printcontrol.m_pagedetails.PrintableArea.Height * 72.0 / 100.0;
+ }
+ else
+ {
+ height = m_printcontrol.m_pagedetails.PrintableArea.Height * 72.0 / 100.0;
+ width = m_printcontrol.m_pagedetails.PrintableArea.Width * 72.0 / 100.0;
+ }
+
+ if (m_ghostscript.CreateXPS(m_currfile, Constants.DEFAULT_GS_RES,
+ last_page - first_page + 1, height, width, fit_page, first_page, last_page) == gsStatus.GS_BUSY)
+ {
+ ShowMessage(NotifyType_t.MESS_STATUS, "GS currently busy");
+ return;
+ }
+ }
}
else
PrintXPS(m_currfile, print_all, first_page, last_page, false);
@@ -82,7 +120,7 @@ namespace ghostnet_wpf_example
string path = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
try
{
- string Arguments = m_currfile + " print " + m_currpage + " " + m_numpages;
+ string Arguments = "\"" + m_currfile + "\"" + " print " + m_currpage + " " + m_numpages;
Process.Start(path, Arguments);
}
catch (InvalidOperationException)
diff --git a/demos/csharp/windows/ghostnet_wpf_example/MainRender.cs b/demos/csharp/windows/ghostnet_wpf_example/MainRender.cs
index 98661f98..5f0bdc78 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/MainRender.cs
+++ b/demos/csharp/windows/ghostnet_wpf_example/MainRender.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Runtime.InteropServices;
@@ -36,7 +51,7 @@ namespace ghostnet_wpf_example
return;
m_viewer_state = ViewerState_t.BUSY_RENDER;
- m_ghostscript.gsDisplayDeviceRunFile(m_currfile, m_doczoom, m_aa, real_first_page + 1, real_last_page + 1);
+ m_ghostscript.DisplayDeviceRunFile(m_currfile, m_doczoom, m_aa, real_first_page + 1, real_last_page + 1);
}
/* Callback from ghostscript with the rendered image. */
@@ -150,12 +165,12 @@ namespace ghostnet_wpf_example
{
m_doczoom = 1.0;
xaml_Zoomsize.Text = "100";
- m_ghostscript.gsPageRenderedMain += new ghostsharp.gsCallBackPageRenderedMain(gsPageRendered);
+ m_ghostscript.PageRenderedCallBack += new GSNET.PageRendered(gsPageRendered);
}
m_viewer_state = ViewerState_t.BUSY_RENDER;
(int first_page, int last_page) = GetVisiblePages();
- m_ghostscript.gsDisplayDeviceRunFile(m_currfile, m_doczoom, m_aa, first_page + 1, last_page + 1);
+ m_ghostscript.DisplayDeviceRunFile(m_currfile, m_doczoom, m_aa, first_page + 1, last_page + 1);
}
/* Render all pages full resolution. Used for single page files as
@@ -171,11 +186,11 @@ namespace ghostnet_wpf_example
{
m_doczoom = 1.0;
xaml_Zoomsize.Text = "100";
- m_ghostscript.gsPageRenderedMain += new ghostsharp.gsCallBackPageRenderedMain(gsPageRendered);
+ m_ghostscript.PageRenderedCallBack += new GSNET.PageRendered(gsPageRendered);
}
m_viewer_state = ViewerState_t.BUSY_RENDER;
- m_ghostscript.gsDisplayDeviceRunFile(m_currfile, m_doczoom, m_aa, -1, -1);
+ m_ghostscript.DisplayDeviceRunFile(m_currfile, m_doczoom, m_aa, -1, -1);
}
/* Called via zoom or aa changes */
diff --git a/demos/csharp/windows/ghostnet_wpf_example/MainThumbRendering.cs b/demos/csharp/windows/ghostnet_wpf_example/MainThumbRendering.cs
index 102bb764..b3f15a84 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/MainThumbRendering.cs
+++ b/demos/csharp/windows/ghostnet_wpf_example/MainThumbRendering.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.Collections.Generic;
using System.Windows.Media;
using System.Windows.Media.Imaging;
@@ -9,7 +24,7 @@ namespace ghostnet_wpf_example
{
public partial class MainWindow
{
- private static List<DocPage> m_thumbnails;
+ private static List<DocPage> m_thumbnails;
/* Assign current pages to blown up thumbnail images */
private void ThumbAssignMain(int page_num, int width, int height, double zoom_in, ref int offset)
@@ -67,7 +82,7 @@ namespace ghostnet_wpf_example
xaml_ThumbList.Items.Refresh();
xaml_ThumbGrid.Visibility = System.Windows.Visibility.Visible;
- m_ghostscript.gsPageRenderedMain -= new ghostsharp.gsCallBackPageRenderedMain(gsThumbRendered);
+ m_ghostscript.PageRenderedCallBack -= new GSNET.PageRendered(gsThumbRendered);
m_numpages = m_list_thumb.Count;
if (m_numpages < 1)
@@ -120,8 +135,8 @@ namespace ghostnet_wpf_example
xaml_RenderProgressText.Text = "Creating Thumbs";
xaml_ProgressGrid.Visibility = System.Windows.Visibility.Visible;
- m_ghostscript.gsPageRenderedMain += new ghostsharp.gsCallBackPageRenderedMain(gsThumbRendered);
- m_ghostscript.gsDisplayDeviceRenderThumbs(m_currfile, Constants.SCALE_THUMB, false, GS_Task_t.DISPLAY_DEV_THUMBS);
+ m_ghostscript.PageRenderedCallBack += new GSNET.PageRendered(gsThumbRendered);
+ m_ghostscript.DisplayDeviceRenderThumbs(m_currfile, Constants.SCALE_THUMB, false);
}
}
}
diff --git a/demos/csharp/windows/ghostnet_wpf_example/MainWindow.xaml b/demos/csharp/windows/ghostnet_wpf_example/MainWindow.xaml
index d4f752d4..381ef38a 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/MainWindow.xaml
+++ b/demos/csharp/windows/ghostnet_wpf_example/MainWindow.xaml
@@ -1,4 +1,20 @@
-<Window x:Class="ghostnet_wpf_example.MainWindow"
+<!--
+ Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+-->
+
+<Window x:Class="ghostnet_wpf_example.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
@@ -12,7 +28,7 @@
<StackPanel Margin="-20,0,0,0" Background="WhiteSmoke"/>
</ItemsPanelTemplate>
<DataTemplate x:Key="PageTemplate">
- <Canvas Tag="{Binding Path=pagename}" HorizontalAlignment="Center" VerticalAlignment="Top" Height="{Binding Height}" Width="{Binding Width}" Margin="0,0,0,0" ClipToBounds="True">
+ <Canvas Tag="{Binding PageName}" HorizontalAlignment="Center" VerticalAlignment="Top" Height="{Binding Height}" Width="{Binding Width}" Margin="0,0,0,0" ClipToBounds="True">
<Image Width="{Binding Width}" Height="{Binding Height}" Stretch="Fill" HorizontalAlignment="Center" Source="{Binding BitMap}">
<Image.BitmapEffect>
<DropShadowBitmapEffect Color="Black" Direction="-50" ShadowDepth="40" Softness=".7" />
diff --git a/demos/csharp/windows/ghostnet_wpf_example/MainWindow.xaml.cs b/demos/csharp/windows/ghostnet_wpf_example/MainWindow.xaml.cs
index f4b103b8..e96a65f0 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/MainWindow.xaml.cs
+++ b/demos/csharp/windows/ghostnet_wpf_example/MainWindow.xaml.cs
@@ -1,6 +1,20 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.Collections.Generic;
-using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
@@ -102,7 +116,7 @@ namespace ghostnet_wpf_example
public partial class MainWindow : Window
{
- ghostsharp m_ghostscript;
+ GSNET m_ghostscript;
doc_t m_document_type;
bool m_doc_type_has_page_access;
String m_currfile;
@@ -136,15 +150,15 @@ namespace ghostnet_wpf_example
}
}
public MainWindow()
- {
- InitializeComponent();
+ {
+ InitializeComponent();
this.Closing += new System.ComponentModel.CancelEventHandler(Window_Closing);
/* Set up ghostscript calls for progress update */
- m_ghostscript = new ghostsharp();
- m_ghostscript.gsUpdateMain += new ghostsharp.gsCallBackMain(gsProgress);
- m_ghostscript.gsIOUpdateMain += new ghostsharp.gsIOCallBackMain(gsIO);
- m_ghostscript.gsDLLProblemMain += new ghostsharp.gsDLLProblem(gsDLL);
+ m_ghostscript = new GSNET();
+ m_ghostscript.ProgressCallBack+= new GSNET.Progress(gsProgress);
+ m_ghostscript.StdIOCallBack += new GSNET.StdIO(gsIO);
+ m_ghostscript.DLLProblemCallBack += new GSNET.DLLProblem(gsDLL);
m_ghostscript.DisplayDeviceOpen();
m_currpage = 0;
@@ -199,17 +213,18 @@ namespace ghostnet_wpf_example
m_viewer_state = ViewerState_t.PRINTING;
Print(filePath);
}
-
}
private void gsIO(String mess, int len)
{
m_gsoutput.Update(mess, len);
}
+
private void ShowGSMessage(object sender, RoutedEventArgs e)
{
m_gsoutput.Show();
}
+
private void gsDLL(String mess)
{
ShowMessage(NotifyType_t.MESS_STATUS, mess);
@@ -301,7 +316,6 @@ namespace ghostnet_wpf_example
}
}
- /* GS Result*/
public void GSResult(gsParamState_t gs_result)
{
TempFile tempfile = null;
@@ -389,8 +403,8 @@ namespace ghostnet_wpf_example
private void OpenFileCommand(object sender, ExecutedRoutedEventArgs e)
{
- OpenFile(sender, e);
- }
+ OpenFile(sender, e);
+ }
private void CleanUp()
{
@@ -424,7 +438,7 @@ namespace ghostnet_wpf_example
xaml_currPage.Text = "0";
CloseExtraWindows(false);
- m_ghostscript.gsPageRenderedMain -= new ghostsharp.gsCallBackPageRenderedMain(gsPageRendered);
+ m_ghostscript.PageRenderedCallBack -= new GSNET.PageRendered(gsPageRendered);
m_ghostscript.DisplayDeviceClose();
m_ghostscript.DisplayDeviceOpen();
m_viewer_state = ViewerState_t.NO_FILE;
@@ -508,7 +522,7 @@ namespace ghostnet_wpf_example
* progress as we distill the stream for PS or page by page for PDF */
string extension = System.IO.Path.GetExtension(FileName);
- /* We are doing this based on the extension but like should do
+ /* We are doing this based on the extension but should do
* it based upon the content */
switch (extension.ToUpper())
{
@@ -551,7 +565,6 @@ namespace ghostnet_wpf_example
m_document_type == doc_t.XPS ||
m_document_type == doc_t.PS)
{
-
MessageBoxResult result = MessageBox.Show("Would you like to distill this file?", "ghostnet", MessageBoxButton.YesNoCancel);
switch (result)
{
diff --git a/demos/csharp/windows/ghostnet_wpf_example/MainZoom.cs b/demos/csharp/windows/ghostnet_wpf_example/MainZoom.cs
index 08e270e2..9fcc5d56 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/MainZoom.cs
+++ b/demos/csharp/windows/ghostnet_wpf_example/MainZoom.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.Windows;
using System.Windows.Controls;
using System.Text.RegularExpressions;
diff --git a/demos/csharp/windows/ghostnet_wpf_example/PrintControl.xaml b/demos/csharp/windows/ghostnet_wpf_example/PrintControl.xaml
index cc7bb6b6..4dc7c5be 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/PrintControl.xaml
+++ b/demos/csharp/windows/ghostnet_wpf_example/PrintControl.xaml
@@ -1,4 +1,20 @@
-<Window x:Class="ghostnet_wpf_example.Print"
+<!--
+ Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+-->
+
+<Window x:Class="ghostnet_wpf_example.Print"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
diff --git a/demos/csharp/windows/ghostnet_wpf_example/PrintControl.xaml.cs b/demos/csharp/windows/ghostnet_wpf_example/PrintControl.xaml.cs
index bd5454b5..cf2973aa 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/PrintControl.xaml.cs
+++ b/demos/csharp/windows/ghostnet_wpf_example/PrintControl.xaml.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
diff --git a/demos/csharp/windows/ghostnet_wpf_example/PrintStatus.xaml b/demos/csharp/windows/ghostnet_wpf_example/PrintStatus.xaml
index 7a40d169..2c5d091b 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/PrintStatus.xaml
+++ b/demos/csharp/windows/ghostnet_wpf_example/PrintStatus.xaml
@@ -1,4 +1,20 @@
-<Window x:Class="ghostnet_wpf_example.PrintStatus"
+<!--
+ Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+-->
+
+<Window x:Class="ghostnet_wpf_example.PrintStatus"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
diff --git a/demos/csharp/windows/ghostnet_wpf_example/PrintStatus.xaml.cs b/demos/csharp/windows/ghostnet_wpf_example/PrintStatus.xaml.cs
index 41480471..aca2e6bc 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/PrintStatus.xaml.cs
+++ b/demos/csharp/windows/ghostnet_wpf_example/PrintStatus.xaml.cs
@@ -1,16 +1,19 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
using System.Windows;
-using System.Windows.Controls;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Shapes;
namespace ghostnet_wpf_example
{
diff --git a/demos/csharp/windows/ghostnet_wpf_example/TempFile.cs b/demos/csharp/windows/ghostnet_wpf_example/TempFile.cs
index db0c50cb..de7f5309 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/TempFile.cs
+++ b/demos/csharp/windows/ghostnet_wpf_example/TempFile.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.IO;
/* A class to help in the management of temp files */
diff --git a/demos/csharp/windows/ghostnet_wpf_example/XPSprint.cs b/demos/csharp/windows/ghostnet_wpf_example/XPSprint.cs
index f6934467..a1d03416 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/XPSprint.cs
+++ b/demos/csharp/windows/ghostnet_wpf_example/XPSprint.cs
@@ -1,3 +1,18 @@
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
using System;
using System.Printing;
using System.Windows.Documents;
diff --git a/demos/csharp/windows/ghostnet_wpf_example/gsIO.cs b/demos/csharp/windows/ghostnet_wpf_example/gsIO.cs
index 0b2d0fd8..fdd1e759 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/gsIO.cs
+++ b/demos/csharp/windows/ghostnet_wpf_example/gsIO.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.ComponentModel;
namespace ghostnet_wpf_example
diff --git a/demos/csharp/windows/ghostnet_wpf_example/gsOutput.xaml b/demos/csharp/windows/ghostnet_wpf_example/gsOutput.xaml
index cb4261ba..28fc19b4 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/gsOutput.xaml
+++ b/demos/csharp/windows/ghostnet_wpf_example/gsOutput.xaml
@@ -1,4 +1,20 @@
-<Window x:Class="ghostnet_wpf_example.gsOutput"
+<!--
+ Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+-->
+
+<Window x:Class="ghostnet_wpf_example.gsOutput"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Ghostscript Messages" Height="500" Width="500"
diff --git a/demos/csharp/windows/ghostnet_wpf_example/gsOutput.xaml.cs b/demos/csharp/windows/ghostnet_wpf_example/gsOutput.xaml.cs
index 01075cd2..e3bb76ae 100644
--- a/demos/csharp/windows/ghostnet_wpf_example/gsOutput.xaml.cs
+++ b/demos/csharp/windows/ghostnet_wpf_example/gsOutput.xaml.cs
@@ -1,4 +1,19 @@
-using System;
+/* Copyright (C) 2020-2021 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato,
+ CA 94945, U.S.A., +1(415)492-9861, for further information.
+*/
+
+using System;
using System.Windows;
namespace ghostnet_wpf_example
diff --git a/demos/java/README.txt b/demos/java/README.txt
new file mode 100644
index 00000000..4781bb09
--- /dev/null
+++ b/demos/java/README.txt
@@ -0,0 +1,8 @@
+All README files assume that the user is using Java 8.
+
+On Windows, make sure the JDK is installed and the bin directory
+inside the installation folder is added to the PATH environment
+variable. This exposes command line programs to build Java
+applications.
+
+On Linux and Mac, OpenJDK 8 is used.
diff --git a/demos/java/gsjava/Manifest.md b/demos/java/gsjava/Manifest.md
new file mode 100644
index 00000000..de55435b
--- /dev/null
+++ b/demos/java/gsjava/Manifest.md
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+Class-Path: ./ \ No newline at end of file
diff --git a/demos/java/gsjava/README.txt b/demos/java/gsjava/README.txt
index 07c55675..2b606be7 100644
--- a/demos/java/gsjava/README.txt
+++ b/demos/java/gsjava/README.txt
@@ -1,9 +1,3 @@
-Required libraries for this library:
-gpdldll64.dll
-gs_jni.dll
-
-Java Library:
-
This library contains direct bindings to Ghostscript as
well as several utility methods to make using the
Ghostscript calls easier.
@@ -25,7 +19,7 @@ are avaliable if needed. The Reference class acts as
a pointer parameter in a C function. An example use of this
is in gsapi_new_instance which takes a Reference<Long> as
a parameter. Calling the method would place the new
-Ghoscript instance in the Reference<Long>'s value field.
+Ghostscript instance in the Reference<Long>'s value field.
The com.artifex.gsjava.GSInstance is a
utility class. The GSInstance class stores an instance
@@ -34,26 +28,26 @@ class are named the same in which they are documented without
the need to pass the "instance" parameter through.
The com.artifex.gsjava.devices package contains several
-classes representing Ghoscript devices. Using the classes
+classes representing Ghostscript devices. Using the classes
in this package is the greatest amount of separation from
-using the raw Ghoscript calls and it requires no direct
+using the raw Ghostscript calls and it requires no direct
calls through the GSAPI class. All device classes in this
package are extensions of Device which provides a way
-of setting up a Ghoscript device and setting parameters.
+of setting up a Ghostscript device and setting parameters.
Subclasses have utility methods to set individual parameters
through method calls instead of using a String and parameter
type to specify the parameter name and type, respectively.
-Example code segment to set up an instance of Ghoscript:
+Example code segment to set up an instance of Ghostscript:
import com.artifex.gsjava.*;
import com.artifex.gsjava.util.*;
public static void main(String[] args) {
- // Stores a reference to the Ghoscript instance
+ // Stores a reference to the Ghostscript instance
Reference<Long> instanceReference = new Reference<>();
- // Creates a new Ghoscript instance with a NULL caller handle,
+ // Creates a new Ghostscript instance with a NULL caller handle,
// placing the instance into instanceReference
int code = GSAPI.gsapi_new_instance(instanceReference, GSAPI.GS_NULL);
@@ -67,71 +61,23 @@ public static void main(String[] args) {
// size in bytes.
long instance = instanceReference.getValue();
- // Deletes the Ghoscript instance
+ // Deletes the Ghostscript instance
GSAPI.gsapi_delete_instance(instance);
}
-C++ Library:
-
-This library builds to gs_jni.dll and uses the
-Java Native Interface (JNI) to bind the functions in
-the GSAPI class to Ghoscript as well as handling callbacks,
-exceptions, and references.
-
-The bindings in GSAPI are in the header com_artifex_gsjava_GSJAVA.h
-and the implementations are in com_artifex_gsjava_GSJAVA.cpp.
-
-Utility methods for throwing exceptions, setting fields, calling
-Java methods, and using the Reference<T> class are declared
-in jni_util.h.
-
-Example method explaining the implementation for
-gsapi_run_string_begin:
-
-
-/* JNIEnv *env - Provided the JNI. Allows interfacing into calling Java methods,
- * setting Java fields, etc. Different threads have different JNIEnv objects.
- *
- * jclass - Provided by the JNI. It represents the class calling this method.
- *
- * jlong instance - Instance to be passed to gsapi_run_string_begin
- *
- * jint userErrors - User errors to be passed to gsapi_run_string_begin
- *
- * jobject pExitCode - A Reference<Integer> object. This is always the case as the Java
- * code will not allow anything else to be passed. The value which Ghostscript returns
- * in the pExitCode parameter will be placed into here.
- */
-JNIEXPORT jint JNICALL Java_com_artifex_gsjava_GSAPI_gsapi_1run_1string_1begin
- (JNIEnv *env, jclass, jlong instance, jint userErrors, jobject pExitCode)
-{
- // Declares the exitCode parameter which will be passed as a pointer
- // to gsapi_run_string_begin
- int exitCode;
-
- // Different threads have different JNIEnv objects, so each time a JNI method
- // is called, this must be set so the Java callback methods can be called.
- callbacks::setJNIEnv(env);
-
- // Calls the Ghoscript call gsapi_run_string_begin
- int code = gsapi_run_string_begin((void *)instance, userErrors, &exitCode);
-
- // If the reference is not NULL, set the value of the reference to the exitCode returned
- // from Ghoscript. It must be converted to the wrapper type java.lang.Integer as Java does not support
- // primitive generic arguments (i.e. int, float, char, etc.)
- if (pExitCode)
- Reference::setValueField(env, pExitCode, toWrapperType(env, (jint)exitCode));
-
- // Return the error code returned by Ghostscript
- return code;
-}
+To build the library, build_linux.sh can be used on Linux,
+build_darwin.sh can be used on Mac, and build_win32.bat on Windows.
+
+All of these scripts do not compile Ghostscript. However,
+build_linux.sh and build_darwin.sh will compile the C++
+library unlike build_win32.bat.
Viewer:
-There is an eclipse project containing a viewer using the
-Java Ghostscript bindings in gsjava. The eclipse project is
-set up such that the gsjava eclipse project must be built
-to a jar file and used in the gsviewer eclipse project.
+There is an Eclipse project containing a viewer using the
+Java Ghostscript bindings in gsjava. The Eclipse project is
+set up such that the gsjava Eclipse project must be built
+to a jar file and used in the gsviewer Eclipse project.
The viewer is designed to load PDF documents, but can also
load other files like PostScript files and distill them into
@@ -139,11 +85,11 @@ a PDF document to be opened.
When the document is first loaded, every page is rendered at
a low resolution. These will be displayed as thumbnails on the
-left side. All loadingg is done in the com.artifex.gsjava.Document
+left side. All loading is done in the com.artifex.gsjava.Document
class. As the user changes the position of the viewport, the
viewer will dynamically load high resolution images based on
what page the user is viewing. This is done in the
com.artifex.gsviewer.ViewerController.SmartLoader class. This
also handles rendering zoomed images if necessary. Only pages
which need to be loaded at a high resolution are loaded, and
-zoomed pages are unloaded when no longer necessary to save memory. \ No newline at end of file
+zoomed pages are unloaded when no longer necessary to save memory.
diff --git a/demos/java/gsjava/build_darwin.sh b/demos/java/gsjava/build_darwin.sh
new file mode 100644
index 00000000..212dfb36
--- /dev/null
+++ b/demos/java/gsjava/build_darwin.sh
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+mkdir -p bin
+
+echo "Compiling gs_jni C++ source..."
+
+cd "../jni/gs_jni"
+
+bash build_darwin.sh
+
+cd "../../gsjava"
+
+echo "Compiling gsjava Java source..."
+javac -sourcepath src/ -d bin/ \
+ "src/com/artifex/gsjava/GSAPI.java" \
+ "src/com/artifex/gsjava/GSInstance.java" \
+ \
+ "src/com/artifex/gsjava/util/AllocationError.java" \
+ "src/com/artifex/gsjava/util/ByteArrayReference.java" \
+ "src/com/artifex/gsjava/util/BytePointer.java" \
+ "src/com/artifex/gsjava/util/NativeArray.java" \
+ "src/com/artifex/gsjava/util/NativePointer.java" \
+ "src/com/artifex/gsjava/util/Reference.java" \
+ "src/com/artifex/gsjava/util/StringUtil.java" \
+ \
+ "src/com/artifex/gsjava/callbacks/DisplayCallback.java" \
+ "src/com/artifex/gsjava/callbacks/ICalloutFunction.java" \
+ "src/com/artifex/gsjava/callbacks/IPollFunction.java" \
+ "src/com/artifex/gsjava/callbacks/IStdErrFunction.java" \
+ "src/com/artifex/gsjava/callbacks/IStdInFunction.java" \
+ "src/com/artifex/gsjava/callbacks/IStdOutFunction.java" \
+ \
+ "src/com/artifex/gsjava/devices/BMPDevice.java" \
+ "src/com/artifex/gsjava/devices/Device.java" \
+ "src/com/artifex/gsjava/devices/DeviceInUseException.java" \
+ "src/com/artifex/gsjava/devices/DeviceNotSupportedException.java" \
+ "src/com/artifex/gsjava/devices/DisplayDevice.java" \
+ "src/com/artifex/gsjava/devices/EPSDevice.java" \
+ "src/com/artifex/gsjava/devices/FAXDevice.java" \
+ "src/com/artifex/gsjava/devices/FileDevice.java" \
+ "src/com/artifex/gsjava/devices/HighLevelDevice.java" \
+ "src/com/artifex/gsjava/devices/JPEGDevice.java" \
+ "src/com/artifex/gsjava/devices/OCRDevice.java" \
+ "src/com/artifex/gsjava/devices/PCXDevice.java" \
+ "src/com/artifex/gsjava/devices/PDFDevice.java" \
+ "src/com/artifex/gsjava/devices/PDFImageDevice.java" \
+ "src/com/artifex/gsjava/devices/PDFPostscriptDeviceFamily.java" \
+ "src/com/artifex/gsjava/devices/PNGDevice.java" \
+ "src/com/artifex/gsjava/devices/PNMDevice.java" \
+ "src/com/artifex/gsjava/devices/PostScriptDevice.java" \
+ "src/com/artifex/gsjava/devices/PSDDevice.java" \
+ "src/com/artifex/gsjava/devices/PXLDevice.java" \
+ "src/com/artifex/gsjava/devices/TextDevice.java" \
+ "src/com/artifex/gsjava/devices/TIFFDevice.java" \
+ "src/com/artifex/gsjava/devices/XPSDevice.java"
+
+cd bin
+
+echo "Packing gsjava JAR file..."
+jar cfm "../gsjava.jar" "../Manifest.md" "com/"
+
+cd .. \ No newline at end of file
diff --git a/demos/java/gsjava/build_linux.sh b/demos/java/gsjava/build_linux.sh
new file mode 100644
index 00000000..2866c07e
--- /dev/null
+++ b/demos/java/gsjava/build_linux.sh
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+mkdir -p bin
+
+echo "Compiling gs_jni C++ source..."
+
+cd "../jni/gs_jni"
+
+bash build_linux.sh
+
+cd "../../gsjava"
+
+echo "Compiling gsjava Java source..."
+javac -sourcepath src/ -d bin/ \
+ "src/com/artifex/gsjava/GSAPI.java" \
+ "src/com/artifex/gsjava/GSInstance.java" \
+ \
+ "src/com/artifex/gsjava/util/AllocationError.java" \
+ "src/com/artifex/gsjava/util/ByteArrayReference.java" \
+ "src/com/artifex/gsjava/util/BytePointer.java" \
+ "src/com/artifex/gsjava/util/NativeArray.java" \
+ "src/com/artifex/gsjava/util/NativePointer.java" \
+ "src/com/artifex/gsjava/util/Reference.java" \
+ "src/com/artifex/gsjava/util/StringUtil.java" \
+ \
+ "src/com/artifex/gsjava/callbacks/DisplayCallback.java" \
+ "src/com/artifex/gsjava/callbacks/ICalloutFunction.java" \
+ "src/com/artifex/gsjava/callbacks/IPollFunction.java" \
+ "src/com/artifex/gsjava/callbacks/IStdErrFunction.java" \
+ "src/com/artifex/gsjava/callbacks/IStdInFunction.java" \
+ "src/com/artifex/gsjava/callbacks/IStdOutFunction.java" \
+ \
+ "src/com/artifex/gsjava/devices/BMPDevice.java" \
+ "src/com/artifex/gsjava/devices/Device.java" \
+ "src/com/artifex/gsjava/devices/DeviceInUseException.java" \
+ "src/com/artifex/gsjava/devices/DeviceNotSupportedException.java" \
+ "src/com/artifex/gsjava/devices/DisplayDevice.java" \
+ "src/com/artifex/gsjava/devices/EPSDevice.java" \
+ "src/com/artifex/gsjava/devices/FAXDevice.java" \
+ "src/com/artifex/gsjava/devices/FileDevice.java" \
+ "src/com/artifex/gsjava/devices/HighLevelDevice.java" \
+ "src/com/artifex/gsjava/devices/JPEGDevice.java" \
+ "src/com/artifex/gsjava/devices/OCRDevice.java" \
+ "src/com/artifex/gsjava/devices/PCXDevice.java" \
+ "src/com/artifex/gsjava/devices/PDFDevice.java" \
+ "src/com/artifex/gsjava/devices/PDFImageDevice.java" \
+ "src/com/artifex/gsjava/devices/PDFPostscriptDeviceFamily.java" \
+ "src/com/artifex/gsjava/devices/PNGDevice.java" \
+ "src/com/artifex/gsjava/devices/PNMDevice.java" \
+ "src/com/artifex/gsjava/devices/PostScriptDevice.java" \
+ "src/com/artifex/gsjava/devices/PSDDevice.java" \
+ "src/com/artifex/gsjava/devices/PXLDevice.java" \
+ "src/com/artifex/gsjava/devices/TextDevice.java" \
+ "src/com/artifex/gsjava/devices/TIFFDevice.java" \
+ "src/com/artifex/gsjava/devices/XPSDevice.java"
+
+cd bin
+
+echo "Packing gsjava JAR file..."
+jar cfm "../gsjava.jar" "../Manifest.md" "com/"
+
+cd .. \ No newline at end of file
diff --git a/demos/java/gsjava/build_win32.bat b/demos/java/gsjava/build_win32.bat
new file mode 100644
index 00000000..88757811
--- /dev/null
+++ b/demos/java/gsjava/build_win32.bat
@@ -0,0 +1,101 @@
+@echo off
+
+if not exist bin mkdir bin
+
+echo Compiling Java source...
+javac -sourcepath src\ -d bin^
+ src\com\artifex\gsjava\GSAPI.java^
+ src\com\artifex\gsjava\GSInstance.java^
+ ^
+ src\com\artifex\gsjava\util\AllocationError.java^
+ src\com\artifex\gsjava\util\ByteArrayReference.java^
+ src\com\artifex\gsjava\util\BytePointer.java^
+ src\com\artifex\gsjava\util\NativeArray.java^
+ src\com\artifex\gsjava\util\NativePointer.java^
+ src\com\artifex\gsjava\util\Reference.java^
+ src\com\artifex\gsjava\util\StringUtil.java^
+ ^
+ src\com\artifex\gsjava\callbacks\DisplayCallback.java^
+ src\com\artifex\gsjava\callbacks\ICalloutFunction.java^
+ src\com\artifex\gsjava\callbacks\IPollFunction.java^
+ src\com\artifex\gsjava\callbacks\IStdErrFunction.java^
+ src\com\artifex\gsjava\callbacks\IStdInFunction.java^
+ src\com\artifex\gsjava\callbacks\IStdOutFunction.java^
+ ^
+ src\com\artifex\gsjava\devices\BMPDevice.java^
+ src\com\artifex\gsjava\devices\Device.java^
+ src\com\artifex\gsjava\devices\DeviceInUseException.java^
+ src\com\artifex\gsjava\devices\DeviceNotSupportedException.java^
+ src\com\artifex\gsjava\devices\DisplayDevice.java^
+ src\com\artifex\gsjava\devices\EPSDevice.java^
+ src\com\artifex\gsjava\devices\FAXDevice.java^
+ src\com\artifex\gsjava\devices\FileDevice.java^
+ src\com\artifex\gsjava\devices\HighLevelDevice.java^
+ src\com\artifex\gsjava\devices\JPEGDevice.java^
+ src\com\artifex\gsjava\devices\OCRDevice.java^
+ src\com\artifex\gsjava\devices\PCXDevice.java^
+ src\com\artifex\gsjava\devices\PDFDevice.java^
+ src\com\artifex\gsjava\devices\PDFImageDevice.java^
+ src\com\artifex\gsjava\devices\PDFPostscriptDeviceFamily.java^
+ src\com\artifex\gsjava\devices\PNGDevice.java^
+ src\com\artifex\gsjava\devices\PNMDevice.java^
+ src\com\artifex\gsjava\devices\PostScriptDevice.java^
+ src\com\artifex\gsjava\devices\PSDDevice.java^
+ src\com\artifex\gsjava\devices\PXLDevice.java^
+ src\com\artifex\gsjava\devices\TextDevice.java^
+ src\com\artifex\gsjava\devices\TIFFDevice.java^
+ src\com\artifex\gsjava\devices\XPSDevice.java
+
+cd bin
+
+echo Packing JAR file...
+jar -cf ..\gsjava.jar^
+ com\artifex\gsjava\GSAPI.class^
+ com\artifex\gsjava\GSAPI$Revision.class^
+ com\artifex\gsjava\GSInstance.class^
+ com\artifex\gsjava\GSInstance$1.class^
+ com\artifex\gsjava\GSInstance$GSParam.class^
+ com\artifex\gsjava\GSInstance$ParamIterator.class^
+ ^
+ com\artifex\gsjava\util\AllocationError.class^
+ com\artifex\gsjava\util\ByteArrayReference.class^
+ com\artifex\gsjava\util\BytePointer.class^
+ com\artifex\gsjava\util\NativeArray.class^
+ com\artifex\gsjava\util\NativePointer.class^
+ com\artifex\gsjava\util\Reference.class^
+ com\artifex\gsjava\util\StringUtil.class^
+ ^
+ com\artifex\gsjava\callbacks\DisplayCallback.class^
+ com\artifex\gsjava\callbacks\ICalloutFunction.class^
+ com\artifex\gsjava\callbacks\IPollFunction.class^
+ com\artifex\gsjava\callbacks\IStdErrFunction.class^
+ com\artifex\gsjava\callbacks\IStdInFunction.class^
+ com\artifex\gsjava\callbacks\IStdOutFunction.class^
+ ^
+ com\artifex\gsjava\devices\BMPDevice.class^
+ com\artifex\gsjava\devices\Device.class^
+ com\artifex\gsjava\devices\Device$1.class^
+ com\artifex\gsjava\devices\Device$StdIO.class^
+ com\artifex\gsjava\devices\DeviceInUseException.class^
+ com\artifex\gsjava\devices\DeviceNotSupportedException.class^
+ com\artifex\gsjava\devices\DisplayDevice.class^
+ com\artifex\gsjava\devices\EPSDevice.class^
+ com\artifex\gsjava\devices\FAXDevice.class^
+ com\artifex\gsjava\devices\FileDevice.class^
+ com\artifex\gsjava\devices\HighLevelDevice.class^
+ com\artifex\gsjava\devices\JPEGDevice.class^
+ com\artifex\gsjava\devices\OCRDevice.class^
+ com\artifex\gsjava\devices\PCXDevice.class^
+ com\artifex\gsjava\devices\PDFDevice.class^
+ com\artifex\gsjava\devices\PDFImageDevice.class^
+ com\artifex\gsjava\devices\PDFPostscriptDeviceFamily.class^
+ com\artifex\gsjava\devices\PNGDevice.class^
+ com\artifex\gsjava\devices\PNMDevice.class^
+ com\artifex\gsjava\devices\PostScriptDevice.class^
+ com\artifex\gsjava\devices\PSDDevice.class^
+ com\artifex\gsjava\devices\PXLDevice.class^
+ com\artifex\gsjava\devices\TextDevice.class^
+ com\artifex\gsjava\devices\TIFFDevice.class^
+ com\artifex\gsjava\devices\XPSDevice.class
+
+cd .. \ No newline at end of file
diff --git a/demos/java/gsjava/src/com/artifex/gsjava/GSAPI.java b/demos/java/gsjava/src/com/artifex/gsjava/GSAPI.java
index f275e417..652d4356 100644
--- a/demos/java/gsjava/src/com/artifex/gsjava/GSAPI.java
+++ b/demos/java/gsjava/src/com/artifex/gsjava/GSAPI.java
@@ -11,6 +11,9 @@ import com.artifex.gsjava.callbacks.IStdOutFunction;
import com.artifex.gsjava.util.Reference;
import com.artifex.gsjava.util.StringUtil;
+import java.io.File;
+import com.artifex.gsjava.util.BytePointer;
+
/**
* Class which contains native bindings to Ghostscript via the JNI.
*
@@ -27,7 +30,27 @@ public class GSAPI {
* Registers the needed native libraries.
*/
private static void registerLibraries() {
- System.loadLibrary("gs_jni");
+ try {
+ // Try loading normally
+ System.loadLibrary("gs_jni");
+ } catch (UnsatisfiedLinkError e) {
+ // Load using absolute paths
+ if (System.getProperty("os.name").equalsIgnoreCase("Linux")) {
+ // Load on Linux
+ File libgpdl = new File("libgpdl.so");
+ System.load(libgpdl.getAbsolutePath());
+ File gsjni = new File("gs_jni.so");
+ System.load(gsjni.getAbsolutePath());
+ } else if (System.getProperty("os.name").equalsIgnoreCase("Mac OS X")) {
+ // Load on Mac
+ File libgpdl = new File("libgpdl.dylib");
+ System.load(libgpdl.getAbsolutePath());
+ File gsjni = new File("gs_jni.dylib");
+ System.load(gsjni.getAbsolutePath());
+ } else {
+ throw e;
+ }
+ }
}
/**
@@ -257,13 +280,13 @@ public class GSAPI {
return gsapi_run_file(instance, StringUtil.toNullTerminatedByteArray(fileName), userErrors, pExitCode);
}
- public static int gsapi_set_param(long instnace, String param, String value, int paramType) {
- return gsapi_set_param(instnace, StringUtil.toNullTerminatedByteArray(param),
+ public static int gsapi_set_param(long instance, String param, String value, int paramType) {
+ return gsapi_set_param(instance, StringUtil.toNullTerminatedByteArray(param),
StringUtil.toNullTerminatedByteArray(value), paramType);
}
- public static int gsapi_set_param(long instnace, String param, Object value, int paramType) {
- return gsapi_set_param(instnace, StringUtil.toNullTerminatedByteArray(param), value, paramType);
+ public static int gsapi_set_param(long instance, String param, Object value, int paramType) {
+ return gsapi_set_param(instance, StringUtil.toNullTerminatedByteArray(param), value, paramType);
}
public static int gsapi_get_param(long instance, String param, long value, int paramType) {
diff --git a/demos/java/gsjava/src/com/artifex/gsjava/util/NativePointer.java b/demos/java/gsjava/src/com/artifex/gsjava/util/NativePointer.java
index 222ade80..efe1a3e7 100644
--- a/demos/java/gsjava/src/com/artifex/gsjava/util/NativePointer.java
+++ b/demos/java/gsjava/src/com/artifex/gsjava/util/NativePointer.java
@@ -1,5 +1,7 @@
package com.artifex.gsjava.util;
+import java.io.File;
+
/**
* <p>The NativePointer class allows for direct non-managed memory
* allocations. The purpose of this class is to provide direct access
@@ -31,7 +33,27 @@ public class NativePointer {
* Registers the needed native libraries.
*/
private static void registerLibraries() {
- System.loadLibrary("gs_jni");
+ try {
+ // Try loading normally
+ System.loadLibrary("gs_jni");
+ } catch (UnsatisfiedLinkError e) {
+ // Load using absolute paths
+ if (System.getProperty("os.name").equalsIgnoreCase("Linux")) {
+ // Load on Linux
+ File libgpdl = new File("libgpdl.so");
+ System.load(libgpdl.getAbsolutePath());
+ File gsjni = new File("gs_jni.so");
+ System.load(gsjni.getAbsolutePath());
+ } else if (System.getProperty("os.name").equalsIgnoreCase("Mac OS X")) {
+ // Load on Mac
+ File libgpdl = new File("libgpdl.dylib");
+ System.load(libgpdl.getAbsolutePath());
+ File gsjni = new File("gs_jni.dylib");
+ System.load(gsjni.getAbsolutePath());
+ } else {
+ throw e;
+ }
+ }
}
public static final long NULL = 0x0L;
diff --git a/demos/java/gsviewer/Manifest.md b/demos/java/gsviewer/Manifest.md
new file mode 100644
index 00000000..77639479
--- /dev/null
+++ b/demos/java/gsviewer/Manifest.md
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path: gsjava.jar ./
+Main-Class: com.artifex.gsviewer.Main
diff --git a/demos/java/gsviewer/README.txt b/demos/java/gsviewer/README.txt
index 885edf1f..2808fed9 100644
--- a/demos/java/gsviewer/README.txt
+++ b/demos/java/gsviewer/README.txt
@@ -1,4 +1,70 @@
-required libraries in this directory:
+This project is a viewer designed to load PDF documents,
+but will also view other file types (like PostScript, XPS or PCL)
+by distilling them into PDF documents first.
+
+When the document is first loaded, every page is rendered at
+a low resolution. These will be displayed as thumbnails on the
+left side. All loading is done in the com.artifex.gsjava.Document
+class. As the user changes the position of the viewport, the
+viewer will dynamically load high resolution images based on
+what page the user is viewing. This is done in the
+com.artifex.gsviewer.ViewerController.SmartLoader class. This
+also handles rendering zoomed images if necessary. Only pages
+which need to be loaded at a high resolution are loaded, and
+zoomed pages are unloaded when no longer necessary to save memory.
+
+Required libraries in this directory for the viewer to work:
+
+-= WINDOWS =-
+
gpdldll64.dll
gs_jni.dll
-gsjava.jar \ No newline at end of file
+
+
+-= LINUX =-
+
+libgpdl.so (this would have been built as a link to another file, so
+it should be copied into this directory and renamed to libgpdl.so)
+gs_jni.so
+
+On Linux, when using OpenJDK, the property "assistive_technologies" may
+need to be modified for the Java code to build. It can be modified by
+editing the "accessibility.properties" file. This is located at:
+
+/etc/java-8-openjdk/accessibility.properties
+
+Additionally, to start the application, start_linux.sh should be executed as it
+sets up the shared library paths.
+
+
+-= MAC =-
+
+Same as Linux, except with .dylib extensions on all shared objects.
+
+start_darwin.sh should be used to start the application.
+
+
+Building:
+
+-= WINDOWS =-
+
+Ensure both gs_jni.dll and gpdldll64.dll. Then, run the build_win32.bat script.
+This will automatically build and copy gsjava.jar to this directory. To run,
+open gsviewer.jar either through File Explorer or in the command line through
+the following command:
+
+java -jar gsviewer.jar
+
+-= LINUX =-
+
+Ensure Ghostscript has been built.
+Run the build_linux.sh script. This will automatically build
+gs_jni.so, gsjava.jar, and copy the files to the needed
+directories. gsviewer.jar will be outputted in this directory.
+
+-= MAC =-
+
+Ensure Ghostscript has been built.
+Run the build_darwin.sh script. This will automatically build
+gs_jni.dylib, gsjava.jar, and copy the files to the needed
+directories. gsviewer.jar will be outputed in this directory.
diff --git a/demos/java/gsviewer/build_darwin.sh b/demos/java/gsviewer/build_darwin.sh
new file mode 100644
index 00000000..6c9d96c7
--- /dev/null
+++ b/demos/java/gsviewer/build_darwin.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+# build gsjava
+cd ../gsjava
+
+bash build_darwin.sh
+
+cd ../gsviewer
+
+cp ../gsjava/gsjava.jar gsjava.jar
+
+mkdir -p bin
+
+echo "Compiling gsviewer Java source..."
+javac -sourcepath src/ -d bin/ \
+ -classpath "../gsjava/bin" \
+ "src/com/artifex/gsviewer/DefaultUnhandledExceptionHandler.java" \
+ "src/com/artifex/gsviewer/Page.java" \
+ "src/com/artifex/gsviewer/Settings.java" \
+ "src/com/artifex/gsviewer/Document.java" \
+ "src/com/artifex/gsviewer/ImageUtil.java" \
+ "src/com/artifex/gsviewer/PageUpdateCallback.java" \
+ "src/com/artifex/gsviewer/StdIO.java" \
+ "src/com/artifex/gsviewer/GSFileFilter.java" \
+ "src/com/artifex/gsviewer/Main.java" \
+ "src/com/artifex/gsviewer/PDFFileFilter.java" \
+ "src/com/artifex/gsviewer/ViewerController.java" \
+ \
+ "src/com/artifex/gsviewer/gui/ScrollMap.java" \
+ "src/com/artifex/gsviewer/gui/SettingsDialog.java" \
+ "src/com/artifex/gsviewer/gui/ViewerGUIListener.java" \
+ "src/com/artifex/gsviewer/gui/ViewerWindow.java"
+
+cd bin
+
+echo "Packing gsviewer JAR file..."
+jar cfm "../gsviewer.jar" "../Manifest.md" "com/" \ No newline at end of file
diff --git a/demos/java/gsviewer/build_linux.sh b/demos/java/gsviewer/build_linux.sh
new file mode 100644
index 00000000..67b3e9cf
--- /dev/null
+++ b/demos/java/gsviewer/build_linux.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+# build gsjava
+cd ../gsjava
+
+bash build_linux.sh
+
+cd ../gsviewer
+
+cp ../gsjava/gsjava.jar gsjava.jar
+
+mkdir -p bin
+
+echo "Compiling gsviewer Java source..."
+javac -sourcepath src/ -d bin/ \
+ -classpath "../gsjava/bin" \
+ "src/com/artifex/gsviewer/DefaultUnhandledExceptionHandler.java" \
+ "src/com/artifex/gsviewer/Page.java" \
+ "src/com/artifex/gsviewer/Settings.java" \
+ "src/com/artifex/gsviewer/Document.java" \
+ "src/com/artifex/gsviewer/ImageUtil.java" \
+ "src/com/artifex/gsviewer/PageUpdateCallback.java" \
+ "src/com/artifex/gsviewer/StdIO.java" \
+ "src/com/artifex/gsviewer/GSFileFilter.java" \
+ "src/com/artifex/gsviewer/Main.java" \
+ "src/com/artifex/gsviewer/PDFFileFilter.java" \
+ "src/com/artifex/gsviewer/ViewerController.java" \
+ \
+ "src/com/artifex/gsviewer/gui/ScrollMap.java" \
+ "src/com/artifex/gsviewer/gui/SettingsDialog.java" \
+ "src/com/artifex/gsviewer/gui/ViewerGUIListener.java" \
+ "src/com/artifex/gsviewer/gui/ViewerWindow.java"
+
+cd bin
+
+echo "Packing gsviewer JAR file..."
+jar cfm "../gsviewer.jar" "../Manifest.md" "com/" \ No newline at end of file
diff --git a/demos/java/gsviewer/build_win32.bat b/demos/java/gsviewer/build_win32.bat
new file mode 100644
index 00000000..0e279e9f
--- /dev/null
+++ b/demos/java/gsviewer/build_win32.bat
@@ -0,0 +1,42 @@
+@echo off
+
+echo Build gsjava
+
+cd "..\gsjava"
+
+call build_win32
+
+cd "..\gsviewer"
+
+copy "..\gsjava\gsjava.jar" ".\gsjava.jar"
+
+echo Build gsviewer
+
+if not exist bin mkdir bin
+
+echo Compiling Java source...
+javac -sourcepath src\ -d bin\^
+ -classpath "..\gsjava\bin"^
+ "src\com\artifex\gsviewer\DefaultUnhandledExceptionHandler.java"^
+ "src\com\artifex\gsviewer\Page.java" ^
+ "src\com\artifex\gsviewer\Settings.java" ^
+ "src\com\artifex\gsviewer\Document.java" ^
+ "src\com\artifex\gsviewer\ImageUtil.java" ^
+ "src\com\artifex\gsviewer\PageUpdateCallback.java" ^
+ "src\com\artifex\gsviewer\StdIO.java" ^
+ "src\com\artifex\gsviewer\GSFileFilter.java" ^
+ "src\com\artifex\gsviewer\Main.java" ^
+ "src\com\artifex\gsviewer\PDFFileFilter.java" ^
+ "src\com\artifex\gsviewer\ViewerController.java" ^
+ ^
+ "src\com\artifex\gsviewer\gui\ScrollMap.java" ^
+ "src\com\artifex\gsviewer\gui\SettingsDialog.java" ^
+ "src\com\artifex\gsviewer\gui\ViewerGUIListener.java" ^
+ "src\com\artifex\gsviewer\gui\ViewerWindow.java"
+
+cd bin
+
+echo Packing JAR file...
+jar cfm "..\gsviewer.jar" "..\Manifest.md" com\
+
+cd.. \ No newline at end of file
diff --git a/demos/java/gsviewer/install_darwin.sh b/demos/java/gsviewer/install_darwin.sh
new file mode 100644
index 00000000..b6c58b86
--- /dev/null
+++ b/demos/java/gsviewer/install_darwin.sh
@@ -0,0 +1,11 @@
+#!bin/bash
+
+echo "Copy gs_jni.dylib"
+cp "../jni/gs_jni/gs_jni.dylib" "gs_jni.dylib"
+
+cd ../../../sobin
+
+echo "Copy libgpdl.dylib"
+cp $(readlink "libgpdl.dylib") "../demos/java/gsviewer"
+
+cd ../demos/java/gsviewer \ No newline at end of file
diff --git a/demos/java/gsviewer/install_linux.sh b/demos/java/gsviewer/install_linux.sh
new file mode 100644
index 00000000..4772d70a
--- /dev/null
+++ b/demos/java/gsviewer/install_linux.sh
@@ -0,0 +1,7 @@
+#!bin/bash
+
+cd ../jni/gs_jni
+
+bash install_linux.sh
+
+cd ../../gsviewer \ No newline at end of file
diff --git a/demos/java/gsviewer/src/com/artifex/gsviewer/Document.java b/demos/java/gsviewer/src/com/artifex/gsviewer/Document.java
index 6000d3e4..656ed3d1 100644
--- a/demos/java/gsviewer/src/com/artifex/gsviewer/Document.java
+++ b/demos/java/gsviewer/src/com/artifex/gsviewer/Document.java
@@ -579,8 +579,8 @@ public class Document implements List<Page> {
gsInstance.set_param("TextAlphaBits", 4, GS_SPT_INT);
gsInstance.set_param("GraphicsAlphaBits", 4, GS_SPT_INT);
} else {
- gsInstance.set_param("TextAlphaBits", 0, GS_SPT_INT);
- gsInstance.set_param("GraphicsAlphaBits", 0, GS_SPT_INT);
+ gsInstance.set_param("TextAlphaBits", 1, GS_SPT_INT);
+ gsInstance.set_param("GraphicsAlphaBits", 1, GS_SPT_INT);
}
this.pages = new ArrayList<>(documentLoader.images.size());
diff --git a/demos/java/gsviewer/src/com/artifex/gsviewer/Main.java b/demos/java/gsviewer/src/com/artifex/gsviewer/Main.java
index beecdd3b..775921af 100644
--- a/demos/java/gsviewer/src/com/artifex/gsviewer/Main.java
+++ b/demos/java/gsviewer/src/com/artifex/gsviewer/Main.java
@@ -7,6 +7,7 @@ import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import com.artifex.gsviewer.gui.ViewerWindow;
+import com.artifex.gsjava.util.BytePointer;
public class Main {
diff --git a/demos/java/gsviewer/start_darwin.sh b/demos/java/gsviewer/start_darwin.sh
new file mode 100644
index 00000000..9e4004bd
--- /dev/null
+++ b/demos/java/gsviewer/start_darwin.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+export LD_PRELOAD=./libgpdl.dylib
+
+java -jar gsviewer.jar \ No newline at end of file
diff --git a/demos/java/gsviewer/start_linux.sh b/demos/java/gsviewer/start_linux.sh
new file mode 100644
index 00000000..4ed9f514
--- /dev/null
+++ b/demos/java/gsviewer/start_linux.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+export LD_PRELOAD=/usr/lib/libgpdl.so.9
+
+java -jar gsviewer.jar \ No newline at end of file
diff --git a/demos/java/jni/gs_jni/README.txt b/demos/java/jni/gs_jni/README.txt
new file mode 100644
index 00000000..e38c34c0
--- /dev/null
+++ b/demos/java/jni/gs_jni/README.txt
@@ -0,0 +1,112 @@
+This library builds to gs_jni.dll and uses the
+Java Native Interface (JNI) to bind the functions in
+the GSAPI class to Ghostscript as well as handling callbacks,
+exceptions, and references.
+
+The bindings in GSAPI are in the header com_artifex_gsjava_GSJAVA.h
+and the implementations are in com_artifex_gsjava_GSJAVA.cpp.
+
+Utility methods for throwing exceptions, setting fields, calling
+Java methods, and using the Reference<T> class are declared
+in jni_util.h.
+
+To build, this project requires the header jni.h, which defines
+all JNI functions, and jni_md.h, which defines all system-specific
+integer types. Each of these headers requires a JDK install.
+
+The headers are typically found in the following directories:
+
+For Windows:
+
+jni.h:
+C:\Program Files\Java\<JDK Install>\include\jni.h
+
+jni_md.h:
+C:\Program Files\Java\<JDK Install>\include\win32\jni_md.h
+
+
+For Linux:
+
+jni.h:
+/lib/jvm/<JDK Install>/include/jni.h
+
+jni_md.h:
+/lib/jvm/<JDK Install>/include/linux/jni_md.h
+
+
+For Mac:
+
+jni.h:
+/Library/Java/JavaVirtualMachines/<JDK Install>/Contents/Home/include/jni.h
+
+jni_md.h:
+/Library/Java/JavaVirtualMachines/<JDK Install>/Contents/Home/include/darwin/jni_md.h
+
+So, a setup fully capable of building for any system should have an
+include directory resembling this, where each copy of jni_md.h comes
+from its respective system:
+
+* jni.h
+* win32\jni_md.h
+* linux/jni_md.h
+* darwin/jni_md.h
+
+To build on Windows,
+Ensure Ghostscript has already been built, and then open
+the gs_jni.sln (for Visual Studio 2019), and build the gs_jni
+project. This will compile to gs_jni.dll. For use in the Java interface,
+this DLL must be placed somewhere on the Java PATH. On Windows, this
+can be placed in the working directory, next to gsjava.jar (see
+..\..\gsjava\README.txt for information on how to build this).
+
+To build on Linux,
+Ensure Ghostscript has already been built, and then run
+the build_linux.sh script.
+
+To build on Mac,
+Ensure Ghostscript has already been built, and then run
+the build_darwin.sh script.
+
+Notes on function implementations and a brief introduction on
+how to use the JNI:
+
+Example method explaining the implementation for
+gsapi_run_string_begin:
+
+
+/* JNIEnv *env - Provided the JNI. Allows interfacing into calling Java methods,
+ * setting Java fields, etc. Different threads have different JNIEnv objects.
+ *
+ * jclass - Provided by the JNI. It represents the class calling this method.
+ *
+ * jlong instance - Instance to be passed to gsapi_run_string_begin
+ *
+ * jint userErrors - User errors to be passed to gsapi_run_string_begin
+ *
+ * jobject pExitCode - A Reference<Integer> object. This is always the case as the Java
+ * code will not allow anything else to be passed. The value which Ghostscript returns
+ * in the pExitCode parameter will be placed into here.
+ */
+JNIEXPORT jint JNICALL Java_com_artifex_gsjava_GSAPI_gsapi_1run_1string_1begin
+ (JNIEnv *env, jclass, jlong instance, jint userErrors, jobject pExitCode)
+{
+ // Declares the exitCode parameter which will be passed as a pointer
+ // to gsapi_run_string_begin
+ int exitCode;
+
+ // Different threads have different JNIEnv objects, so each time a JNI method
+ // is called, this must be set so the Java callback methods can be called.
+ callbacks::setJNIEnv(env);
+
+ // Calls the Ghostscript call gsapi_run_string_begin
+ int code = gsapi_run_string_begin((void *)instance, userErrors, &exitCode);
+
+ // If the reference is not NULL, set the value of the reference to the exitCode returned
+ // from Ghostscript. It must be converted to the wrapper type java.lang.Integer as Java does not support
+ // primitive generic arguments (i.e. int, float, char, etc.)
+ if (pExitCode)
+ Reference::setValueField(env, pExitCode, toWrapperType(env, (jint)exitCode));
+
+ // Return the error code returned by Ghostscript
+ return code;
+}
diff --git a/demos/java/jni/gs_jni/build_darwin.sh b/demos/java/jni/gs_jni/build_darwin.sh
new file mode 100644
index 00000000..81b10c01
--- /dev/null
+++ b/demos/java/jni/gs_jni/build_darwin.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+unset LD_LIBRARY_PATH
+
+mkdir -p obin
+
+echo "Compiling gs_jni C++ source..."
+
+echo "Compile callbacks.cpp"
+g++ -c -Wall -O3 -fPIC \
+ -std=c++14 \
+ -I./include \
+ -I./include/darwin \
+ -I./../../../../psi \
+ -I./../../../../devices \
+ "callbacks.cpp" \
+ -o "obin/callbacks.o"
+
+echo "Compile com_artifex_gsjava_GSAPI.cpp"
+g++ -c -Wall -O3 -fPIC \
+ -std=c++14 \
+ -I./include \
+ -I./include/darwin \
+ -I./../../../../psi \
+ -I./../../../../devices \
+ "com_artifex_gsjava_GSAPI.cpp" \
+ -o "obin/com_artifex_gsjava_GSAPI.o"
+
+echo "Compile com_artifex_gsjava_util_NativePointer.cpp"
+g++ -c -Wall -O3 -fPIC \
+ -std=c++14 \
+ -I./include \
+ -I./include/darwin \
+ -I./../../../../psi \
+ -I./../../../../devices \
+ "com_artifex_gsjava_util_NativePointer.cpp" \
+ -o "obin/com_artifex_gsjava_util_NativePointer.o"
+
+echo "Compile jni_util.cpp"
+g++ -c -Wall -O3 -fPIC \
+ -std=c++14 \
+ -I./include \
+ -I./include/darwin \
+ -I./../../../../psi \
+ -I./../../../../devices \
+ "jni_util.cpp" \
+ -o "obin/jni_util.o"
+
+echo "Link"
+g++ -dynamiclib -fPIC \
+ -Wl \
+ -o "gs_jni.dylib" \
+ "obin/callbacks.o" \
+ "obin/com_artifex_gsjava_GSAPI.o" \
+ "obin/com_artifex_gsjava_util_NativePointer.o" \
+ "obin/jni_util.o" \
+ "../../../../sobin/libgpdl.dylib" \ No newline at end of file
diff --git a/demos/java/jni/gs_jni/build_linux.sh b/demos/java/jni/gs_jni/build_linux.sh
new file mode 100644
index 00000000..974dfba3
--- /dev/null
+++ b/demos/java/jni/gs_jni/build_linux.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+unset LD_LIBRARY_PATH
+
+mkdir -p obin
+
+echo "Compiling gs_jni C++ source..."
+
+echo "Compile callbacks.cpp"
+g++ -c -Wall -O3 \
+ -std=c++14 \
+ -I./include \
+ -I./include/linux \
+ -I./../../../../psi \
+ -I./../../../../devices \
+ "callbacks.cpp" \
+ -o "obin/callbacks.o"
+
+echo "Compile com_artifex_gsjava_GSAPI.cpp"
+g++ -c -Wall -O3 \
+ -std=c++14 \
+ -I./include \
+ -I./include/linux \
+ -I./../../../../psi \
+ -I./../../../../devices \
+ "com_artifex_gsjava_GSAPI.cpp" \
+ -o "obin/com_artifex_gsjava_GSAPI.o"
+
+echo "Compile com_artifex_gsjava_util_NativePointer.cpp"
+g++ -c -Wall -O3 \
+ -std=c++14 \
+ -I./include \
+ -I./include/linux \
+ -I./../../../../psi \
+ -I./../../../../devices \
+ "com_artifex_gsjava_util_NativePointer.cpp" \
+ -o "obin/com_artifex_gsjava_util_NativePointer.o"
+
+echo "Compile jni_util.cpp"
+g++ -c -Wall -O3\
+ -std=c++14 \
+ -I./include \
+ -I./include/linux \
+ -I./../../../../psi \
+ -I./../../../../devices \
+ "jni_util.cpp" \
+ -o "obin/jni_util.o"
+
+echo "Link"
+g++ -shared \
+ -Wl,-soname,gs_jni.so \
+ -o "gs_jni.so" \
+ "obin/callbacks.o" \
+ "obin/com_artifex_gsjava_GSAPI.o" \
+ "obin/com_artifex_gsjava_util_NativePointer.o" \
+ "obin/jni_util.o" \
+ "../../../../sobin/libgpdl.so" \ No newline at end of file
diff --git a/demos/java/jni/gs_jni/callbacks.cpp b/demos/java/jni/gs_jni/callbacks.cpp
index a8ad2196..7826b328 100644
--- a/demos/java/jni/gs_jni/callbacks.cpp
+++ b/demos/java/jni/gs_jni/callbacks.cpp
@@ -174,7 +174,7 @@ int callbacks::display::displayOpenFunction(void *handle, void *device)
code = callIntMethod(g_env, g_displayCallback, "onDisplayOpen", DISPLAY_OPEN_SIG, (jlong)handle, (jlong)device);
CHECK_AND_RETURN(g_env);
}
- return 0;
+ return code;
}
int callbacks::display::displayPrecloseFunction(void *handle, void *device)
@@ -350,7 +350,18 @@ int callbacks::display::displayRectangleRequestFunction(void *handle, void *devi
Reference hRef = Reference(g_env, toWrapperType(g_env, (jint)*h));
code = callIntMethod(g_env, g_displayCallback, "onDisplayRectangleRequest", DISPLAY_RECTANGLE_REQUEST,
- (jlong)handle, (jlong)device, memoryRef, oxRef, oyRef, rasterRef, planeRasterRef, xRef, yRef, wRef, hRef);
+ (jlong)handle,
+ (jlong)device,
+ memoryRef.object(),
+ oxRef.object(),
+ oyRef.object(),
+ rasterRef.object(),
+ planeRasterRef.object(),
+ xRef.object(),
+ yRef.object(),
+ wRef.object(),
+ hRef.object()
+ );
*memory = (void *)memoryRef.longValue();
*ox = oxRef.intValue();
diff --git a/demos/java/jni/gs_jni/com_artifex_gsjava_GSAPI.cpp b/demos/java/jni/gs_jni/com_artifex_gsjava_GSAPI.cpp
index 7858112e..b28334e9 100644
--- a/demos/java/jni/gs_jni/com_artifex_gsjava_GSAPI.cpp
+++ b/demos/java/jni/gs_jni/com_artifex_gsjava_GSAPI.cpp
@@ -306,7 +306,6 @@ JNIEXPORT jint JNICALL Java_com_artifex_gsjava_GSAPI_gsapi_1set_1param
}
jboolean copy = false;
- int exitCode;
const char *cstring = (const char *)env->GetByteArrayElements(param, &copy);
callbacks::setJNIEnv(env);
@@ -326,7 +325,6 @@ JNIEXPORT jint JNICALL Java_com_artifex_gsjava_GSAPI_gsapi_1get_1param
}
jboolean copy = false;
- int exitCode;
const char *cstring = (const char *)env->GetByteArrayElements(param, &copy);
int ret = gsapi_get_param((void *)instance, cstring, (void *)value, (gs_set_param_type)paramType);
@@ -338,14 +336,13 @@ JNIEXPORT jint JNICALL Java_com_artifex_gsjava_GSAPI_gsapi_1get_1param_1once
(JNIEnv *env, jclass, jlong instance, jbyteArray param, jobject value, jint paramType)
{
jboolean copy = false;
- int exitCode;
const char *cstring = (const char *)env->GetByteArrayElements(param, &copy);
int bytes = gsapi_get_param((void *)instance, cstring, NULL, (gs_set_param_type)paramType);
if (bytes < 0)
return bytes;
- void *data = new char[bytes];
+ char *data = new char[bytes];
int code = gsapi_get_param((void *)instance, cstring, data, (gs_set_param_type)paramType);
if (code < 0)
{
diff --git a/demos/java/jni/gs_jni/com_artifex_gsjava_util_NativePointer.cpp b/demos/java/jni/gs_jni/com_artifex_gsjava_util_NativePointer.cpp
index b58c070c..04c435cb 100644
--- a/demos/java/jni/gs_jni/com_artifex_gsjava_util_NativePointer.cpp
+++ b/demos/java/jni/gs_jni/com_artifex_gsjava_util_NativePointer.cpp
@@ -47,7 +47,7 @@ JNIEXPORT jbyte JNICALL Java_com_artifex_gsjava_util_NativePointer_byteAtNative
JNIEXPORT void JNICALL Java_com_artifex_gsjava_util_NativePointer_setByteNative
(JNIEnv *, jclass, jlong address, jlong index, jbyte value)
{
- ((jbyte *)address)[index];
+ ((jbyte *)address)[index] = value;
}
JNIEXPORT jcharArray JNICALL Java_com_artifex_gsjava_util_NativePointer_charArrayNative
diff --git a/demos/java/jni/gs_jni/gs_jni.vcxproj b/demos/java/jni/gs_jni/gs_jni.vcxproj
index eae045e8..5febb0d2 100644
--- a/demos/java/jni/gs_jni/gs_jni.vcxproj
+++ b/demos/java/jni/gs_jni/gs_jni.vcxproj
@@ -91,7 +91,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
- <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\psi;$(SolutionDir)include;$(SolutionDir)..\..\..\..\..\ghostpdl\devices;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(SolutionDir)include\win32;$(SolutionDir)..\..\..\..\psi;$(SolutionDir)include;$(SolutionDir)..\..\..\..\\devices;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -112,7 +112,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
- <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\psi;$(SolutionDir)include;$(SolutionDir)..\..\..\..\..\ghostpdl\devices;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(SolutionDir)include\win32;$(SolutionDir)..\..\..\..\psi;$(SolutionDir)include;$(SolutionDir)..\..\..\..\devices;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -131,7 +131,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
- <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\psi;$(SolutionDir)include;$(SolutionDir)..\..\..\..\..\ghostpdl\devices;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(SolutionDir)include\win32;$(SolutionDir)..\..\..\..\psi;$(SolutionDir)include;$(SolutionDir)..\..\..\..\devices;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@@ -152,7 +152,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
- <AdditionalIncludeDirectories>$(SolutionDir)..\..\..\..\psi;$(SolutionDir)include;$(SolutionDir)..\..\..\..\..\ghostpdl\devices;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(SolutionDir)include\win32;$(SolutionDir)..\..\..\..\psi;$(SolutionDir)include;$(SolutionDir)..\..\..\..\devices;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
diff --git a/demos/java/jni/gs_jni/include/classfile_constants.h b/demos/java/jni/gs_jni/include/classfile_constants.h
deleted file mode 100644
index e5c20cd9..00000000
--- a/demos/java/jni/gs_jni/include/classfile_constants.h
+++ /dev/null
@@ -1,560 +0,0 @@
-/*
- * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-
-#ifndef CLASSFILE_CONSTANTS_H
-#define CLASSFILE_CONSTANTS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Classfile version number for this information */
-#define JVM_CLASSFILE_MAJOR_VERSION 52
-#define JVM_CLASSFILE_MINOR_VERSION 0
-
-/* Flags */
-
-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
-};
-
-/* Used in newarray instruction. */
-
-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
-};
-
-/* Constant Pool Entries */
-
-enum {
- JVM_CONSTANT_Utf8 = 1,
- JVM_CONSTANT_Unicode = 2, /* unused */
- 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, // JSR 292
- JVM_CONSTANT_MethodType = 16, // JSR 292
- JVM_CONSTANT_InvokeDynamic = 18
-};
-
-/* JVM_CONSTANT_MethodHandle subtypes */
-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
-};
-
-/* StackMapTable type item numbers */
-
-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
-};
-
-/* Type signatures */
-
-enum {
- 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'
-};
-
-/* Opcodes */
-
-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
-};
-
-/* Opcode length initializer, use with something like:
- * unsigned char opcode_length[JVM_OPC_MAX+1] = JVM_OPCODE_LENGTH_INITIALIZER;
- */
-#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
-} /* extern "C" */
-#endif /* __cplusplus */
-
-#endif /* CLASSFILE_CONSTANTS */
diff --git a/demos/java/jni/gs_jni/include/jawt.h b/demos/java/jni/gs_jni/include/jawt.h
deleted file mode 100644
index f06e8071..00000000
--- a/demos/java/jni/gs_jni/include/jawt.h
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-
-#ifndef _JAVASOFT_JAWT_H_
-#define _JAVASOFT_JAWT_H_
-
-#include "jni.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * AWT native interface (new in JDK 1.3)
- *
- * The AWT native interface allows a native C or C++ application a means
- * by which to access native structures in AWT. This is to facilitate moving
- * legacy C and C++ applications to Java and to target the needs of the
- * community who, at present, wish to do their own native rendering to canvases
- * for performance reasons. Standard extensions such as Java3D also require a
- * means to access the underlying native data structures of AWT.
- *
- * There may be future extensions to this API depending on demand.
- *
- * A VM does not have to implement this API in order to pass the JCK.
- * It is recommended, however, that this API is implemented on VMs that support
- * standard extensions, such as Java3D.
- *
- * Since this is a native API, any program which uses it cannot be considered
- * 100% pure java.
- */
-
-/*
- * AWT Native Drawing Surface (JAWT_DrawingSurface).
- *
- * For each platform, there is a native drawing surface structure. This
- * platform-specific structure can be found in jawt_md.h. It is recommended
- * that additional platforms follow the same model. It is also recommended
- * that VMs on Win32 and Solaris support the existing structures in jawt_md.h.
- *
- *******************
- * EXAMPLE OF USAGE:
- *******************
- *
- * In Win32, a programmer wishes to access the HWND of a canvas to perform
- * native rendering into it. The programmer has declared the paint() method
- * for their canvas subclass to be native:
- *
- *
- * MyCanvas.java:
- *
- * import java.awt.*;
- *
- * public class MyCanvas extends Canvas {
- *
- * static {
- * System.loadLibrary("mylib");
- * }
- *
- * public native void paint(Graphics g);
- * }
- *
- *
- * myfile.c:
- *
- * #include "jawt_md.h"
- * #include <assert.h>
- *
- * JNIEXPORT void JNICALL
- * Java_MyCanvas_paint(JNIEnv* env, jobject canvas, jobject graphics)
- * {
- * JAWT awt;
- * JAWT_DrawingSurface* ds;
- * JAWT_DrawingSurfaceInfo* dsi;
- * JAWT_Win32DrawingSurfaceInfo* dsi_win;
- * jboolean result;
- * jint lock;
- *
- * // Get the AWT
- * awt.version = JAWT_VERSION_1_3;
- * result = JAWT_GetAWT(env, &awt);
- * assert(result != JNI_FALSE);
- *
- * // Get the drawing surface
- * ds = awt.GetDrawingSurface(env, canvas);
- * assert(ds != NULL);
- *
- * // Lock the drawing surface
- * lock = ds->Lock(ds);
- * assert((lock & JAWT_LOCK_ERROR) == 0);
- *
- * // Get the drawing surface info
- * dsi = ds->GetDrawingSurfaceInfo(ds);
- *
- * // Get the platform-specific drawing info
- * dsi_win = (JAWT_Win32DrawingSurfaceInfo*)dsi->platformInfo;
- *
- * //////////////////////////////
- * // !!! DO PAINTING HERE !!! //
- * //////////////////////////////
- *
- * // Free the drawing surface info
- * ds->FreeDrawingSurfaceInfo(dsi);
- *
- * // Unlock the drawing surface
- * ds->Unlock(ds);
- *
- * // Free the drawing surface
- * awt.FreeDrawingSurface(ds);
- * }
- *
- */
-
-/*
- * JAWT_Rectangle
- * Structure for a native rectangle.
- */
-typedef struct jawt_Rectangle {
- jint x;
- jint y;
- jint width;
- jint height;
-} JAWT_Rectangle;
-
-struct jawt_DrawingSurface;
-
-/*
- * JAWT_DrawingSurfaceInfo
- * Structure for containing the underlying drawing information of a component.
- */
-typedef struct jawt_DrawingSurfaceInfo {
- /*
- * Pointer to the platform-specific information. This can be safely
- * cast to a JAWT_Win32DrawingSurfaceInfo on Windows or a
- * JAWT_X11DrawingSurfaceInfo on Solaris. On Mac OS X this is a
- * pointer to a NSObject that conforms to the JAWT_SurfaceLayers
- * protocol. See jawt_md.h for details.
- */
- void* platformInfo;
- /* Cached pointer to the underlying drawing surface */
- struct jawt_DrawingSurface* ds;
- /* Bounding rectangle of the drawing surface */
- JAWT_Rectangle bounds;
- /* Number of rectangles in the clip */
- jint clipSize;
- /* Clip rectangle array */
- 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
-
-/*
- * JAWT_DrawingSurface
- * Structure for containing the underlying drawing information of a component.
- * All operations on a JAWT_DrawingSurface MUST be performed from the same
- * thread as the call to GetDrawingSurface.
- */
-typedef struct jawt_DrawingSurface {
- /*
- * Cached reference to the Java environment of the calling thread.
- * If Lock(), Unlock(), GetDrawingSurfaceInfo() or
- * FreeDrawingSurfaceInfo() are called from a different thread,
- * this data member should be set before calling those functions.
- */
- JNIEnv* env;
- /* Cached reference to the target object */
- jobject target;
- /*
- * Lock the surface of the target component for native rendering.
- * When finished drawing, the surface must be unlocked with
- * Unlock(). This function returns a bitmask with one or more of the
- * following values:
- *
- * JAWT_LOCK_ERROR - When an error has occurred and the surface could not
- * be locked.
- *
- * JAWT_LOCK_CLIP_CHANGED - When the clip region has changed.
- *
- * JAWT_LOCK_BOUNDS_CHANGED - When the bounds of the surface have changed.
- *
- * JAWT_LOCK_SURFACE_CHANGED - When the surface itself has changed
- */
- jint (JNICALL *Lock)
- (struct jawt_DrawingSurface* ds);
- /*
- * Get the drawing surface info.
- * The value returned may be cached, but the values may change if
- * additional calls to Lock() or Unlock() are made.
- * Lock() must be called before this can return a valid value.
- * Returns NULL if an error has occurred.
- * When finished with the returned value, FreeDrawingSurfaceInfo must be
- * called.
- */
- JAWT_DrawingSurfaceInfo* (JNICALL *GetDrawingSurfaceInfo)
- (struct jawt_DrawingSurface* ds);
- /*
- * Free the drawing surface info.
- */
- void (JNICALL *FreeDrawingSurfaceInfo)
- (JAWT_DrawingSurfaceInfo* dsi);
- /*
- * Unlock the drawing surface of the target component for native rendering.
- */
- void (JNICALL *Unlock)
- (struct jawt_DrawingSurface* ds);
-} JAWT_DrawingSurface;
-
-/*
- * JAWT
- * Structure for containing native AWT functions.
- */
-typedef struct jawt {
- /*
- * Version of this structure. This must always be set before
- * calling JAWT_GetAWT()
- */
- jint version;
- /*
- * Return a drawing surface from a target jobject. This value
- * may be cached.
- * Returns NULL if an error has occurred.
- * Target must be a java.awt.Component (should be a Canvas
- * or Window for native rendering).
- * FreeDrawingSurface() must be called when finished with the
- * returned JAWT_DrawingSurface.
- */
- JAWT_DrawingSurface* (JNICALL *GetDrawingSurface)
- (JNIEnv* env, jobject target);
- /*
- * Free the drawing surface allocated in GetDrawingSurface.
- */
- void (JNICALL *FreeDrawingSurface)
- (JAWT_DrawingSurface* ds);
- /*
- * Since 1.4
- * Locks the entire AWT for synchronization purposes
- */
- void (JNICALL *Lock)(JNIEnv* env);
- /*
- * Since 1.4
- * Unlocks the entire AWT for synchronization purposes
- */
- void (JNICALL *Unlock)(JNIEnv* env);
- /*
- * Since 1.4
- * Returns a reference to a java.awt.Component from a native
- * platform handle. On Windows, this corresponds to an HWND;
- * on Solaris and Linux, this is a Drawable. For other platforms,
- * see the appropriate machine-dependent header file for a description.
- * The reference returned by this function is a local
- * reference that is only valid in this environment.
- * This function returns a NULL reference if no component could be
- * found with matching platform information.
- */
- jobject (JNICALL *GetComponent)(JNIEnv* env, void* platformInfo);
-
-} JAWT;
-
-/*
- * Get the AWT native structure. This function returns JNI_FALSE if
- * an error occurs.
- */
-_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
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* !_JAVASOFT_JAWT_H_ */
diff --git a/demos/java/jni/gs_jni/include/jdwpTransport.h b/demos/java/jni/gs_jni/include/jdwpTransport.h
deleted file mode 100644
index 4f4b92ed..00000000
--- a/demos/java/jni/gs_jni/include/jdwpTransport.h
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-
-/*
- * Java Debug Wire Protocol Transport Service Provider Interface.
- */
-
-#ifndef JDWPTRANSPORT_H
-#define JDWPTRANSPORT_H
-
-#include "jni.h"
-
-enum {
- JDWPTRANSPORT_VERSION_1_0 = 0x00010000
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct jdwpTransportNativeInterface_;
-
-struct _jdwpTransportEnv;
-
-#ifdef __cplusplus
-typedef _jdwpTransportEnv jdwpTransportEnv;
-#else
-typedef const struct jdwpTransportNativeInterface_ *jdwpTransportEnv;
-#endif /* __cplusplus */
-
-/*
- * Errors. Universal errors with JVMTI/JVMDI equivalents keep the
- * values the same.
- */
-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;
-
-
-/*
- * Structure to define capabilities
- */
-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;
-
-
-/*
- * Structures to define packet layout.
- *
- * See: http://java.sun.com/j2se/1.5/docs/guide/jpda/jdwp-spec.html
- */
-
-enum {
- /*
- * If additional flags are added that apply to jdwpCmdPacket,
- * then debugLoop.c: reader() will need to be updated to
- * accept more than JDWPTRANSPORT_FLAGS_NONE.
- */
- 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;
-
-/*
- * JDWP functions called by the transport.
- */
-typedef struct jdwpTransportCallback {
- void *(*alloc)(jint numBytes); /* Call this for all allocations */
- void (*free)(void *buffer); /* Call this for all deallocations */
-} jdwpTransportCallback;
-
-typedef jint (JNICALL *jdwpTransport_OnLoad_t)(JavaVM *jvm,
- jdwpTransportCallback *callback,
- jint version,
- jdwpTransportEnv** env);
-
-
-
-/* Function Interface */
-
-struct jdwpTransportNativeInterface_ {
- /* 1 : RESERVED */
- void *reserved1;
-
- /* 2 : Get Capabilities */
- jdwpTransportError (JNICALL *GetCapabilities)(jdwpTransportEnv* env,
- JDWPTransportCapabilities *capabilities_ptr);
-
- /* 3 : Attach */
- jdwpTransportError (JNICALL *Attach)(jdwpTransportEnv* env,
- const char* address,
- jlong attach_timeout,
- jlong handshake_timeout);
-
- /* 4: StartListening */
- jdwpTransportError (JNICALL *StartListening)(jdwpTransportEnv* env,
- const char* address,
- char** actual_address);
-
- /* 5: StopListening */
- jdwpTransportError (JNICALL *StopListening)(jdwpTransportEnv* env);
-
- /* 6: Accept */
- jdwpTransportError (JNICALL *Accept)(jdwpTransportEnv* env,
- jlong accept_timeout,
- jlong handshake_timeout);
-
- /* 7: IsOpen */
- jboolean (JNICALL *IsOpen)(jdwpTransportEnv* env);
-
- /* 8: Close */
- jdwpTransportError (JNICALL *Close)(jdwpTransportEnv* env);
-
- /* 9: ReadPacket */
- jdwpTransportError (JNICALL *ReadPacket)(jdwpTransportEnv* env,
- jdwpPacket *pkt);
-
- /* 10: Write Packet */
- jdwpTransportError (JNICALL *WritePacket)(jdwpTransportEnv* env,
- const jdwpPacket* pkt);
-
- /* 11: GetLastError */
- jdwpTransportError (JNICALL *GetLastError)(jdwpTransportEnv* env,
- char** error);
-
-};
-
-
-/*
- * Use inlined functions so that C++ code can use syntax such as
- * env->Attach("mymachine:5000", 10*1000, 0);
- *
- * rather than using C's :-
- *
- * (*env)->Attach(env, "mymachine:5000", 10*1000, 0);
- */
-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(void) {
- return functions->StopListening(this);
- }
-
- jdwpTransportError Accept(jlong accept_timeout, jlong handshake_timeout) {
- return functions->Accept(this, accept_timeout, handshake_timeout);
- }
-
- jboolean IsOpen(void) {
- return functions->IsOpen(this);
- }
-
- jdwpTransportError Close(void) {
- 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);
- }
-
-
-#endif /* __cplusplus */
-};
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* __cplusplus */
-
-#endif /* JDWPTRANSPORT_H */
diff --git a/demos/java/jni/gs_jni/include/jni.h b/demos/java/jni/gs_jni/include/jni.h
deleted file mode 100644
index 97b14d8a..00000000
--- a/demos/java/jni/gs_jni/include/jni.h
+++ /dev/null
@@ -1,1964 +0,0 @@
-/*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-
-/*
- * We used part of Netscape's Java Runtime Interface (JRI) as the starting
- * point of our design and implementation.
- */
-
-/******************************************************************************
- * Java Runtime Interface
- * Copyright (c) 1996 Netscape Communications Corporation. All rights reserved.
- *****************************************************************************/
-
-#ifndef _JAVASOFT_JNI_H_
-#define _JAVASOFT_JNI_H_
-
-#include <stdio.h>
-#include <stdarg.h>
-
-/* jni_md.h contains the machine-dependent typedefs for jbyte, jint
- and jlong */
-
-#ifdef _WIN32
-#include "win32/jni_md.h"
-#else
-#include "jni_md.h"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * JNI Types
- */
-
-#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;
-
-/* Return values from jobjectRefType */
-typedef enum _jobjectType {
- JNIInvalidRefType = 0,
- JNILocalRefType = 1,
- JNIGlobalRefType = 2,
- JNIWeakGlobalRefType = 3
-} jobjectRefType;
-
-
-#endif /* JNI_TYPES_ALREADY_DEFINED_IN_JNI_MD_H */
-
-/*
- * jboolean constants
- */
-
-#define JNI_FALSE 0
-#define JNI_TRUE 1
-
-/*
- * possible return values for JNI functions.
- */
-
-#define JNI_OK 0 /* success */
-#define JNI_ERR (-1) /* unknown error */
-#define JNI_EDETACHED (-2) /* thread detached from the VM */
-#define JNI_EVERSION (-3) /* JNI version error */
-#define JNI_ENOMEM (-4) /* not enough memory */
-#define JNI_EEXIST (-5) /* VM already created */
-#define JNI_EINVAL (-6) /* invalid arguments */
-
-/*
- * used in ReleaseScalarArrayElements
- */
-
-#define JNI_COMMIT 1
-#define JNI_ABORT 2
-
-/*
- * used in RegisterNatives to describe native method name, signature,
- * and function pointer.
- */
-
-typedef struct {
- char *name;
- char *signature;
- void *fnPtr;
-} JNINativeMethod;
-
-/*
- * JNI Native Method Interface.
- */
-
-struct JNINativeInterface_;
-
-struct JNIEnv_;
-
-#ifdef __cplusplus
-typedef JNIEnv_ JNIEnv;
-#else
-typedef const struct JNINativeInterface_ *JNIEnv;
-#endif
-
-/*
- * JNI Invocation Interface.
- */
-
-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);
-
- /* New JNI 1.6 Features */
-
- jobjectRefType (JNICALL *GetObjectRefType)
- (JNIEnv* env, jobject obj);
-};
-
-/*
- * We use inlined functions for C++ so that programmers can write:
- *
- * env->FindClass("java/lang/String")
- *
- * in C++ rather than:
- *
- * (*env)->FindClass(env, "java/lang/String")
- *
- * in C.
- */
-
-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;
- jobject result;
- va_start(args, methodID);
- 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;
- jobject result;
- va_start(args,methodID);
- 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;
- jboolean result;
- va_start(args,methodID);
- 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;
- jbyte result;
- va_start(args,methodID);
- 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;
- jchar result;
- va_start(args,methodID);
- 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;
- jshort result;
- va_start(args,methodID);
- 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;
- jint result;
- va_start(args,methodID);
- 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;
- jlong result;
- va_start(args,methodID);
- 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;
- jfloat result;
- va_start(args,methodID);
- 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;
- jdouble result;
- va_start(args,methodID);
- 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;
- jobject result;
- va_start(args,methodID);
- 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;
- jboolean result;
- va_start(args,methodID);
- 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;
- jbyte result;
- va_start(args,methodID);
- 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;
- jchar result;
- va_start(args,methodID);
- 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;
- jshort result;
- va_start(args,methodID);
- 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;
- jint result;
- va_start(args,methodID);
- 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;
- jlong result;
- va_start(args,methodID);
- 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;
- jfloat result;
- va_start(args,methodID);
- 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;
- jdouble result;
- va_start(args,methodID);
- 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;
- jobject result;
- va_start(args,methodID);
- 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;
- jboolean result;
- va_start(args,methodID);
- 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;
- jbyte result;
- va_start(args,methodID);
- 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;
- jchar result;
- va_start(args,methodID);
- 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;
- jshort result;
- va_start(args,methodID);
- 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;
- jint result;
- va_start(args,methodID);
- 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;
- jlong result;
- va_start(args,methodID);
- 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;
- jfloat result;
- va_start(args,methodID);
- 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;
- jdouble result;
- va_start(args,methodID);
- 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, 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);
- }
-
-#endif /* __cplusplus */
-};
-
-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;
-
-/* These will be VM-specific. */
-
-#define JDK1_2
-#define JDK1_4
-
-/* End VM-specific. */
-
-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 *);
-
-/* Defined by native libraries. */
-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
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* __cplusplus */
-
-#endif /* !_JAVASOFT_JNI_H_ */
diff --git a/demos/java/jni/gs_jni/include/jvmti.h b/demos/java/jni/gs_jni/include/jvmti.h
deleted file mode 100644
index e8de8585..00000000
--- a/demos/java/jni/gs_jni/include/jvmti.h
+++ /dev/null
@@ -1,2533 +0,0 @@
-/*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-
- /* AUTOMATICALLY GENERATED FILE - DO NOT EDIT */
-
-
- /* Include file for the Java(tm) Virtual Machine Tool Interface */
-
-#ifndef _JAVA_JVMTI_H_
-#define _JAVA_JVMTI_H_
-
-#include "jni.h"
-
-#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 = 0x30000000 + (1 * 0x10000) + (2 * 0x100) + 1 /* version: 1.2.1 */
-};
-
-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);
-
- /* Forward declaration of the environment */
-
-struct _jvmtiEnv;
-
-struct jvmtiInterface_1_;
-
-#ifdef __cplusplus
-typedef _jvmtiEnv jvmtiEnv;
-#else
-typedef const struct jvmtiInterface_1_ *jvmtiEnv;
-#endif /* __cplusplus */
-
-/* Derived Base Types */
-
-typedef jobject jthread;
-typedef jobject jthreadGroup;
-typedef jlong jlocation;
-struct _jrawMonitorID;
-typedef struct _jrawMonitorID *jrawMonitorID;
-typedef struct JNINativeInterface_ jniNativeInterface;
-
- /* Constants */
-
-
- /* Thread State Flags */
-
-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
-};
-
- /* java.lang.Thread.State Conversion Masks */
-
-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
-};
-
- /* Thread Priority Constants */
-
-enum {
- JVMTI_THREAD_MIN_PRIORITY = 1,
- JVMTI_THREAD_NORM_PRIORITY = 5,
- JVMTI_THREAD_MAX_PRIORITY = 10
-};
-
- /* Heap Filter Flags */
-
-enum {
- JVMTI_HEAP_FILTER_TAGGED = 0x4,
- JVMTI_HEAP_FILTER_UNTAGGED = 0x8,
- JVMTI_HEAP_FILTER_CLASS_TAGGED = 0x10,
- JVMTI_HEAP_FILTER_CLASS_UNTAGGED = 0x20
-};
-
- /* Heap Visit Control Flags */
-
-enum {
- JVMTI_VISIT_OBJECTS = 0x100,
- JVMTI_VISIT_ABORT = 0x8000
-};
-
- /* Heap Reference Enumeration */
-
-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;
-
- /* Primitive Type Enumeration */
-
-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;
-
- /* Heap Object Filter Enumeration */
-
-typedef enum {
- JVMTI_HEAP_OBJECT_TAGGED = 1,
- JVMTI_HEAP_OBJECT_UNTAGGED = 2,
- JVMTI_HEAP_OBJECT_EITHER = 3
-} jvmtiHeapObjectFilter;
-
- /* Heap Root Kind Enumeration */
-
-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;
-
- /* Object Reference Enumeration */
-
-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;
-
- /* Iteration Control Enumeration */
-
-typedef enum {
- JVMTI_ITERATION_CONTINUE = 1,
- JVMTI_ITERATION_IGNORE = 2,
- JVMTI_ITERATION_ABORT = 0
-} jvmtiIterationControl;
-
- /* Class Status Flags */
-
-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
-};
-
- /* Event Enable/Disable */
-
-typedef enum {
- JVMTI_ENABLE = 1,
- JVMTI_DISABLE = 0
-} jvmtiEventMode;
-
- /* Extension Function/Event Parameter Types */
-
-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;
-
- /* Extension Function/Event Parameter Kinds */
-
-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;
-
- /* Timer Kinds */
-
-typedef enum {
- JVMTI_TIMER_USER_CPU = 30,
- JVMTI_TIMER_TOTAL_CPU = 31,
- JVMTI_TIMER_ELAPSED = 32
-} jvmtiTimerKind;
-
- /* Phases of execution */
-
-typedef enum {
- JVMTI_PHASE_ONLOAD = 1,
- JVMTI_PHASE_PRIMORDIAL = 2,
- JVMTI_PHASE_START = 6,
- JVMTI_PHASE_LIVE = 4,
- JVMTI_PHASE_DEAD = 8
-} jvmtiPhase;
-
- /* Version Interface Types */
-
-enum {
- JVMTI_VERSION_INTERFACE_JNI = 0x00000000,
- JVMTI_VERSION_INTERFACE_JVMTI = 0x30000000
-};
-
- /* Version Masks */
-
-enum {
- JVMTI_VERSION_MASK_INTERFACE_TYPE = 0x70000000,
- JVMTI_VERSION_MASK_MAJOR = 0x0FFF0000,
- JVMTI_VERSION_MASK_MINOR = 0x0000FF00,
- JVMTI_VERSION_MASK_MICRO = 0x000000FF
-};
-
- /* Version Shifts */
-
-enum {
- JVMTI_VERSION_SHIFT_MAJOR = 16,
- JVMTI_VERSION_SHIFT_MINOR = 8,
- JVMTI_VERSION_SHIFT_MICRO = 0
-};
-
- /* Verbose Flag Enumeration */
-
-typedef enum {
- JVMTI_VERBOSE_OTHER = 0,
- JVMTI_VERBOSE_GC = 1,
- JVMTI_VERBOSE_CLASS = 2,
- JVMTI_VERBOSE_JNI = 4
-} jvmtiVerboseFlag;
-
- /* JLocation Format Enumeration */
-
-typedef enum {
- JVMTI_JLOCATION_JVMBCI = 1,
- JVMTI_JLOCATION_MACHINEPC = 2,
- JVMTI_JLOCATION_OTHER = 0
-} jvmtiJlocationFormat;
-
- /* Resource Exhaustion Flags */
-
-enum {
- JVMTI_RESOURCE_EXHAUSTED_OOM_ERROR = 0x0001,
- JVMTI_RESOURCE_EXHAUSTED_JAVA_HEAP = 0x0002,
- JVMTI_RESOURCE_EXHAUSTED_THREADS = 0x0004
-};
-
- /* Errors */
-
-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_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_UNMODIFIABLE_CLASS = 79,
- 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;
-
- /* Event IDs */
-
-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_MAX_EVENT_TYPE_VAL = 84
-} jvmtiEvent;
-
-
- /* Pre-Declarations */
-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;
-
- /* Function Types */
-
-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, ...);
-
-
- /* Structure Types */
-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 : 7;
- unsigned int : 16;
- unsigned int : 16;
- unsigned int : 16;
- unsigned int : 16;
- unsigned int : 16;
-} jvmtiCapabilities;
-
-
- /* Event Definitions */
-
-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 *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 *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);
-
- /* Event Callback Structure */
-
-typedef struct {
- /* 50 : VM Initialization Event */
- jvmtiEventVMInit VMInit;
- /* 51 : VM Death Event */
- jvmtiEventVMDeath VMDeath;
- /* 52 : Thread Start */
- jvmtiEventThreadStart ThreadStart;
- /* 53 : Thread End */
- jvmtiEventThreadEnd ThreadEnd;
- /* 54 : Class File Load Hook */
- jvmtiEventClassFileLoadHook ClassFileLoadHook;
- /* 55 : Class Load */
- jvmtiEventClassLoad ClassLoad;
- /* 56 : Class Prepare */
- jvmtiEventClassPrepare ClassPrepare;
- /* 57 : VM Start Event */
- jvmtiEventVMStart VMStart;
- /* 58 : Exception */
- jvmtiEventException Exception;
- /* 59 : Exception Catch */
- jvmtiEventExceptionCatch ExceptionCatch;
- /* 60 : Single Step */
- jvmtiEventSingleStep SingleStep;
- /* 61 : Frame Pop */
- jvmtiEventFramePop FramePop;
- /* 62 : Breakpoint */
- jvmtiEventBreakpoint Breakpoint;
- /* 63 : Field Access */
- jvmtiEventFieldAccess FieldAccess;
- /* 64 : Field Modification */
- jvmtiEventFieldModification FieldModification;
- /* 65 : Method Entry */
- jvmtiEventMethodEntry MethodEntry;
- /* 66 : Method Exit */
- jvmtiEventMethodExit MethodExit;
- /* 67 : Native Method Bind */
- jvmtiEventNativeMethodBind NativeMethodBind;
- /* 68 : Compiled Method Load */
- jvmtiEventCompiledMethodLoad CompiledMethodLoad;
- /* 69 : Compiled Method Unload */
- jvmtiEventCompiledMethodUnload CompiledMethodUnload;
- /* 70 : Dynamic Code Generated */
- jvmtiEventDynamicCodeGenerated DynamicCodeGenerated;
- /* 71 : Data Dump Request */
- jvmtiEventDataDumpRequest DataDumpRequest;
- /* 72 */
- jvmtiEventReserved reserved72;
- /* 73 : Monitor Wait */
- jvmtiEventMonitorWait MonitorWait;
- /* 74 : Monitor Waited */
- jvmtiEventMonitorWaited MonitorWaited;
- /* 75 : Monitor Contended Enter */
- jvmtiEventMonitorContendedEnter MonitorContendedEnter;
- /* 76 : Monitor Contended Entered */
- jvmtiEventMonitorContendedEntered MonitorContendedEntered;
- /* 77 */
- jvmtiEventReserved reserved77;
- /* 78 */
- jvmtiEventReserved reserved78;
- /* 79 */
- jvmtiEventReserved reserved79;
- /* 80 : Resource Exhausted */
- jvmtiEventResourceExhausted ResourceExhausted;
- /* 81 : Garbage Collection Start */
- jvmtiEventGarbageCollectionStart GarbageCollectionStart;
- /* 82 : Garbage Collection Finish */
- jvmtiEventGarbageCollectionFinish GarbageCollectionFinish;
- /* 83 : Object Free */
- jvmtiEventObjectFree ObjectFree;
- /* 84 : VM Object Allocation */
- jvmtiEventVMObjectAlloc VMObjectAlloc;
-} jvmtiEventCallbacks;
-
-
- /* Function Interface */
-
-typedef struct jvmtiInterface_1_ {
-
- /* 1 : RESERVED */
- void *reserved1;
-
- /* 2 : Set Event Notification Mode */
- jvmtiError (JNICALL *SetEventNotificationMode) (jvmtiEnv* env,
- jvmtiEventMode mode,
- jvmtiEvent event_type,
- jthread event_thread,
- ...);
-
- /* 3 : RESERVED */
- void *reserved3;
-
- /* 4 : Get All Threads */
- jvmtiError (JNICALL *GetAllThreads) (jvmtiEnv* env,
- jint* threads_count_ptr,
- jthread** threads_ptr);
-
- /* 5 : Suspend Thread */
- jvmtiError (JNICALL *SuspendThread) (jvmtiEnv* env,
- jthread thread);
-
- /* 6 : Resume Thread */
- jvmtiError (JNICALL *ResumeThread) (jvmtiEnv* env,
- jthread thread);
-
- /* 7 : Stop Thread */
- jvmtiError (JNICALL *StopThread) (jvmtiEnv* env,
- jthread thread,
- jobject exception);
-
- /* 8 : Interrupt Thread */
- jvmtiError (JNICALL *InterruptThread) (jvmtiEnv* env,
- jthread thread);
-
- /* 9 : Get Thread Info */
- jvmtiError (JNICALL *GetThreadInfo) (jvmtiEnv* env,
- jthread thread,
- jvmtiThreadInfo* info_ptr);
-
- /* 10 : Get Owned Monitor Info */
- jvmtiError (JNICALL *GetOwnedMonitorInfo) (jvmtiEnv* env,
- jthread thread,
- jint* owned_monitor_count_ptr,
- jobject** owned_monitors_ptr);
-
- /* 11 : Get Current Contended Monitor */
- jvmtiError (JNICALL *GetCurrentContendedMonitor) (jvmtiEnv* env,
- jthread thread,
- jobject* monitor_ptr);
-
- /* 12 : Run Agent Thread */
- jvmtiError (JNICALL *RunAgentThread) (jvmtiEnv* env,
- jthread thread,
- jvmtiStartFunction proc,
- const void* arg,
- jint priority);
-
- /* 13 : Get Top Thread Groups */
- jvmtiError (JNICALL *GetTopThreadGroups) (jvmtiEnv* env,
- jint* group_count_ptr,
- jthreadGroup** groups_ptr);
-
- /* 14 : Get Thread Group Info */
- jvmtiError (JNICALL *GetThreadGroupInfo) (jvmtiEnv* env,
- jthreadGroup group,
- jvmtiThreadGroupInfo* info_ptr);
-
- /* 15 : Get Thread Group Children */
- jvmtiError (JNICALL *GetThreadGroupChildren) (jvmtiEnv* env,
- jthreadGroup group,
- jint* thread_count_ptr,
- jthread** threads_ptr,
- jint* group_count_ptr,
- jthreadGroup** groups_ptr);
-
- /* 16 : Get Frame Count */
- jvmtiError (JNICALL *GetFrameCount) (jvmtiEnv* env,
- jthread thread,
- jint* count_ptr);
-
- /* 17 : Get Thread State */
- jvmtiError (JNICALL *GetThreadState) (jvmtiEnv* env,
- jthread thread,
- jint* thread_state_ptr);
-
- /* 18 : Get Current Thread */
- jvmtiError (JNICALL *GetCurrentThread) (jvmtiEnv* env,
- jthread* thread_ptr);
-
- /* 19 : Get Frame Location */
- jvmtiError (JNICALL *GetFrameLocation) (jvmtiEnv* env,
- jthread thread,
- jint depth,
- jmethodID* method_ptr,
- jlocation* location_ptr);
-
- /* 20 : Notify Frame Pop */
- jvmtiError (JNICALL *NotifyFramePop) (jvmtiEnv* env,
- jthread thread,
- jint depth);
-
- /* 21 : Get Local Variable - Object */
- jvmtiError (JNICALL *GetLocalObject) (jvmtiEnv* env,
- jthread thread,
- jint depth,
- jint slot,
- jobject* value_ptr);
-
- /* 22 : Get Local Variable - Int */
- jvmtiError (JNICALL *GetLocalInt) (jvmtiEnv* env,
- jthread thread,
- jint depth,
- jint slot,
- jint* value_ptr);
-
- /* 23 : Get Local Variable - Long */
- jvmtiError (JNICALL *GetLocalLong) (jvmtiEnv* env,
- jthread thread,
- jint depth,
- jint slot,
- jlong* value_ptr);
-
- /* 24 : Get Local Variable - Float */
- jvmtiError (JNICALL *GetLocalFloat) (jvmtiEnv* env,
- jthread thread,
- jint depth,
- jint slot,
- jfloat* value_ptr);
-
- /* 25 : Get Local Variable - Double */
- jvmtiError (JNICALL *GetLocalDouble) (jvmtiEnv* env,
- jthread thread,
- jint depth,
- jint slot,
- jdouble* value_ptr);
-
- /* 26 : Set Local Variable - Object */
- jvmtiError (JNICALL *SetLocalObject) (jvmtiEnv* env,
- jthread thread,
- jint depth,
- jint slot,
- jobject value);
-
- /* 27 : Set Local Variable - Int */
- jvmtiError (JNICALL *SetLocalInt) (jvmtiEnv* env,
- jthread thread,
- jint depth,
- jint slot,
- jint value);
-
- /* 28 : Set Local Variable - Long */
- jvmtiError (JNICALL *SetLocalLong) (jvmtiEnv* env,
- jthread thread,
- jint depth,
- jint slot,
- jlong value);
-
- /* 29 : Set Local Variable - Float */
- jvmtiError (JNICALL *SetLocalFloat) (jvmtiEnv* env,
- jthread thread,
- jint depth,
- jint slot,
- jfloat value);
-
- /* 30 : Set Local Variable - Double */
- jvmtiError (JNICALL *SetLocalDouble) (jvmtiEnv* env,
- jthread thread,
- jint depth,
- jint slot,
- jdouble value);
-
- /* 31 : Create Raw Monitor */
- jvmtiError (JNICALL *CreateRawMonitor) (jvmtiEnv* env,
- const char* name,
- jrawMonitorID* monitor_ptr);
-
- /* 32 : Destroy Raw Monitor */
- jvmtiError (JNICALL *DestroyRawMonitor) (jvmtiEnv* env,
- jrawMonitorID monitor);
-
- /* 33 : Raw Monitor Enter */
- jvmtiError (JNICALL *RawMonitorEnter) (jvmtiEnv* env,
- jrawMonitorID monitor);
-
- /* 34 : Raw Monitor Exit */
- jvmtiError (JNICALL *RawMonitorExit) (jvmtiEnv* env,
- jrawMonitorID monitor);
-
- /* 35 : Raw Monitor Wait */
- jvmtiError (JNICALL *RawMonitorWait) (jvmtiEnv* env,
- jrawMonitorID monitor,
- jlong millis);
-
- /* 36 : Raw Monitor Notify */
- jvmtiError (JNICALL *RawMonitorNotify) (jvmtiEnv* env,
- jrawMonitorID monitor);
-
- /* 37 : Raw Monitor Notify All */
- jvmtiError (JNICALL *RawMonitorNotifyAll) (jvmtiEnv* env,
- jrawMonitorID monitor);
-
- /* 38 : Set Breakpoint */
- jvmtiError (JNICALL *SetBreakpoint) (jvmtiEnv* env,
- jmethodID method,
- jlocation location);
-
- /* 39 : Clear Breakpoint */
- jvmtiError (JNICALL *ClearBreakpoint) (jvmtiEnv* env,
- jmethodID method,
- jlocation location);
-
- /* 40 : RESERVED */
- void *reserved40;
-
- /* 41 : Set Field Access Watch */
- jvmtiError (JNICALL *SetFieldAccessWatch) (jvmtiEnv* env,
- jclass klass,
- jfieldID field);
-
- /* 42 : Clear Field Access Watch */
- jvmtiError (JNICALL *ClearFieldAccessWatch) (jvmtiEnv* env,
- jclass klass,
- jfieldID field);
-
- /* 43 : Set Field Modification Watch */
- jvmtiError (JNICALL *SetFieldModificationWatch) (jvmtiEnv* env,
- jclass klass,
- jfieldID field);
-
- /* 44 : Clear Field Modification Watch */
- jvmtiError (JNICALL *ClearFieldModificationWatch) (jvmtiEnv* env,
- jclass klass,
- jfieldID field);
-
- /* 45 : Is Modifiable Class */
- jvmtiError (JNICALL *IsModifiableClass) (jvmtiEnv* env,
- jclass klass,
- jboolean* is_modifiable_class_ptr);
-
- /* 46 : Allocate */
- jvmtiError (JNICALL *Allocate) (jvmtiEnv* env,
- jlong size,
- unsigned char** mem_ptr);
-
- /* 47 : Deallocate */
- jvmtiError (JNICALL *Deallocate) (jvmtiEnv* env,
- unsigned char* mem);
-
- /* 48 : Get Class Signature */
- jvmtiError (JNICALL *GetClassSignature) (jvmtiEnv* env,
- jclass klass,
- char** signature_ptr,
- char** generic_ptr);
-
- /* 49 : Get Class Status */
- jvmtiError (JNICALL *GetClassStatus) (jvmtiEnv* env,
- jclass klass,
- jint* status_ptr);
-
- /* 50 : Get Source File Name */
- jvmtiError (JNICALL *GetSourceFileName) (jvmtiEnv* env,
- jclass klass,
- char** source_name_ptr);
-
- /* 51 : Get Class Modifiers */
- jvmtiError (JNICALL *GetClassModifiers) (jvmtiEnv* env,
- jclass klass,
- jint* modifiers_ptr);
-
- /* 52 : Get Class Methods */
- jvmtiError (JNICALL *GetClassMethods) (jvmtiEnv* env,
- jclass klass,
- jint* method_count_ptr,
- jmethodID** methods_ptr);
-
- /* 53 : Get Class Fields */
- jvmtiError (JNICALL *GetClassFields) (jvmtiEnv* env,
- jclass klass,
- jint* field_count_ptr,
- jfieldID** fields_ptr);
-
- /* 54 : Get Implemented Interfaces */
- jvmtiError (JNICALL *GetImplementedInterfaces) (jvmtiEnv* env,
- jclass klass,
- jint* interface_count_ptr,
- jclass** interfaces_ptr);
-
- /* 55 : Is Interface */
- jvmtiError (JNICALL *IsInterface) (jvmtiEnv* env,
- jclass klass,
- jboolean* is_interface_ptr);
-
- /* 56 : Is Array Class */
- jvmtiError (JNICALL *IsArrayClass) (jvmtiEnv* env,
- jclass klass,
- jboolean* is_array_class_ptr);
-
- /* 57 : Get Class Loader */
- jvmtiError (JNICALL *GetClassLoader) (jvmtiEnv* env,
- jclass klass,
- jobject* classloader_ptr);
-
- /* 58 : Get Object Hash Code */
- jvmtiError (JNICALL *GetObjectHashCode) (jvmtiEnv* env,
- jobject object,
- jint* hash_code_ptr);
-
- /* 59 : Get Object Monitor Usage */
- jvmtiError (JNICALL *GetObjectMonitorUsage) (jvmtiEnv* env,
- jobject object,
- jvmtiMonitorUsage* info_ptr);
-
- /* 60 : Get Field Name (and Signature) */
- jvmtiError (JNICALL *GetFieldName) (jvmtiEnv* env,
- jclass klass,
- jfieldID field,
- char** name_ptr,
- char** signature_ptr,
- char** generic_ptr);
-
- /* 61 : Get Field Declaring Class */
- jvmtiError (JNICALL *GetFieldDeclaringClass) (jvmtiEnv* env,
- jclass klass,
- jfieldID field,
- jclass* declaring_class_ptr);
-
- /* 62 : Get Field Modifiers */
- jvmtiError (JNICALL *GetFieldModifiers) (jvmtiEnv* env,
- jclass klass,
- jfieldID field,
- jint* modifiers_ptr);
-
- /* 63 : Is Field Synthetic */
- jvmtiError (JNICALL *IsFieldSynthetic) (jvmtiEnv* env,
- jclass klass,
- jfieldID field,
- jboolean* is_synthetic_ptr);
-
- /* 64 : Get Method Name (and Signature) */
- jvmtiError (JNICALL *GetMethodName) (jvmtiEnv* env,
- jmethodID method,
- char** name_ptr,
- char** signature_ptr,
- char** generic_ptr);
-
- /* 65 : Get Method Declaring Class */
- jvmtiError (JNICALL *GetMethodDeclaringClass) (jvmtiEnv* env,
- jmethodID method,
- jclass* declaring_class_ptr);
-
- /* 66 : Get Method Modifiers */
- jvmtiError (JNICALL *GetMethodModifiers) (jvmtiEnv* env,
- jmethodID method,
- jint* modifiers_ptr);
-
- /* 67 : RESERVED */
- void *reserved67;
-
- /* 68 : Get Max Locals */
- jvmtiError (JNICALL *GetMaxLocals) (jvmtiEnv* env,
- jmethodID method,
- jint* max_ptr);
-
- /* 69 : Get Arguments Size */
- jvmtiError (JNICALL *GetArgumentsSize) (jvmtiEnv* env,
- jmethodID method,
- jint* size_ptr);
-
- /* 70 : Get Line Number Table */
- jvmtiError (JNICALL *GetLineNumberTable) (jvmtiEnv* env,
- jmethodID method,
- jint* entry_count_ptr,
- jvmtiLineNumberEntry** table_ptr);
-
- /* 71 : Get Method Location */
- jvmtiError (JNICALL *GetMethodLocation) (jvmtiEnv* env,
- jmethodID method,
- jlocation* start_location_ptr,
- jlocation* end_location_ptr);
-
- /* 72 : Get Local Variable Table */
- jvmtiError (JNICALL *GetLocalVariableTable) (jvmtiEnv* env,
- jmethodID method,
- jint* entry_count_ptr,
- jvmtiLocalVariableEntry** table_ptr);
-
- /* 73 : Set Native Method Prefix */
- jvmtiError (JNICALL *SetNativeMethodPrefix) (jvmtiEnv* env,
- const char* prefix);
-
- /* 74 : Set Native Method Prefixes */
- jvmtiError (JNICALL *SetNativeMethodPrefixes) (jvmtiEnv* env,
- jint prefix_count,
- char** prefixes);
-
- /* 75 : Get Bytecodes */
- jvmtiError (JNICALL *GetBytecodes) (jvmtiEnv* env,
- jmethodID method,
- jint* bytecode_count_ptr,
- unsigned char** bytecodes_ptr);
-
- /* 76 : Is Method Native */
- jvmtiError (JNICALL *IsMethodNative) (jvmtiEnv* env,
- jmethodID method,
- jboolean* is_native_ptr);
-
- /* 77 : Is Method Synthetic */
- jvmtiError (JNICALL *IsMethodSynthetic) (jvmtiEnv* env,
- jmethodID method,
- jboolean* is_synthetic_ptr);
-
- /* 78 : Get Loaded Classes */
- jvmtiError (JNICALL *GetLoadedClasses) (jvmtiEnv* env,
- jint* class_count_ptr,
- jclass** classes_ptr);
-
- /* 79 : Get Classloader Classes */
- jvmtiError (JNICALL *GetClassLoaderClasses) (jvmtiEnv* env,
- jobject initiating_loader,
- jint* class_count_ptr,
- jclass** classes_ptr);
-
- /* 80 : Pop Frame */
- jvmtiError (JNICALL *PopFrame) (jvmtiEnv* env,
- jthread thread);
-
- /* 81 : Force Early Return - Object */
- jvmtiError (JNICALL *ForceEarlyReturnObject) (jvmtiEnv* env,
- jthread thread,
- jobject value);
-
- /* 82 : Force Early Return - Int */
- jvmtiError (JNICALL *ForceEarlyReturnInt) (jvmtiEnv* env,
- jthread thread,
- jint value);
-
- /* 83 : Force Early Return - Long */
- jvmtiError (JNICALL *ForceEarlyReturnLong) (jvmtiEnv* env,
- jthread thread,
- jlong value);
-
- /* 84 : Force Early Return - Float */
- jvmtiError (JNICALL *ForceEarlyReturnFloat) (jvmtiEnv* env,
- jthread thread,
- jfloat value);
-
- /* 85 : Force Early Return - Double */
- jvmtiError (JNICALL *ForceEarlyReturnDouble) (jvmtiEnv* env,
- jthread thread,
- jdouble value);
-
- /* 86 : Force Early Return - Void */
- jvmtiError (JNICALL *ForceEarlyReturnVoid) (jvmtiEnv* env,
- jthread thread);
-
- /* 87 : Redefine Classes */
- jvmtiError (JNICALL *RedefineClasses) (jvmtiEnv* env,
- jint class_count,
- const jvmtiClassDefinition* class_definitions);
-
- /* 88 : Get Version Number */
- jvmtiError (JNICALL *GetVersionNumber) (jvmtiEnv* env,
- jint* version_ptr);
-
- /* 89 : Get Capabilities */
- jvmtiError (JNICALL *GetCapabilities) (jvmtiEnv* env,
- jvmtiCapabilities* capabilities_ptr);
-
- /* 90 : Get Source Debug Extension */
- jvmtiError (JNICALL *GetSourceDebugExtension) (jvmtiEnv* env,
- jclass klass,
- char** source_debug_extension_ptr);
-
- /* 91 : Is Method Obsolete */
- jvmtiError (JNICALL *IsMethodObsolete) (jvmtiEnv* env,
- jmethodID method,
- jboolean* is_obsolete_ptr);
-
- /* 92 : Suspend Thread List */
- jvmtiError (JNICALL *SuspendThreadList) (jvmtiEnv* env,
- jint request_count,
- const jthread* request_list,
- jvmtiError* results);
-
- /* 93 : Resume Thread List */
- jvmtiError (JNICALL *ResumeThreadList) (jvmtiEnv* env,
- jint request_count,
- const jthread* request_list,
- jvmtiError* results);
-
- /* 94 : RESERVED */
- void *reserved94;
-
- /* 95 : RESERVED */
- void *reserved95;
-
- /* 96 : RESERVED */
- void *reserved96;
-
- /* 97 : RESERVED */
- void *reserved97;
-
- /* 98 : RESERVED */
- void *reserved98;
-
- /* 99 : RESERVED */
- void *reserved99;
-
- /* 100 : Get All Stack Traces */
- jvmtiError (JNICALL *GetAllStackTraces) (jvmtiEnv* env,
- jint max_frame_count,
- jvmtiStackInfo** stack_info_ptr,
- jint* thread_count_ptr);
-
- /* 101 : Get Thread List Stack Traces */
- jvmtiError (JNICALL *GetThreadListStackTraces) (jvmtiEnv* env,
- jint thread_count,
- const jthread* thread_list,
- jint max_frame_count,
- jvmtiStackInfo** stack_info_ptr);
-
- /* 102 : Get Thread Local Storage */
- jvmtiError (JNICALL *GetThreadLocalStorage) (jvmtiEnv* env,
- jthread thread,
- void** data_ptr);
-
- /* 103 : Set Thread Local Storage */
- jvmtiError (JNICALL *SetThreadLocalStorage) (jvmtiEnv* env,
- jthread thread,
- const void* data);
-
- /* 104 : Get Stack Trace */
- jvmtiError (JNICALL *GetStackTrace) (jvmtiEnv* env,
- jthread thread,
- jint start_depth,
- jint max_frame_count,
- jvmtiFrameInfo* frame_buffer,
- jint* count_ptr);
-
- /* 105 : RESERVED */
- void *reserved105;
-
- /* 106 : Get Tag */
- jvmtiError (JNICALL *GetTag) (jvmtiEnv* env,
- jobject object,
- jlong* tag_ptr);
-
- /* 107 : Set Tag */
- jvmtiError (JNICALL *SetTag) (jvmtiEnv* env,
- jobject object,
- jlong tag);
-
- /* 108 : Force Garbage Collection */
- jvmtiError (JNICALL *ForceGarbageCollection) (jvmtiEnv* env);
-
- /* 109 : Iterate Over Objects Reachable From Object */
- jvmtiError (JNICALL *IterateOverObjectsReachableFromObject) (jvmtiEnv* env,
- jobject object,
- jvmtiObjectReferenceCallback object_reference_callback,
- const void* user_data);
-
- /* 110 : Iterate Over Reachable Objects */
- jvmtiError (JNICALL *IterateOverReachableObjects) (jvmtiEnv* env,
- jvmtiHeapRootCallback heap_root_callback,
- jvmtiStackReferenceCallback stack_ref_callback,
- jvmtiObjectReferenceCallback object_ref_callback,
- const void* user_data);
-
- /* 111 : Iterate Over Heap */
- jvmtiError (JNICALL *IterateOverHeap) (jvmtiEnv* env,
- jvmtiHeapObjectFilter object_filter,
- jvmtiHeapObjectCallback heap_object_callback,
- const void* user_data);
-
- /* 112 : Iterate Over Instances Of Class */
- jvmtiError (JNICALL *IterateOverInstancesOfClass) (jvmtiEnv* env,
- jclass klass,
- jvmtiHeapObjectFilter object_filter,
- jvmtiHeapObjectCallback heap_object_callback,
- const void* user_data);
-
- /* 113 : RESERVED */
- void *reserved113;
-
- /* 114 : Get Objects With Tags */
- jvmtiError (JNICALL *GetObjectsWithTags) (jvmtiEnv* env,
- jint tag_count,
- const jlong* tags,
- jint* count_ptr,
- jobject** object_result_ptr,
- jlong** tag_result_ptr);
-
- /* 115 : Follow References */
- jvmtiError (JNICALL *FollowReferences) (jvmtiEnv* env,
- jint heap_filter,
- jclass klass,
- jobject initial_object,
- const jvmtiHeapCallbacks* callbacks,
- const void* user_data);
-
- /* 116 : Iterate Through Heap */
- jvmtiError (JNICALL *IterateThroughHeap) (jvmtiEnv* env,
- jint heap_filter,
- jclass klass,
- const jvmtiHeapCallbacks* callbacks,
- const void* user_data);
-
- /* 117 : RESERVED */
- void *reserved117;
-
- /* 118 : RESERVED */
- void *reserved118;
-
- /* 119 : RESERVED */
- void *reserved119;
-
- /* 120 : Set JNI Function Table */
- jvmtiError (JNICALL *SetJNIFunctionTable) (jvmtiEnv* env,
- const jniNativeInterface* function_table);
-
- /* 121 : Get JNI Function Table */
- jvmtiError (JNICALL *GetJNIFunctionTable) (jvmtiEnv* env,
- jniNativeInterface** function_table);
-
- /* 122 : Set Event Callbacks */
- jvmtiError (JNICALL *SetEventCallbacks) (jvmtiEnv* env,
- const jvmtiEventCallbacks* callbacks,
- jint size_of_callbacks);
-
- /* 123 : Generate Events */
- jvmtiError (JNICALL *GenerateEvents) (jvmtiEnv* env,
- jvmtiEvent event_type);
-
- /* 124 : Get Extension Functions */
- jvmtiError (JNICALL *GetExtensionFunctions) (jvmtiEnv* env,
- jint* extension_count_ptr,
- jvmtiExtensionFunctionInfo** extensions);
-
- /* 125 : Get Extension Events */
- jvmtiError (JNICALL *GetExtensionEvents) (jvmtiEnv* env,
- jint* extension_count_ptr,
- jvmtiExtensionEventInfo** extensions);
-
- /* 126 : Set Extension Event Callback */
- jvmtiError (JNICALL *SetExtensionEventCallback) (jvmtiEnv* env,
- jint extension_event_index,
- jvmtiExtensionEvent callback);
-
- /* 127 : Dispose Environment */
- jvmtiError (JNICALL *DisposeEnvironment) (jvmtiEnv* env);
-
- /* 128 : Get Error Name */
- jvmtiError (JNICALL *GetErrorName) (jvmtiEnv* env,
- jvmtiError error,
- char** name_ptr);
-
- /* 129 : Get JLocation Format */
- jvmtiError (JNICALL *GetJLocationFormat) (jvmtiEnv* env,
- jvmtiJlocationFormat* format_ptr);
-
- /* 130 : Get System Properties */
- jvmtiError (JNICALL *GetSystemProperties) (jvmtiEnv* env,
- jint* count_ptr,
- char*** property_ptr);
-
- /* 131 : Get System Property */
- jvmtiError (JNICALL *GetSystemProperty) (jvmtiEnv* env,
- const char* property,
- char** value_ptr);
-
- /* 132 : Set System Property */
- jvmtiError (JNICALL *SetSystemProperty) (jvmtiEnv* env,
- const char* property,
- const char* value);
-
- /* 133 : Get Phase */
- jvmtiError (JNICALL *GetPhase) (jvmtiEnv* env,
- jvmtiPhase* phase_ptr);
-
- /* 134 : Get Current Thread CPU Timer Information */
- jvmtiError (JNICALL *GetCurrentThreadCpuTimerInfo) (jvmtiEnv* env,
- jvmtiTimerInfo* info_ptr);
-
- /* 135 : Get Current Thread CPU Time */
- jvmtiError (JNICALL *GetCurrentThreadCpuTime) (jvmtiEnv* env,
- jlong* nanos_ptr);
-
- /* 136 : Get Thread CPU Timer Information */
- jvmtiError (JNICALL *GetThreadCpuTimerInfo) (jvmtiEnv* env,
- jvmtiTimerInfo* info_ptr);
-
- /* 137 : Get Thread CPU Time */
- jvmtiError (JNICALL *GetThreadCpuTime) (jvmtiEnv* env,
- jthread thread,
- jlong* nanos_ptr);
-
- /* 138 : Get Timer Information */
- jvmtiError (JNICALL *GetTimerInfo) (jvmtiEnv* env,
- jvmtiTimerInfo* info_ptr);
-
- /* 139 : Get Time */
- jvmtiError (JNICALL *GetTime) (jvmtiEnv* env,
- jlong* nanos_ptr);
-
- /* 140 : Get Potential Capabilities */
- jvmtiError (JNICALL *GetPotentialCapabilities) (jvmtiEnv* env,
- jvmtiCapabilities* capabilities_ptr);
-
- /* 141 : RESERVED */
- void *reserved141;
-
- /* 142 : Add Capabilities */
- jvmtiError (JNICALL *AddCapabilities) (jvmtiEnv* env,
- const jvmtiCapabilities* capabilities_ptr);
-
- /* 143 : Relinquish Capabilities */
- jvmtiError (JNICALL *RelinquishCapabilities) (jvmtiEnv* env,
- const jvmtiCapabilities* capabilities_ptr);
-
- /* 144 : Get Available Processors */
- jvmtiError (JNICALL *GetAvailableProcessors) (jvmtiEnv* env,
- jint* processor_count_ptr);
-
- /* 145 : Get Class Version Numbers */
- jvmtiError (JNICALL *GetClassVersionNumbers) (jvmtiEnv* env,
- jclass klass,
- jint* minor_version_ptr,
- jint* major_version_ptr);
-
- /* 146 : Get Constant Pool */
- jvmtiError (JNICALL *GetConstantPool) (jvmtiEnv* env,
- jclass klass,
- jint* constant_pool_count_ptr,
- jint* constant_pool_byte_count_ptr,
- unsigned char** constant_pool_bytes_ptr);
-
- /* 147 : Get Environment Local Storage */
- jvmtiError (JNICALL *GetEnvironmentLocalStorage) (jvmtiEnv* env,
- void** data_ptr);
-
- /* 148 : Set Environment Local Storage */
- jvmtiError (JNICALL *SetEnvironmentLocalStorage) (jvmtiEnv* env,
- const void* data);
-
- /* 149 : Add To Bootstrap Class Loader Search */
- jvmtiError (JNICALL *AddToBootstrapClassLoaderSearch) (jvmtiEnv* env,
- const char* segment);
-
- /* 150 : Set Verbose Flag */
- jvmtiError (JNICALL *SetVerboseFlag) (jvmtiEnv* env,
- jvmtiVerboseFlag flag,
- jboolean value);
-
- /* 151 : Add To System Class Loader Search */
- jvmtiError (JNICALL *AddToSystemClassLoaderSearch) (jvmtiEnv* env,
- const char* segment);
-
- /* 152 : Retransform Classes */
- jvmtiError (JNICALL *RetransformClasses) (jvmtiEnv* env,
- jint class_count,
- const jclass* classes);
-
- /* 153 : Get Owned Monitor Stack Depth Info */
- jvmtiError (JNICALL *GetOwnedMonitorStackDepthInfo) (jvmtiEnv* env,
- jthread thread,
- jint* monitor_info_count_ptr,
- jvmtiMonitorStackDepthInfo** monitor_info_ptr);
-
- /* 154 : Get Object Size */
- jvmtiError (JNICALL *GetObjectSize) (jvmtiEnv* env,
- jobject object,
- jlong* size_ptr);
-
- /* 155 : Get Local Instance */
- jvmtiError (JNICALL *GetLocalInstance) (jvmtiEnv* env,
- jthread thread,
- jint depth,
- jobject* value_ptr);
-
-} 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 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 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 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) {
- return functions->SetSystemProperty(this, property, value);
- }
-
- 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);
- }
-
-#endif /* __cplusplus */
-};
-
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* __cplusplus */
-
-#endif /* !_JAVA_JVMTI_H_ */ \ No newline at end of file
diff --git a/demos/java/jni/gs_jni/include/jvmticmlr.h b/demos/java/jni/gs_jni/include/jvmticmlr.h
deleted file mode 100644
index a9c88f36..00000000
--- a/demos/java/jni/gs_jni/include/jvmticmlr.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-
-/*
- * This header file defines the data structures sent by the VM
- * through the JVMTI CompiledMethodLoad callback function via the
- * "void * compile_info" parameter. The memory pointed to by the
- * compile_info parameter may not be referenced after returning from
- * the CompiledMethodLoad callback. These are VM implementation
- * specific data structures that may evolve in future releases. A
- * JVMTI agent should interpret a non-NULL compile_info as a pointer
- * to a region of memory containing a list of records. In a typical
- * usage scenario, a JVMTI agent would cast each record to a
- * jvmtiCompiledMethodLoadRecordHeader, a struct that represents
- * arbitrary information. This struct contains a kind field to indicate
- * the kind of information being passed, and a pointer to the next
- * record. If the kind field indicates inlining information, then the
- * agent would cast the record to a jvmtiCompiledMethodLoadInlineRecord.
- * This record contains an array of PCStackInfo structs, which indicate
- * for every pc address what are the methods on the invocation stack.
- * The "methods" and "bcis" fields in each PCStackInfo struct specify a
- * 1-1 mapping between these inlined methods and their bytecode indices.
- * This can be used to derive the proper source lines of the inlined
- * methods.
- */
-
-#ifndef _JVMTI_CMLR_H_
-#define _JVMTI_CMLR_H_
-
-enum {
- JVMTI_CMLR_MAJOR_VERSION_1 = 0x00000001,
- JVMTI_CMLR_MINOR_VERSION_0 = 0x00000000,
-
- JVMTI_CMLR_MAJOR_VERSION = 0x00000001,
- JVMTI_CMLR_MINOR_VERSION = 0x00000000
-
- /*
- * This comment is for the "JDK import from HotSpot" sanity check:
- * version: 1.0.0
- */
-};
-
-typedef enum {
- JVMTI_CMLR_DUMMY = 1,
- JVMTI_CMLR_INLINE_INFO = 2
-} jvmtiCMLRKind;
-
-/*
- * Record that represents arbitrary information passed through JVMTI
- * CompiledMethodLoadEvent void pointer.
- */
-typedef struct _jvmtiCompiledMethodLoadRecordHeader {
- jvmtiCMLRKind kind; /* id for the kind of info passed in the record */
- jint majorinfoversion; /* major and minor info version values. Init'ed */
- jint minorinfoversion; /* to current version value in jvmtiExport.cpp. */
-
- struct _jvmtiCompiledMethodLoadRecordHeader* next;
-} jvmtiCompiledMethodLoadRecordHeader;
-
-/*
- * Record that gives information about the methods on the compile-time
- * stack at a specific pc address of a compiled method. Each element in
- * the methods array maps to same element in the bcis array.
- */
-typedef struct _PCStackInfo {
- void* pc; /* the pc address for this compiled method */
- jint numstackframes; /* number of methods on the stack */
- jmethodID* methods; /* array of numstackframes method ids */
- jint* bcis; /* array of numstackframes bytecode indices */
-} PCStackInfo;
-
-/*
- * Record that contains inlining information for each pc address of
- * an nmethod.
- */
-typedef struct _jvmtiCompiledMethodLoadInlineRecord {
- jvmtiCompiledMethodLoadRecordHeader header; /* common header for casting */
- jint numpcs; /* number of pc descriptors in this nmethod */
- PCStackInfo* pcinfo; /* array of numpcs pc descriptors */
-} jvmtiCompiledMethodLoadInlineRecord;
-
-/*
- * Dummy record used to test that we can pass records with different
- * information through the void pointer provided that they can be cast
- * to a jvmtiCompiledMethodLoadRecordHeader.
- */
-
-typedef struct _jvmtiCompiledMethodLoadDummyRecord {
- jvmtiCompiledMethodLoadRecordHeader header; /* common header for casting */
- char message[50];
-} jvmtiCompiledMethodLoadDummyRecord;
-
-#endif
diff --git a/demos/java/jni/gs_jni/include/win32/bridge/AccessBridgeCallbacks.h b/demos/java/jni/gs_jni/include/win32/bridge/AccessBridgeCallbacks.h
deleted file mode 100644
index df5035b8..00000000
--- a/demos/java/jni/gs_jni/include/win32/bridge/AccessBridgeCallbacks.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-
-/*
- * AccessBridgeCallbacks.h 1.17 05/03/21
- */
-
-/*
- * Header file defining callback typedefs for Windows routines
- * which are called from Java (responding to events, etc.).
- */
-
-#ifndef __AccessBridgeCallbacks_H__
-#define __AccessBridgeCallbacks_H__
-
-#include <jni.h>
-#include "AccessBridgePackages.h"
-
-#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
diff --git a/demos/java/jni/gs_jni/include/win32/bridge/AccessBridgeCalls.c b/demos/java/jni/gs_jni/include/win32/bridge/AccessBridgeCalls.c
deleted file mode 100644
index 36866481..00000000
--- a/demos/java/jni/gs_jni/include/win32/bridge/AccessBridgeCalls.c
+++ /dev/null
@@ -1,1131 +0,0 @@
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-
-/*
- * @(#)AccessBridgeCalls.c 1.25 05/08/22
- */
-
-/*
- * Wrapper functions around calls to the AccessBridge DLL
- */
-
-
-#include <windows.h>
-#include <jni.h>
-
-
-//#define ACCESSBRIDGE_32
-//#define ACCESSBRIDGE_64
-
-#include "AccessBridgeCalls.h"
-#include "AccessBridgeDebug.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- HINSTANCE theAccessBridgeInstance;
- AccessBridgeFPs theAccessBridge;
-
- BOOL theAccessBridgeInitializedFlag = FALSE;
-
-#define LOAD_FP(result, type, name) \
- PrintDebugString("LOAD_FP loading: %s ...", name); \
- if ((theAccessBridge.result = \
- (type) GetProcAddress(theAccessBridgeInstance, name)) == (type) 0) { \
- PrintDebugString("LOAD_FP failed: %s", name); \
- return FALSE; \
- }
-
- BOOL initializeAccessBridge() {
-
-#ifdef ACCESSBRIDGE_ARCH_32 // For 32bit AT new bridge
- theAccessBridgeInstance = LoadLibrary("WINDOWSACCESSBRIDGE-32");
-#else
-#ifdef ACCESSBRIDGE_ARCH_64 // For 64bit AT new bridge
- theAccessBridgeInstance = LoadLibrary("WINDOWSACCESSBRIDGE-64");
-#else // legacy
- theAccessBridgeInstance = LoadLibrary("WINDOWSACCESSBRIDGE");
-#endif
-#endif
- if (theAccessBridgeInstance != 0) {
- LOAD_FP(Windows_run, Windows_runFP, "Windows_run");
-
- LOAD_FP(SetJavaShutdown, SetJavaShutdownFP, "setJavaShutdownFP");
- LOAD_FP(SetFocusGained, SetFocusGainedFP, "setFocusGainedFP");
- LOAD_FP(SetFocusLost, SetFocusLostFP, "setFocusLostFP");
-
- LOAD_FP(SetCaretUpdate, SetCaretUpdateFP, "setCaretUpdateFP");
-
- LOAD_FP(SetMouseClicked, SetMouseClickedFP, "setMouseClickedFP");
- LOAD_FP(SetMouseEntered, SetMouseEnteredFP, "setMouseEnteredFP");
- LOAD_FP(SetMouseExited, SetMouseExitedFP, "setMouseExitedFP");
- LOAD_FP(SetMousePressed, SetMousePressedFP, "setMousePressedFP");
- LOAD_FP(SetMouseReleased, SetMouseReleasedFP, "setMouseReleasedFP");
-
- LOAD_FP(SetMenuCanceled, SetMenuCanceledFP, "setMenuCanceledFP");
- LOAD_FP(SetMenuDeselected, SetMenuDeselectedFP, "setMenuDeselectedFP");
- LOAD_FP(SetMenuSelected, SetMenuSelectedFP, "setMenuSelectedFP");
- LOAD_FP(SetPopupMenuCanceled, SetPopupMenuCanceledFP, "setPopupMenuCanceledFP");
- LOAD_FP(SetPopupMenuWillBecomeInvisible, SetPopupMenuWillBecomeInvisibleFP, "setPopupMenuWillBecomeInvisibleFP");
- LOAD_FP(SetPopupMenuWillBecomeVisible, SetPopupMenuWillBecomeVisibleFP, "setPopupMenuWillBecomeVisibleFP");
-
- LOAD_FP(SetPropertyNameChange, SetPropertyNameChangeFP, "setPropertyNameChangeFP");
- LOAD_FP(SetPropertyDescriptionChange, SetPropertyDescriptionChangeFP, "setPropertyDescriptionChangeFP");
- LOAD_FP(SetPropertyStateChange, SetPropertyStateChangeFP, "setPropertyStateChangeFP");
- LOAD_FP(SetPropertyValueChange, SetPropertyValueChangeFP, "setPropertyValueChangeFP");
- LOAD_FP(SetPropertySelectionChange, SetPropertySelectionChangeFP, "setPropertySelectionChangeFP");
- LOAD_FP(SetPropertyTextChange, SetPropertyTextChangeFP, "setPropertyTextChangeFP");
- LOAD_FP(SetPropertyCaretChange, SetPropertyCaretChangeFP, "setPropertyCaretChangeFP");
- LOAD_FP(SetPropertyVisibleDataChange, SetPropertyVisibleDataChangeFP, "setPropertyVisibleDataChangeFP");
- LOAD_FP(SetPropertyChildChange, SetPropertyChildChangeFP, "setPropertyChildChangeFP");
- LOAD_FP(SetPropertyActiveDescendentChange, SetPropertyActiveDescendentChangeFP, "setPropertyActiveDescendentChangeFP");
-
- LOAD_FP(SetPropertyTableModelChange, SetPropertyTableModelChangeFP, "setPropertyTableModelChangeFP");
-
- LOAD_FP(ReleaseJavaObject, ReleaseJavaObjectFP, "releaseJavaObject");
- LOAD_FP(GetVersionInfo, GetVersionInfoFP, "getVersionInfo");
-
- LOAD_FP(IsJavaWindow, IsJavaWindowFP, "isJavaWindow");
- LOAD_FP(IsSameObject, IsSameObjectFP, "isSameObject");
- LOAD_FP(GetAccessibleContextFromHWND, GetAccessibleContextFromHWNDFP, "getAccessibleContextFromHWND");
- LOAD_FP(getHWNDFromAccessibleContext, getHWNDFromAccessibleContextFP, "getHWNDFromAccessibleContext");
-
- LOAD_FP(GetAccessibleContextAt, GetAccessibleContextAtFP, "getAccessibleContextAt");
- LOAD_FP(GetAccessibleContextWithFocus, GetAccessibleContextWithFocusFP, "getAccessibleContextWithFocus");
- LOAD_FP(GetAccessibleContextInfo, GetAccessibleContextInfoFP, "getAccessibleContextInfo");
- LOAD_FP(GetAccessibleChildFromContext, GetAccessibleChildFromContextFP, "getAccessibleChildFromContext");
- LOAD_FP(GetAccessibleParentFromContext, GetAccessibleParentFromContextFP, "getAccessibleParentFromContext");
-
- /* begin AccessibleTable */
- LOAD_FP(getAccessibleTableInfo, getAccessibleTableInfoFP, "getAccessibleTableInfo");
- LOAD_FP(getAccessibleTableCellInfo, getAccessibleTableCellInfoFP, "getAccessibleTableCellInfo");
-
- LOAD_FP(getAccessibleTableRowHeader, getAccessibleTableRowHeaderFP, "getAccessibleTableRowHeader");
- LOAD_FP(getAccessibleTableColumnHeader, getAccessibleTableColumnHeaderFP, "getAccessibleTableColumnHeader");
-
- LOAD_FP(getAccessibleTableRowDescription, getAccessibleTableRowDescriptionFP, "getAccessibleTableRowDescription");
- LOAD_FP(getAccessibleTableColumnDescription, getAccessibleTableColumnDescriptionFP, "getAccessibleTableColumnDescription");
-
- LOAD_FP(getAccessibleTableRowSelectionCount, getAccessibleTableRowSelectionCountFP,
- "getAccessibleTableRowSelectionCount");
- LOAD_FP(isAccessibleTableRowSelected, isAccessibleTableRowSelectedFP,
- "isAccessibleTableRowSelected");
- LOAD_FP(getAccessibleTableRowSelections, getAccessibleTableRowSelectionsFP,
- "getAccessibleTableRowSelections");
-
- LOAD_FP(getAccessibleTableColumnSelectionCount, getAccessibleTableColumnSelectionCountFP,
- "getAccessibleTableColumnSelectionCount");
- LOAD_FP(isAccessibleTableColumnSelected, isAccessibleTableColumnSelectedFP,
- "isAccessibleTableColumnSelected");
- LOAD_FP(getAccessibleTableColumnSelections, getAccessibleTableColumnSelectionsFP,
- "getAccessibleTableColumnSelections");
-
- LOAD_FP(getAccessibleTableRow, getAccessibleTableRowFP,
- "getAccessibleTableRow");
- LOAD_FP(getAccessibleTableColumn, getAccessibleTableColumnFP,
- "getAccessibleTableColumn");
- LOAD_FP(getAccessibleTableIndex, getAccessibleTableIndexFP,
- "getAccessibleTableIndex");
-
- /* end AccessibleTable */
-
- /* AccessibleRelationSet */
- LOAD_FP(getAccessibleRelationSet, getAccessibleRelationSetFP, "getAccessibleRelationSet");
-
- /* AccessibleHypertext */
- LOAD_FP(getAccessibleHypertext, getAccessibleHypertextFP, "getAccessibleHypertext");
- LOAD_FP(activateAccessibleHyperlink, activateAccessibleHyperlinkFP, "activateAccessibleHyperlink");
- LOAD_FP(getAccessibleHyperlinkCount, getAccessibleHyperlinkCountFP, "getAccessibleHyperlinkCount");
- LOAD_FP(getAccessibleHypertextExt, getAccessibleHypertextExtFP, "getAccessibleHypertextExt");
- LOAD_FP(getAccessibleHypertextLinkIndex, getAccessibleHypertextLinkIndexFP, "getAccessibleHypertextLinkIndex");
- LOAD_FP(getAccessibleHyperlink, getAccessibleHyperlinkFP, "getAccessibleHyperlink");
-
- /* Accessible KeyBinding, Icon and Action */
- LOAD_FP(getAccessibleKeyBindings, getAccessibleKeyBindingsFP, "getAccessibleKeyBindings");
- LOAD_FP(getAccessibleIcons, getAccessibleIconsFP, "getAccessibleIcons");
- LOAD_FP(getAccessibleActions, getAccessibleActionsFP, "getAccessibleActions");
- LOAD_FP(doAccessibleActions, doAccessibleActionsFP, "doAccessibleActions");
-
- /* AccessibleText */
- LOAD_FP(GetAccessibleTextInfo, GetAccessibleTextInfoFP, "getAccessibleTextInfo");
- LOAD_FP(GetAccessibleTextItems, GetAccessibleTextItemsFP, "getAccessibleTextItems");
- LOAD_FP(GetAccessibleTextSelectionInfo, GetAccessibleTextSelectionInfoFP, "getAccessibleTextSelectionInfo");
- LOAD_FP(GetAccessibleTextAttributes, GetAccessibleTextAttributesFP, "getAccessibleTextAttributes");
- LOAD_FP(GetAccessibleTextRect, GetAccessibleTextRectFP, "getAccessibleTextRect");
- LOAD_FP(GetAccessibleTextLineBounds, GetAccessibleTextLineBoundsFP, "getAccessibleTextLineBounds");
- LOAD_FP(GetAccessibleTextRange, GetAccessibleTextRangeFP, "getAccessibleTextRange");
-
- LOAD_FP(GetCurrentAccessibleValueFromContext, GetCurrentAccessibleValueFromContextFP, "getCurrentAccessibleValueFromContext");
- LOAD_FP(GetMaximumAccessibleValueFromContext, GetMaximumAccessibleValueFromContextFP, "getMaximumAccessibleValueFromContext");
- LOAD_FP(GetMinimumAccessibleValueFromContext, GetMinimumAccessibleValueFromContextFP, "getMinimumAccessibleValueFromContext");
-
- LOAD_FP(AddAccessibleSelectionFromContext, AddAccessibleSelectionFromContextFP, "addAccessibleSelectionFromContext");
- LOAD_FP(ClearAccessibleSelectionFromContext, ClearAccessibleSelectionFromContextFP, "clearAccessibleSelectionFromContext");
- LOAD_FP(GetAccessibleSelectionFromContext, GetAccessibleSelectionFromContextFP, "getAccessibleSelectionFromContext");
- LOAD_FP(GetAccessibleSelectionCountFromContext, GetAccessibleSelectionCountFromContextFP, "getAccessibleSelectionCountFromContext");
- LOAD_FP(IsAccessibleChildSelectedFromContext, IsAccessibleChildSelectedFromContextFP, "isAccessibleChildSelectedFromContext");
- LOAD_FP(RemoveAccessibleSelectionFromContext, RemoveAccessibleSelectionFromContextFP, "removeAccessibleSelectionFromContext");
- LOAD_FP(SelectAllAccessibleSelectionFromContext, SelectAllAccessibleSelectionFromContextFP, "selectAllAccessibleSelectionFromContext");
-
- LOAD_FP(setTextContents, setTextContentsFP, "setTextContents");
- LOAD_FP(getParentWithRole, getParentWithRoleFP, "getParentWithRole");
- LOAD_FP(getTopLevelObject, getTopLevelObjectFP, "getTopLevelObject");
- LOAD_FP(getParentWithRoleElseRoot, getParentWithRoleElseRootFP, "getParentWithRoleElseRoot");
- LOAD_FP(getObjectDepth, getObjectDepthFP, "getObjectDepth");
- LOAD_FP(getActiveDescendent, getActiveDescendentFP, "getActiveDescendent");
-
- // additional methods for Teton
- LOAD_FP(getVirtualAccessibleName, getVirtualAccessibleNameFP, "getVirtualAccessibleName");
- LOAD_FP(requestFocus, requestFocusFP, "requestFocus");
- LOAD_FP(selectTextRange, selectTextRangeFP, "selectTextRange");
- LOAD_FP(getTextAttributesInRange, getTextAttributesInRangeFP, "getTextAttributesInRange");
- LOAD_FP(getVisibleChildrenCount, getVisibleChildrenCountFP, "getVisibleChildrenCount");
- LOAD_FP(getVisibleChildren, getVisibleChildrenFP, "getVisibleChildren");
- LOAD_FP(setCaretPosition, setCaretPositionFP, "setCaretPosition");
- LOAD_FP(getCaretLocation, getCaretLocationFP, "getCaretLocation");
-
- LOAD_FP(getEventsWaiting, getEventsWaitingFP, "getEventsWaiting");
-
- theAccessBridge.Windows_run();
-
- theAccessBridgeInitializedFlag = TRUE;
- PrintDebugString("theAccessBridgeInitializedFlag = TRUE");
- return TRUE;
- } else {
- return FALSE;
- }
- }
-
-
- BOOL shutdownAccessBridge() {
- BOOL result;
- DWORD error;
- theAccessBridgeInitializedFlag = FALSE;
- if (theAccessBridgeInstance != (HANDLE) 0) {
- result = FreeLibrary(theAccessBridgeInstance);
- if (result != TRUE) {
- error = GetLastError();
- }
- return TRUE;
- }
- return FALSE;
- }
-
-
- void SetJavaShutdown(AccessBridge_JavaShutdownFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetJavaShutdown(fp);
- }
- }
-
- void SetFocusGained(AccessBridge_FocusGainedFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetFocusGained(fp);
- }
- }
-
- void SetFocusLost(AccessBridge_FocusLostFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetFocusLost(fp);
- }
- }
-
-
- void SetCaretUpdate(AccessBridge_CaretUpdateFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetCaretUpdate(fp);
- }
- }
-
-
- void SetMouseClicked(AccessBridge_MouseClickedFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetMouseClicked(fp);
- }
- }
-
- void SetMouseEntered(AccessBridge_MouseEnteredFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetMouseEntered(fp);
- }
- }
-
- void SetMouseExited(AccessBridge_MouseExitedFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetMouseExited(fp);
- }
- }
-
- void SetMousePressed(AccessBridge_MousePressedFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetMousePressed(fp);
- }
- }
-
- void SetMouseReleased(AccessBridge_MouseReleasedFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetMouseReleased(fp);
- }
- }
-
-
- void SetMenuCanceled(AccessBridge_MenuCanceledFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetMenuCanceled(fp);
- }
- }
-
- void SetMenuDeselected(AccessBridge_MenuDeselectedFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetMenuDeselected(fp);
- }
- }
-
- void SetMenuSelected(AccessBridge_MenuSelectedFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetMenuSelected(fp);
- }
- }
-
- void SetPopupMenuCanceled(AccessBridge_PopupMenuCanceledFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetPopupMenuCanceled(fp);
- }
- }
-
- void SetPopupMenuWillBecomeInvisible(AccessBridge_PopupMenuWillBecomeInvisibleFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetPopupMenuWillBecomeInvisible(fp);
- }
- }
-
- void SetPopupMenuWillBecomeVisible(AccessBridge_PopupMenuWillBecomeVisibleFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetPopupMenuWillBecomeVisible(fp);
- }
- }
-
-
- void SetPropertyNameChange(AccessBridge_PropertyNameChangeFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetPropertyNameChange(fp);
- }
- }
-
- void SetPropertyDescriptionChange(AccessBridge_PropertyDescriptionChangeFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetPropertyDescriptionChange(fp);
- }
- }
-
- void SetPropertyStateChange(AccessBridge_PropertyStateChangeFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetPropertyStateChange(fp);
- }
- }
-
- void SetPropertyValueChange(AccessBridge_PropertyValueChangeFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetPropertyValueChange(fp);
- }
- }
-
- void SetPropertySelectionChange(AccessBridge_PropertySelectionChangeFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetPropertySelectionChange(fp);
- }
- }
-
- void SetPropertyTextChange(AccessBridge_PropertyTextChangeFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetPropertyTextChange(fp);
- }
- }
-
- void SetPropertyCaretChange(AccessBridge_PropertyCaretChangeFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetPropertyCaretChange(fp);
- }
- }
-
- void SetPropertyVisibleDataChange(AccessBridge_PropertyVisibleDataChangeFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetPropertyVisibleDataChange(fp);
- }
- }
-
- void SetPropertyChildChange(AccessBridge_PropertyChildChangeFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetPropertyChildChange(fp);
- }
- }
-
- void SetPropertyActiveDescendentChange(AccessBridge_PropertyActiveDescendentChangeFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetPropertyActiveDescendentChange(fp);
- }
- }
-
- void SetPropertyTableModelChange(AccessBridge_PropertyTableModelChangeFP fp) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SetPropertyTableModelChange(fp);
- }
- }
-
- /**
- * General routines
- */
- void ReleaseJavaObject(long vmID, Java_Object object) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.ReleaseJavaObject(vmID, object);
- }
- }
-
- BOOL GetVersionInfo(long vmID, AccessBridgeVersionInfo *info) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetVersionInfo(vmID, info);
- }
- return FALSE;
- }
-
-
- /**
- * Window routines
- */
- BOOL IsJavaWindow(HWND window) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- BOOL ret ;
- ret = theAccessBridge.IsJavaWindow(window);
- return ret ;
-
- }
- return FALSE;
- }
-
-
- /**
- * Returns the virtual machine ID and AccessibleContext for a top-level window
- */
- BOOL GetAccessibleContextFromHWND(HWND target, long *vmID, AccessibleContext *ac) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetAccessibleContextFromHWND(target, vmID, ac);
- }
- return FALSE;
- }
-
- /**
- * Returns the HWND from the AccessibleContext of a top-level window. Returns 0
- * on error or if the AccessibleContext does not refer to a top-level window.
- */
- HWND getHWNDFromAccessibleContext(long vmID, JOBJECT64 accesibleContext) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getHWNDFromAccessibleContext(vmID, accesibleContext);
- }
- return (HWND)0;
- }
-
- /**
- * returns whether two objects are the same
- */
- BOOL IsSameObject(long vmID, JOBJECT64 obj1, JOBJECT64 obj2) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.IsSameObject(vmID, obj1, obj2);
- }
- return FALSE;
- }
-
- /**
- * Sets editable text contents. The AccessibleContext must implement AccessibleEditableText and
- * be editable. The maximum text length is MAX_STRING_SIZE - 1.
- * Returns whether successful
- */
- BOOL setTextContents (const long vmID, const AccessibleContext accessibleContext, const wchar_t *text) {
-
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.setTextContents(vmID, accessibleContext, text);
- }
- return FALSE;
- }
-
- /**
- * Returns the Accessible Context with the specified role that is the
- * ancestor of a given object. The role is one of the role strings
- * defined in AccessBridgePackages.h
- * If there is no ancestor object that has the specified role,
- * returns (AccessibleContext)0.
- */
- AccessibleContext getParentWithRole (const long vmID, const AccessibleContext accessibleContext,
- const wchar_t *role) {
-
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getParentWithRole(vmID, accessibleContext, role);
- }
- return (AccessibleContext)0;
- }
-
- /**
- * Returns the Accessible Context with the specified role that is the
- * ancestor of a given object. The role is one of the role strings
- * defined in AccessBridgePackages.h. If an object with the specified
- * role does not exist, returns the top level object for the Java Window.
- * Returns (AccessibleContext)0 on error.
- */
- AccessibleContext getParentWithRoleElseRoot (const long vmID, const AccessibleContext accessibleContext,
- const wchar_t *role) {
-
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getParentWithRoleElseRoot(vmID, accessibleContext, role);
- }
- return (AccessibleContext)0;
- }
-
- /**
- * Returns the Accessible Context for the top level object in
- * a Java Window. This is same Accessible Context that is obtained
- * from GetAccessibleContextFromHWND for that window. Returns
- * (AccessibleContext)0 on error.
- */
- AccessibleContext getTopLevelObject (const long vmID, const AccessibleContext accessibleContext) {
-
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getTopLevelObject(vmID, accessibleContext);
- }
- return (AccessibleContext)0;
- }
-
- /**
- * Returns how deep in the object hierarchy a given object is.
- * The top most object in the object hierarchy has an object depth of 0.
- * Returns -1 on error.
- */
- int getObjectDepth (const long vmID, const AccessibleContext accessibleContext) {
-
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getObjectDepth(vmID, accessibleContext);
- }
- return -1;
- }
-
- /**
- * Returns the Accessible Context of the current ActiveDescendent of an object.
- * This method assumes the ActiveDescendent is the component that is currently
- * selected in a container object.
- * Returns (AccessibleContext)0 on error or if there is no selection.
- */
- AccessibleContext getActiveDescendent (const long vmID, const AccessibleContext accessibleContext) {
-
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getActiveDescendent(vmID, accessibleContext);
- }
- return (AccessibleContext)0;
- }
-
-
- /**
- * Accessible Context routines
- */
- BOOL GetAccessibleContextAt(long vmID, AccessibleContext acParent,
- jint x, jint y, AccessibleContext *ac) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetAccessibleContextAt(vmID, acParent, x, y, ac);
- }
- return FALSE;
- }
-
- BOOL GetAccessibleContextWithFocus(HWND window, long *vmID, AccessibleContext *ac) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetAccessibleContextWithFocus(window, vmID, ac);
- }
- return FALSE;
- }
-
- BOOL GetAccessibleContextInfo(long vmID, AccessibleContext ac, AccessibleContextInfo *info) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetAccessibleContextInfo(vmID, ac, info);
- }
- return FALSE;
- }
-
- AccessibleContext GetAccessibleChildFromContext(long vmID, AccessibleContext ac, jint index) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetAccessibleChildFromContext(vmID, ac, index);
- }
- return (AccessibleContext) 0;
- }
-
- AccessibleContext GetAccessibleParentFromContext(long vmID, AccessibleContext ac) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetAccessibleParentFromContext(vmID, ac);
- }
- return (AccessibleContext) 0;
- }
-
- /* begin AccessibleTable routines */
-
- /*
- * get information about an AccessibleTable
- */
- BOOL getAccessibleTableInfo(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleTableInfo(vmID, acParent, tableInfo);
- }
- return FALSE;
- }
-
- /*
- * get information about an AccessibleTable cell
- */
- BOOL getAccessibleTableCellInfo(long vmID, AccessibleTable accessibleTable,
- jint row, jint column, AccessibleTableCellInfo *tableCellInfo) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleTableCellInfo(vmID, accessibleTable, row, column, tableCellInfo);
- }
- return FALSE;
- }
-
- /*
- * get information about an AccessibleTable row header
- */
- BOOL getAccessibleTableRowHeader(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleTableRowHeader(vmID, acParent, tableInfo);
- }
- return FALSE;
- }
-
- /*
- * get information about an AccessibleTable column header
- */
- BOOL getAccessibleTableColumnHeader(long vmID, AccessibleContext acParent, AccessibleTableInfo *tableInfo) {
-
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleTableColumnHeader(vmID, acParent, tableInfo);
- }
- return FALSE;
- }
-
- /*
- * return a description of an AccessibleTable row header
- */
- AccessibleContext getAccessibleTableRowDescription(long vmID, AccessibleContext acParent, jint row) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleTableRowDescription(vmID, acParent, row);
- }
- return (AccessibleContext)0;
- }
-
- /*
- * return a description of an AccessibleTable column header
- */
- AccessibleContext getAccessibleTableColumnDescription(long vmID, AccessibleContext acParent, jint column) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleTableColumnDescription(vmID, acParent, column);
- }
- return (AccessibleContext)0;
- }
-
- /*
- * return the number of rows selected in an AccessibleTable
- */
- jint getAccessibleTableRowSelectionCount(long vmID, AccessibleTable table) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleTableRowSelectionCount(vmID, table);
- }
- return -1;
- }
-
- /*
- * return whether a row is selected in an AccessibleTable
- */
- BOOL isAccessibleTableRowSelected(long vmID, AccessibleTable table, jint row) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.isAccessibleTableRowSelected(vmID, table, row);
- }
- return FALSE;
- }
-
- /*
- * get an array of selected rows in an AccessibleTable
- */
- BOOL getAccessibleTableRowSelections(long vmID, AccessibleTable table, jint count, jint *selections) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleTableRowSelections(vmID, table, count, selections);
- }
- return FALSE;
- }
-
- /*
- * return the number of columns selected in an AccessibleTable
- */
- jint getAccessibleTableColumnSelectionCount(long vmID, AccessibleTable table) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleTableColumnSelectionCount(vmID, table);
- }
- return -1;
- }
-
- /*
- * return whether a column is selected in an AccessibleTable
- */
- BOOL isAccessibleTableColumnSelected(long vmID, AccessibleTable table, jint column) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.isAccessibleTableColumnSelected(vmID, table, column);
- }
- return FALSE;
- }
-
- /*
- * get an array of columns selected in an AccessibleTable
- */
- BOOL getAccessibleTableColumnSelections(long vmID, AccessibleTable table, jint count, jint *selections) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleTableColumnSelections(vmID, table, count, selections);
- }
- return FALSE;
- }
-
- /*
- * return the row number for a cell at a given index
- */
- jint
- getAccessibleTableRow(long vmID, AccessibleTable table, jint index) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleTableRow(vmID, table, index);
- }
- return -1;
- }
-
- /*
- * return the column number for a cell at a given index
- */
- jint
- getAccessibleTableColumn(long vmID, AccessibleTable table, jint index) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleTableColumn(vmID, table, index);
- }
- return -1;
- }
-
- /*
- * return the index of a cell at a given row and column
- */
- jint
- getAccessibleTableIndex(long vmID, AccessibleTable table, jint row, jint column) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleTableIndex(vmID, table, row, column);
- }
- return -1;
- }
-
- /* end AccessibleTable routines */
-
-
- /**
- * Accessible Text routines
- */
- BOOL GetAccessibleTextInfo(long vmID, AccessibleText at, AccessibleTextInfo *textInfo, jint x, jint y) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetAccessibleTextInfo(vmID, at, textInfo, x, y);
- }
- return FALSE;
- }
-
- BOOL GetAccessibleTextItems(long vmID, AccessibleText at, AccessibleTextItemsInfo *textItems, jint index) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetAccessibleTextItems(vmID, at, textItems, index);
- }
- return FALSE;
- }
-
- BOOL GetAccessibleTextSelectionInfo(long vmID, AccessibleText at, AccessibleTextSelectionInfo *textSelection) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetAccessibleTextSelectionInfo(vmID, at, textSelection);
- }
- return FALSE;
- }
-
- BOOL GetAccessibleTextAttributes(long vmID, AccessibleText at, jint index, AccessibleTextAttributesInfo *attributes) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetAccessibleTextAttributes(vmID, at, index, attributes);
- }
- return FALSE;
- }
-
- BOOL GetAccessibleTextRect(long vmID, AccessibleText at, AccessibleTextRectInfo *rectInfo, jint index) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetAccessibleTextRect(vmID, at, rectInfo, index);
- }
- return FALSE;
- }
-
- BOOL GetAccessibleTextLineBounds(long vmID, AccessibleText at, jint index, jint *startIndex, jint *endIndex) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetAccessibleTextLineBounds(vmID, at, index, startIndex, endIndex);
- }
- return FALSE;
- }
-
- BOOL GetAccessibleTextRange(long vmID, AccessibleText at, jint start, jint end, wchar_t *text, short len) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetAccessibleTextRange(vmID, at, start, end, text, len);
- }
- return FALSE;
- }
-
- /**
- * AccessibleRelationSet routines
- */
- BOOL getAccessibleRelationSet(long vmID, AccessibleContext accessibleContext,
- AccessibleRelationSetInfo *relationSetInfo) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleRelationSet(vmID, accessibleContext, relationSetInfo);
- }
- return FALSE;
- }
-
- /**
- * AccessibleHypertext routines
- */
-
- // Gets AccessibleHypertext for an AccessibleContext
- BOOL getAccessibleHypertext(long vmID, AccessibleContext accessibleContext,
- AccessibleHypertextInfo *hypertextInfo) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleHypertext(vmID, accessibleContext, hypertextInfo);
- }
- return FALSE;
- }
-
- // Activates an AccessibleHyperlink for an AccessibleContext
- BOOL activateAccessibleHyperlink(long vmID, AccessibleContext accessibleContext,
- AccessibleHyperlink accessibleHyperlink) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.activateAccessibleHyperlink(vmID, accessibleContext, accessibleHyperlink);
- }
- return FALSE;
- }
-
- /*
- * Returns the number of hyperlinks in a component
- * Maps to AccessibleHypertext.getLinkCount.
- * Returns -1 on error.
- */
- jint getAccessibleHyperlinkCount(const long vmID,
- const AccessibleContext accessibleContext) {
-
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleHyperlinkCount(vmID, accessibleContext);
- }
- return -1;
- }
-
- /*
- * This method is used to iterate through the hyperlinks in a component. It
- * returns hypertext information for a component starting at hyperlink index
- * nStartIndex. No more than MAX_HYPERLINKS AccessibleHypertextInfo objects will
- * be returned for each call to this method.
- * returns FALSE on error.
- */
- BOOL getAccessibleHypertextExt(const long vmID,
- const AccessibleContext accessibleContext,
- const jint nStartIndex,
- /* OUT */ AccessibleHypertextInfo *hypertextInfo) {
-
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleHypertextExt(vmID,
- accessibleContext,
- nStartIndex,
- hypertextInfo);
- }
- return FALSE;
- }
-
- /*
- * Returns the index into an array of hyperlinks that is associated with
- * a character index in document;
- * Maps to AccessibleHypertext.getLinkIndex.
- * Returns -1 on error.
- */
- jint getAccessibleHypertextLinkIndex(const long vmID,
- const AccessibleHypertext hypertext,
- const jint nIndex) {
-
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleHypertextLinkIndex(vmID,
- hypertext,
- nIndex);
- }
- return -1;
- }
-
- /*
- * Returns the nth hyperlink in a document.
- * Maps to AccessibleHypertext.getLink.
- * Returns -1 on error
- */
- BOOL getAccessibleHyperlink(const long vmID,
- const AccessibleHypertext hypertext,
- const jint nIndex,
- /* OUT */ AccessibleHyperlinkInfo *hyperlinkInfo) {
-
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleHyperlink(vmID,
- hypertext,
- nIndex,
- hyperlinkInfo);
- }
- return FALSE;
- }
-
-
- /* Accessible KeyBindings, Icons and Actions */
- BOOL getAccessibleKeyBindings(long vmID, AccessibleContext accessibleContext,
- AccessibleKeyBindings *keyBindings) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleKeyBindings(vmID, accessibleContext, keyBindings);
- }
- return FALSE;
- }
-
- BOOL getAccessibleIcons(long vmID, AccessibleContext accessibleContext,
- AccessibleIcons *icons) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleIcons(vmID, accessibleContext, icons);
- }
- return FALSE;
- }
-
- BOOL getAccessibleActions(long vmID, AccessibleContext accessibleContext,
- AccessibleActions *actions) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getAccessibleActions(vmID, accessibleContext, actions);
- }
- return FALSE;
- }
-
- BOOL doAccessibleActions(long vmID, AccessibleContext accessibleContext,
- AccessibleActionsToDo *actionsToDo, jint *failure) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.doAccessibleActions(vmID, accessibleContext, actionsToDo, failure);
- }
- return FALSE;
- }
-
- /**
- * Accessible Value routines
- */
- BOOL GetCurrentAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetCurrentAccessibleValueFromContext(vmID, av, value, len);
- }
- return FALSE;
- }
-
- BOOL GetMaximumAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetMaximumAccessibleValueFromContext(vmID, av, value, len);
- }
- return FALSE;
- }
-
- BOOL GetMinimumAccessibleValueFromContext(long vmID, AccessibleValue av, wchar_t *value, short len) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetMinimumAccessibleValueFromContext(vmID, av, value, len);
- }
- return FALSE;
- }
-
-
- /**
- * Accessible Selection routines
- */
- void addAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.AddAccessibleSelectionFromContext(vmID, as, i);
- }
- }
-
- void clearAccessibleSelectionFromContext(long vmID, AccessibleSelection as) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.ClearAccessibleSelectionFromContext(vmID, as);
- }
- }
-
- JOBJECT64 GetAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetAccessibleSelectionFromContext(vmID, as, i);
- }
- return (JOBJECT64) 0;
- }
-
- int GetAccessibleSelectionCountFromContext(long vmID, AccessibleSelection as) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.GetAccessibleSelectionCountFromContext(vmID, as);
- }
- return -1;
- }
-
- BOOL IsAccessibleChildSelectedFromContext(long vmID, AccessibleSelection as, int i) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.IsAccessibleChildSelectedFromContext(vmID, as, i);
- }
- return FALSE;
- }
-
- void RemoveAccessibleSelectionFromContext(long vmID, AccessibleSelection as, int i) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.RemoveAccessibleSelectionFromContext(vmID, as, i);
- }
- }
-
- void SelectAllAccessibleSelectionFromContext(long vmID, AccessibleSelection as) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- theAccessBridge.SelectAllAccessibleSelectionFromContext(vmID, as);
- }
- }
-
- /**
- * Additional methods for Teton
- */
-
- /**
- * Gets the AccessibleName for a component based upon the JAWS algorithm. Returns
- * whether successful.
- *
- * Bug ID 4916682 - Implement JAWS AccessibleName policy
- */
- BOOL getVirtualAccessibleName(const long vmID, const AccessibleContext accessibleContext,
- wchar_t *name, int len) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getVirtualAccessibleName(vmID, accessibleContext, name, len);
- }
- return FALSE;
- }
-
- /**
- * Request focus for a component. Returns whether successful;
- *
- * Bug ID 4944757 - requestFocus method needed
- */
- BOOL requestFocus(const long vmID, const AccessibleContext accessibleContext) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.requestFocus(vmID, accessibleContext);
- }
- return FALSE;
- }
-
- /**
- * Selects text between two indices. Selection includes the text at the start index
- * and the text at the end index. Returns whether successful;
- *
- * Bug ID 4944758 - selectTextRange method needed
- */
- BOOL selectTextRange(const long vmID, const AccessibleContext accessibleContext,
- const int startIndex, const int endIndex) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.selectTextRange(vmID, accessibleContext, startIndex, endIndex);
- }
- return FALSE;
- }
-
- /**
- * Get text attributes between two indices. The attribute list includes the text at the
- * start index and the text at the end index. Returns whether successful;
- *
- * Bug ID 4944761 - getTextAttributes between two indices method needed
- */
- BOOL getTextAttributesInRange(const long vmID, const AccessibleContext accessibleContext,
- const int startIndex, const int endIndex,
- AccessibleTextAttributesInfo *attributes, short *len) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getTextAttributesInRange(vmID, accessibleContext, startIndex,
- endIndex, attributes, len);
- }
- return FALSE;
- }
-
- /**
- * Returns the number of visible children of a component. Returns -1 on error.
- *
- * Bug ID 4944762- getVisibleChildren for list-like components needed
- */
- int getVisibleChildrenCount(const long vmID, const AccessibleContext accessibleContext) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getVisibleChildrenCount(vmID, accessibleContext);
- }
- return FALSE;
- }
-
- /**
- * Gets the visible children of an AccessibleContext. Returns whether successful;
- *
- * Bug ID 4944762- getVisibleChildren for list-like components needed
- */
- BOOL getVisibleChildren(const long vmID, const AccessibleContext accessibleContext,
- const int startIndex, VisibleChildrenInfo *visibleChildrenInfo) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getVisibleChildren(vmID, accessibleContext, startIndex,
- visibleChildrenInfo);
- }
- return FALSE;
- }
-
- /**
- * Set the caret to a text position. Returns whether successful;
- *
- * Bug ID 4944770 - setCaretPosition method needed
- */
- BOOL setCaretPosition(const long vmID, const AccessibleContext accessibleContext,
- const int position) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.setCaretPosition(vmID, accessibleContext, position);
- }
- return FALSE;
- }
-
- /**
- * Gets the text caret location
- */
- BOOL getCaretLocation(long vmID, AccessibleContext ac, AccessibleTextRectInfo *rectInfo, jint index) {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getCaretLocation(vmID, ac, rectInfo, index);
- }
- return FALSE;
- }
-
- /**
- * Gets the number of events waiting to fire
- */
- int getEventsWaiting() {
- if (theAccessBridgeInitializedFlag == TRUE) {
- return theAccessBridge.getEventsWaiting();
- }
- return FALSE;
- }
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/demos/java/jni/gs_jni/include/win32/bridge/AccessBridgeCalls.h b/demos/java/jni/gs_jni/include/win32/bridge/AccessBridgeCalls.h
deleted file mode 100644
index ad007400..00000000
--- a/demos/java/jni/gs_jni/include/win32/bridge/AccessBridgeCalls.h
+++ /dev/null
@@ -1,706 +0,0 @@
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-
-/*
- * Wrapper functions around calls to the AccessBridge DLL
- */
-
-#include <windows.h>
-#include <jni.h>
-#include "AccessBridgeCallbacks.h"
-#include "AccessBridgePackages.h"
-
-#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);
-
- /* begin AccessibleTable */
- 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);
- /* end AccessibleTable */
-
- /* AccessibleRelationSet */
- typedef BOOL (*getAccessibleRelationSetFP) (long vmID, AccessibleContext accessibleContext,
- AccessibleRelationSetInfo *relationSetInfo);
-
- /* AccessibleHypertext */
- 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);
-
-
- /* Accessible KeyBindings, Icons and Actions */
- 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);
-
-
- /* AccessibleText */
-
- 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);
-
- /* Utility methods */
-
- 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;
-
-
- /**
- * Initialize the world
- */
- BOOL initializeAccessBridge();
- BOOL shutdownAccessBridge();
-
- /**
- * Window routines
- */
- BOOL IsJavaWindow(HWND window);
-
- // Returns the virtual machine ID and AccessibleContext for a top-level window
- BOOL GetAccessibleContextFromHWND(HWND target, long *vmID, AccessibleContext *ac);
-
- // Returns the HWND from the AccessibleContext of a top-level window
- HWND getHWNDFromAccessibleContext(long vmID, AccessibleContext ac);
-
-
- /**
- * Event handling routines
- */
- 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);
-
-
- /**
- * General routines
- */
- void ReleaseJavaObject(long vmID, Java_Object object);
- BOOL GetVersionInfo(long vmID, AccessBridgeVersionInfo *info);
- HWND GetHWNDFromAccessibleContext(long vmID, JOBJECT64 accesibleContext);
-
- /**
- * Accessible Context routines
- */
- 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);
-
- /**
- * Accessible Text routines
- */
- 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);
-
- /* begin AccessibleTable routines */
- 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);
- /* end AccessibleTable */
-
- /* ----- AccessibleRelationSet routines */
- BOOL getAccessibleRelationSet(long vmID, AccessibleContext accessibleContext,
- AccessibleRelationSetInfo *relationSetInfo);
-
- /* ----- AccessibleHypertext routines */
-
- /*
- * Returns hypertext information associated with a component.
- */
- BOOL getAccessibleHypertext(long vmID, AccessibleContext accessibleContext,
- AccessibleHypertextInfo *hypertextInfo);
-
- /*
- * Requests that a hyperlink be activated.
- */
- BOOL activateAccessibleHyperlink(long vmID, AccessibleContext accessibleContext,
- AccessibleHyperlink accessibleHyperlink);
-
- /*
- * Returns the number of hyperlinks in a component
- * Maps to AccessibleHypertext.getLinkCount.
- * Returns -1 on error.
- */
- jint getAccessibleHyperlinkCount(const long vmID,
- const AccessibleHypertext hypertext);
-
- /*
- * This method is used to iterate through the hyperlinks in a component. It
- * returns hypertext information for a component starting at hyperlink index
- * nStartIndex. No more than MAX_HYPERLINKS AccessibleHypertextInfo objects will
- * be returned for each call to this method.
- * Returns FALSE on error.
- */
- BOOL getAccessibleHypertextExt(const long vmID,
- const AccessibleContext accessibleContext,
- const jint nStartIndex,
- /* OUT */ AccessibleHypertextInfo *hypertextInfo);
-
- /*
- * Returns the index into an array of hyperlinks that is associated with
- * a character index in document; maps to AccessibleHypertext.getLinkIndex
- * Returns -1 on error.
- */
- jint getAccessibleHypertextLinkIndex(const long vmID,
- const AccessibleHypertext hypertext,
- const jint nIndex);
-
- /*
- * Returns the nth hyperlink in a document
- * Maps to AccessibleHypertext.getLink.
- * Returns FALSE on error
- */
- BOOL getAccessibleHyperlink(const long vmID,
- const AccessibleHypertext hypertext,
- const jint nIndex,
- /* OUT */ AccessibleHyperlinkInfo *hyperlinkInfo);
-
- /* Accessible KeyBindings, Icons and Actions */
-
- /*
- * Returns a list of key bindings associated with a component.
- */
- BOOL getAccessibleKeyBindings(long vmID, AccessibleContext accessibleContext,
- AccessibleKeyBindings *keyBindings);
-
- /*
- * Returns a list of icons associate with a component.
- */
- BOOL getAccessibleIcons(long vmID, AccessibleContext accessibleContext,
- AccessibleIcons *icons);
-
- /*
- * Returns a list of actions that a component can perform.
- */
- BOOL getAccessibleActions(long vmID, AccessibleContext accessibleContext,
- AccessibleActions *actions);
-
- /*
- * Request that a list of AccessibleActions be performed by a component.
- * Returns TRUE if all actions are performed. Returns FALSE
- * when the first requested action fails in which case "failure"
- * contains the index of the action that failed.
- */
- BOOL doAccessibleActions(long vmID, AccessibleContext accessibleContext,
- AccessibleActionsToDo *actionsToDo, jint *failure);
-
-
-
- /* Additional utility methods */
-
- /*
- * Returns whether two object references refer to the same object.
- */
- BOOL IsSameObject(long vmID, JOBJECT64 obj1, JOBJECT64 obj2);
-
- /**
- * Sets editable text contents. The AccessibleContext must implement AccessibleEditableText and
- * be editable. The maximum text length that can be set is MAX_STRING_SIZE - 1.
- * Returns whether successful
- */
- BOOL setTextContents (const long vmID, const AccessibleContext accessibleContext, const wchar_t *text);
-
- /**
- * Returns the Accessible Context with the specified role that is the
- * ancestor of a given object. The role is one of the role strings
- * defined in AccessBridgePackages.h
- * If there is no ancestor object that has the specified role,
- * returns (AccessibleContext)0.
- */
- AccessibleContext getParentWithRole (const long vmID, const AccessibleContext accessibleContext,
- const wchar_t *role);
-
- /**
- * Returns the Accessible Context with the specified role that is the
- * ancestor of a given object. The role is one of the role strings
- * defined in AccessBridgePackages.h. If an object with the specified
- * role does not exist, returns the top level object for the Java Window.
- * Returns (AccessibleContext)0 on error.
- */
- AccessibleContext getParentWithRoleElseRoot (const long vmID, const AccessibleContext accessibleContext,
- const wchar_t *role);
-
- /**
- * Returns the Accessible Context for the top level object in
- * a Java Window. This is same Accessible Context that is obtained
- * from GetAccessibleContextFromHWND for that window. Returns
- * (AccessibleContext)0 on error.
- */
- AccessibleContext getTopLevelObject (const long vmID, const AccessibleContext accessibleContext);
-
- /**
- * Returns how deep in the object hierarchy a given object is.
- * The top most object in the object hierarchy has an object depth of 0.
- * Returns -1 on error.
- */
- int getObjectDepth (const long vmID, const AccessibleContext accessibleContext);
-
- /**
- * Returns the Accessible Context of the current ActiveDescendent of an object.
- * This method assumes the ActiveDescendent is the component that is currently
- * selected in a container object.
- * Returns (AccessibleContext)0 on error or if there is no selection.
- */
- AccessibleContext getActiveDescendent (const long vmID, const AccessibleContext accessibleContext);
-
- /**
- /**
- * Accessible Value routines
- */
- 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);
-
- /**
- * Accessible Selection routines
- */
- 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);
-
- /**
- * Additional methods for Teton
- */
-
- /**
- * Gets the AccessibleName for a component based upon the JAWS algorithm. Returns
- * whether successful.
- *
- * Bug ID 4916682 - Implement JAWS AccessibleName policy
- */
- BOOL getVirtualAccessibleName(const long vmID, const AccessibleContext accessibleContext,
- wchar_t *name, int len);
-
- /**
- * Request focus for a component. Returns whether successful.
- *
- * Bug ID 4944757 - requestFocus method needed
- */
- BOOL requestFocus(const long vmID, const AccessibleContext accessibleContext);
-
- /**
- * Selects text between two indices. Selection includes the text at the start index
- * and the text at the end index. Returns whether successful.
- *
- * Bug ID 4944758 - selectTextRange method needed
- */
- BOOL selectTextRange(const long vmID, const AccessibleContext accessibleContext, const int startIndex,
- const int endIndex);
-
- /**
- * Get text attributes between two indices. The attribute list includes the text at the
- * start index and the text at the end index. Returns whether successful;
- *
- * Bug ID 4944761 - getTextAttributes between two indices method needed
- */
- BOOL getTextAttributesInRange(const long vmID, const AccessibleContext accessibleContext,
- const int startIndex, const int endIndex,
- AccessibleTextAttributesInfo *attributes, short *len);
-
- /**
- * Returns the number of visible children of a component. Returns -1 on error.
- *
- * Bug ID 4944762- getVisibleChildren for list-like components needed
- */
- int getVisibleChildrenCount(const long vmID, const AccessibleContext accessibleContext);
-
- /**
- * Gets the visible children of an AccessibleContext. Returns whether successful.
- *
- * Bug ID 4944762- getVisibleChildren for list-like components needed
- */
- BOOL getVisibleChildren(const long vmID, const AccessibleContext accessibleContext,
- const int startIndex,
- VisibleChildrenInfo *visibleChildrenInfo);
-
- /**
- * Set the caret to a text position. Returns whether successful.
- *
- * Bug ID 4944770 - setCaretPosition method needed
- */
- BOOL setCaretPosition(const long vmID, const AccessibleContext accessibleContext,
- const int position);
-
- /**
- * Gets the text caret location
- */
- BOOL getCaretLocation(long vmID, AccessibleContext ac,
- AccessibleTextRectInfo *rectInfo, jint index);
-
- /**
- * Gets the number of events waiting to fire
- */
- int getEventsWaiting();
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/demos/java/jni/gs_jni/include/win32/bridge/AccessBridgePackages.h b/demos/java/jni/gs_jni/include/win32/bridge/AccessBridgePackages.h
deleted file mode 100644
index 478f7c63..00000000
--- a/demos/java/jni/gs_jni/include/win32/bridge/AccessBridgePackages.h
+++ /dev/null
@@ -1,2215 +0,0 @@
-/*
- * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-
-/*
- * Header file for packages of paramaters passed between Java Accessibility
- * and native Assistive Technologies
- */
-
-#ifndef __AccessBridgePackages_H__
-#define __AccessBridgePackages_H__
-
-#include <jni.h>
-#include <windows.h>
-
-#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
-
- // object types
- 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;
-
- /**
- ******************************************************
- * Java event types
- ******************************************************
- */
-
-#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
-
- /**
- ******************************************************
- * Accessible Roles
- * Defines all AccessibleRoles in Local.US
- ******************************************************
- */
-
- /**
- * Object is used to alert the user about something.
- */
-#define ACCESSIBLE_ALERT L"alert"
-
- /**
- * The header for a column of data.
- */
-#define ACCESSIBLE_COLUMN_HEADER L"column header"
-
- /**
- * Object that can be drawn into and is used to trap
- * events.
- * see ACCESSIBLE_FRAME
- * see ACCESSIBLE_GLASS_PANE
- * see ACCESSIBLE_LAYERED_PANE
- */
-#define ACCESSIBLE_CANVAS L"canvas"
-
- /**
- * A list of choices the user can select from. Also optionally
- * allows the user to enter a choice of their own.
- */
-#define ACCESSIBLE_COMBO_BOX L"combo box"
-
- /**
- * An iconified internal frame in a DESKTOP_PANE.
- * see ACCESSIBLE_DESKTOP_PANE
- * see ACCESSIBLE_INTERNAL_FRAME
- */
-#define ACCESSIBLE_DESKTOP_ICON L"desktop icon"
-
- /**
- * A frame-like object that is clipped by a desktop pane. The
- * desktop pane, internal frame, and desktop icon objects are
- * often used to create multiple document interfaces within an
- * application.
- * see ACCESSIBLE_DESKTOP_ICON
- * see ACCESSIBLE_DESKTOP_PANE
- * see ACCESSIBLE_FRAME
- */
-#define ACCESSIBLE_INTERNAL_FRAME L"internal frame"
-
- /**
- * A pane that supports internal frames and
- * iconified versions of those internal frames.
- * see ACCESSIBLE_DESKTOP_ICON
- * see ACCESSIBLE_INTERNAL_FRAME
- */
-#define ACCESSIBLE_DESKTOP_PANE L"desktop pane"
-
- /**
- * A specialized pane whose primary use is inside a DIALOG
- * see ACCESSIBLE_DIALOG
- */
-#define ACCESSIBLE_OPTION_PANE L"option pane"
-
- /**
- * A top level window with no title or border.
- * see ACCESSIBLE_FRAME
- * see ACCESSIBLE_DIALOG
- */
-#define ACCESSIBLE_WINDOW L"window"
-
- /**
- * A top level window with a title bar, border, menu bar, etc. It is
- * often used as the primary window for an application.
- * see ACCESSIBLE_DIALOG
- * see ACCESSIBLE_CANVAS
- * see ACCESSIBLE_WINDOW
- */
-#define ACCESSIBLE_FRAME L"frame"
-
- /**
- * A top level window with title bar and a border. A dialog is similar
- * to a frame, but it has fewer properties and is often used as a
- * secondary window for an application.
- * see ACCESSIBLE_FRAME
- * see ACCESSIBLE_WINDOW
- */
-#define ACCESSIBLE_DIALOG L"dialog"
-
- /**
- * A specialized dialog that lets the user choose a color.
- */
-#define ACCESSIBLE_COLOR_CHOOSER L"color chooser"
-
-
- /**
- * A pane that allows the user to navigate through
- * and select the contents of a directory. May be used
- * by a file chooser.
- * see ACCESSIBLE_FILE_CHOOSER
- */
-#define ACCESSIBLE_DIRECTORY_PANE L"directory pane"
-
- /**
- * A specialized dialog that displays the files in the directory
- * and lets the user select a file, browse a different directory,
- * or specify a filename. May use the directory pane to show the
- * contents of a directory.
- * see ACCESSIBLE_DIRECTORY_PANE
- */
-#define ACCESSIBLE_FILE_CHOOSER L"file chooser"
-
- /**
- * An object that fills up space in a user interface. It is often
- * used in interfaces to tweak the spacing between components,
- * but serves no other purpose.
- */
-#define ACCESSIBLE_FILLER L"filler"
-
- /**
- * A hypertext anchor
- */
-#define ACCESSIBLE_HYPERLINK L"hyperlink"
-
- /**
- * A small fixed size picture, typically used to decorate components.
- */
-#define ACCESSIBLE_ICON L"icon"
-
- /**
- * An object used to present an icon or short string in an interface.
- */
-#define ACCESSIBLE_LABEL L"label"
-
- /**
- * A specialized pane that has a glass pane and a layered pane as its
- * children.
- * see ACCESSIBLE_GLASS_PANE
- * see ACCESSIBLE_LAYERED_PANE
- */
-#define ACCESSIBLE_ROOT_PANE L"root pane"
-
- /**
- * A pane that is guaranteed to be painted on top
- * of all panes beneath it.
- * see ACCESSIBLE_ROOT_PANE
- * see ACCESSIBLE_CANVAS
- */
-#define ACCESSIBLE_GLASS_PANE L"glass pane"
-
- /**
- * A specialized pane that allows its children to be drawn in layers,
- * providing a form of stacking order. This is usually the pane that
- * holds the menu bar as well as the pane that contains most of the
- * visual components in a window.
- * see ACCESSIBLE_GLASS_PANE
- * see ACCESSIBLE_ROOT_PANE
- */
-#define ACCESSIBLE_LAYERED_PANE L"layered pane"
-
- /**
- * An object that presents a list of objects to the user and allows the
- * user to select one or more of them. A list is usually contained
- * within a scroll pane.
- * see ACCESSIBLE_SCROLL_PANE
- * see ACCESSIBLE_LIST_ITEM
- */
-#define ACCESSIBLE_LIST L"list"
-
- /**
- * An object that presents an element in a list. A list is usually
- * contained within a scroll pane.
- * see ACCESSIBLE_SCROLL_PANE
- * see ACCESSIBLE_LIST
- */
-#define ACCESSIBLE_LIST_ITEM L"list item"
-
- /**
- * An object usually drawn at the top of the primary dialog box of
- * an application that contains a list of menus the user can choose
- * from. For example, a menu bar might contain menus for "File,"
- * "Edit," and "Help."
- * see ACCESSIBLE_MENU
- * see ACCESSIBLE_POPUP_MENU
- * see ACCESSIBLE_LAYERED_PANE
- */
-#define ACCESSIBLE_MENU_BAR L"menu bar"
-
- /**
- * A temporary window that is usually used to offer the user a
- * list of choices, and then hides when the user selects one of
- * those choices.
- * see ACCESSIBLE_MENU
- * see ACCESSIBLE_MENU_ITEM
- */
-#define ACCESSIBLE_POPUP_MENU L"popup menu"
-
- /**
- * An object usually found inside a menu bar that contains a list
- * of actions the user can choose from. A menu can have any object
- * as its children, but most often they are menu items, other menus,
- * or rudimentary objects such as radio buttons, check boxes, or
- * separators. For example, an application may have an "Edit" menu
- * that contains menu items for "Cut" and "Paste."
- * see ACCESSIBLE_MENU_BAR
- * see ACCESSIBLE_MENU_ITEM
- * see ACCESSIBLE_SEPARATOR
- * see ACCESSIBLE_RADIO_BUTTON
- * see ACCESSIBLE_CHECK_BOX
- * see ACCESSIBLE_POPUP_MENU
- */
-#define ACCESSIBLE_MENU L"menu"
-
- /**
- * An object usually contained in a menu that presents an action
- * the user can choose. For example, the "Cut" menu item in an
- * "Edit" menu would be an action the user can select to cut the
- * selected area of text in a document.
- * see ACCESSIBLE_MENU_BAR
- * see ACCESSIBLE_SEPARATOR
- * see ACCESSIBLE_POPUP_MENU
- */
-#define ACCESSIBLE_MENU_ITEM L"menu item"
-
- /**
- * An object usually contained in a menu to provide a visual
- * and logical separation of the contents in a menu. For example,
- * the "File" menu of an application might contain menu items for
- * "Open," "Close," and "Exit," and will place a separator between
- * "Close" and "Exit" menu items.
- * see ACCESSIBLE_MENU
- * see ACCESSIBLE_MENU_ITEM
- */
-#define ACCESSIBLE_SEPARATOR L"separator"
-
- /**
- * An object that presents a series of panels (or page tabs), one at a
- * time, through some mechanism provided by the object. The most common
- * mechanism is a list of tabs at the top of the panel. The children of
- * a page tab list are all page tabs.
- * see ACCESSIBLE_PAGE_TAB
- */
-#define ACCESSIBLE_PAGE_TAB_LIST L"page tab list"
-
- /**
- * An object that is a child of a page tab list. Its sole child is
- * the panel that is to be presented to the user when the user
- * selects the page tab from the list of tabs in the page tab list.
- * see ACCESSIBLE_PAGE_TAB_LIST
- */
-#define ACCESSIBLE_PAGE_TAB L"page tab"
-
- /**
- * A generic container that is often used to group objects.
- */
-#define ACCESSIBLE_PANEL L"panel"
-
- /**
- * An object used to indicate how much of a task has been completed.
- */
-#define ACCESSIBLE_PROGRESS_BAR L"progress bar"
-
- /**
- * A text object used for passwords, or other places where the
- * text contents is not shown visibly to the user
- */
-#define ACCESSIBLE_PASSWORD_TEXT L"password text"
-
- /**
- * An object the user can manipulate to tell the application to do
- * something.
- * see ACCESSIBLE_CHECK_BOX
- * see ACCESSIBLE_TOGGLE_BUTTON
- * see ACCESSIBLE_RADIO_BUTTON
- */
-#define ACCESSIBLE_PUSH_BUTTON L"push button"
-
- /**
- * A specialized push button that can be checked or unchecked, but
- * does not provide a separate indicator for the current state.
- * see ACCESSIBLE_PUSH_BUTTON
- * see ACCESSIBLE_CHECK_BOX
- * see ACCESSIBLE_RADIO_BUTTON
- */
-#define ACCESSIBLE_TOGGLE_BUTTON L"toggle button"
-
- /**
- * A choice that can be checked or unchecked and provides a
- * separate indicator for the current state.
- * see ACCESSIBLE_PUSH_BUTTON
- * see ACCESSIBLE_TOGGLE_BUTTON
- * see ACCESSIBLE_RADIO_BUTTON
- */
-#define ACCESSIBLE_CHECK_BOX L"check box"
-
- /**
- * A specialized check box that will cause other radio buttons in the
- * same group to become unchecked when this one is checked.
- * see ACCESSIBLE_PUSH_BUTTON
- * see ACCESSIBLE_TOGGLE_BUTTON
- * see ACCESSIBLE_CHECK_BOX
- */
-#define ACCESSIBLE_RADIO_BUTTON L"radio button"
-
- /**
- * The header for a row of data.
- */
-#define ACCESSIBLE_ROW_HEADER L"row header"
-
- /**
- * An object that allows a user to incrementally view a large amount
- * of information. Its children can include scroll bars and a viewport.
- * see ACCESSIBLE_SCROLL_BAR
- * see ACCESSIBLE_VIEWPORT
- */
-#define ACCESSIBLE_SCROLL_PANE L"scroll pane"
-
- /**
- * An object usually used to allow a user to incrementally view a
- * large amount of data. Usually used only by a scroll pane.
- * see ACCESSIBLE_SCROLL_PANE
- */
-#define ACCESSIBLE_SCROLL_BAR L"scroll bar"
-
- /**
- * An object usually used in a scroll pane. It represents the portion
- * of the entire data that the user can see. As the user manipulates
- * the scroll bars, the contents of the viewport can change.
- * see ACCESSIBLE_SCROLL_PANE
- */
-#define ACCESSIBLE_VIEWPORT L"viewport"
-
- /**
- * An object that allows the user to select from a bounded range. For
- * example, a slider might be used to select a number between 0 and 100.
- */
-#define ACCESSIBLE_SLIDER L"slider"
-
- /**
- * A specialized panel that presents two other panels at the same time.
- * Between the two panels is a divider the user can manipulate to make
- * one panel larger and the other panel smaller.
- */
-#define ACCESSIBLE_SPLIT_PANE L"split pane"
-
- /**
- * An object used to present information in terms of rows and columns.
- * An example might include a spreadsheet application.
- */
-#define ACCESSIBLE_TABLE L"table"
-
- /**
- * An object that presents text to the user. The text is usually
- * editable by the user as opposed to a label.
- * see ACCESSIBLE_LABEL
- */
-#define ACCESSIBLE_TEXT L"text"
-
- /**
- * An object used to present hierarchical information to the user.
- * The individual nodes in the tree can be collapsed and expanded
- * to provide selective disclosure of the tree's contents.
- */
-#define ACCESSIBLE_TREE L"tree"
-
- /**
- * A bar or palette usually composed of push buttons or toggle buttons.
- * It is often used to provide the most frequently used functions for an
- * application.
- */
-#define ACCESSIBLE_TOOL_BAR L"tool bar"
-
- /**
- * An object that provides information about another object. The
- * accessibleDescription property of the tool tip is often displayed
- * to the user in a small L"help bubble" when the user causes the
- * mouse to hover over the object associated with the tool tip.
- */
-#define ACCESSIBLE_TOOL_TIP L"tool tip"
-
- /**
- * An AWT component, but nothing else is known about it.
- * see ACCESSIBLE_SWING_COMPONENT
- * see ACCESSIBLE_UNKNOWN
- */
-#define ACCESSIBLE_AWT_COMPONENT L"awt component"
-
- /**
- * A Swing component, but nothing else is known about it.
- * see ACCESSIBLE_AWT_COMPONENT
- * see ACCESSIBLE_UNKNOWN
- */
-#define ACCESSIBLE_SWING_COMPONENT L"swing component"
-
- /**
- * The object contains some Accessible information, but its role is
- * not known.
- * see ACCESSIBLE_AWT_COMPONENT
- * see ACCESSIBLE_SWING_COMPONENT
- */
-#define ACCESSIBLE_UNKNOWN L"unknown"
-
- /**
- * A STATUS_BAR is an simple component that can contain
- * multiple labels of status information to the user.
- */
-#define ACCESSIBLE_STATUS_BAR L"status bar"
-
- /**
- * A DATE_EDITOR is a component that allows users to edit
- * java.util.Date and java.util.Time objects
- */
-#define ACCESSIBLE_DATE_EDITOR L"date editor"
-
- /**
- * A SPIN_BOX is a simple spinner component and its main use
- * is for simple numbers.
- */
-#define ACCESSIBLE_SPIN_BOX L"spin box"
-
- /**
- * A FONT_CHOOSER is a component that lets the user pick various
- * attributes for fonts.
- */
-#define ACCESSIBLE_FONT_CHOOSER L"font chooser"
-
- /**
- * A GROUP_BOX is a simple container that contains a border
- * around it and contains components inside it.
- */
-#define ACCESSIBLE_GROUP_BOX L"group box"
-
- /**
- * A text header
- */
-#define ACCESSIBLE_HEADER L"header"
-
- /**
- * A text footer
- */
-#define ACCESSIBLE_FOOTER L"footer"
-
- /**
- * A text paragraph
- */
-#define ACCESSIBLE_PARAGRAPH L"paragraph"
-
- /**
- * A ruler is an object used to measure distance
- */
-#define ACCESSIBLE_RULER L"ruler"
-
- /**
- * A role indicating the object acts as a formula for
- * calculating a value. An example is a formula in
- * a spreadsheet cell.
- */
-#define ACCESSIBLE_EDITBAR L"editbar"
-
- /**
- * A role indicating the object monitors the progress
- * of some operation.
- */
-#define PROGRESS_MONITOR L"progress monitor"
-
-
- /**
- ******************************************************
- * Accessibility event types
- ******************************************************
- */
-
-#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
-
- /**
- ******************************************************
- * optional AccessibleContext interfaces
- *
- * This version of the bridge reuses the accessibleValue
- * field in the AccessibleContextInfo struct to represent
- * additional optional interfaces that are supported by
- * the Java AccessibleContext. This is backwardly compatable
- * because the old accessibleValue was set to the BOOL
- * value TRUE (i.e., 1) if the AccessibleValue interface is
- * supported.
- ******************************************************
- */
-
-#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
-
-
- /**
- ******************************************************
- * Accessibility information bundles
- ******************************************************
- */
-
- typedef struct AccessBridgeVersionInfoTag {
- wchar_t VMversion[SHORT_STRING_SIZE]; // output of "java -version"
- wchar_t bridgeJavaClassVersion[SHORT_STRING_SIZE]; // version of the AccessBridge.class
- wchar_t bridgeJavaDLLVersion[SHORT_STRING_SIZE]; // version of JavaAccessBridge.dll
- wchar_t bridgeWinDLLVersion[SHORT_STRING_SIZE]; // version of WindowsAccessBridge.dll
- } AccessBridgeVersionInfo;
-
-
- typedef struct AccessibleContextInfoTag {
- wchar_t name[MAX_STRING_SIZE]; // the AccessibleName of the object
- wchar_t description[MAX_STRING_SIZE]; // the AccessibleDescription of the object
-
- wchar_t role[SHORT_STRING_SIZE]; // localized AccesibleRole string
- wchar_t role_en_US[SHORT_STRING_SIZE]; // AccesibleRole string in the en_US locale
- wchar_t states[SHORT_STRING_SIZE]; // localized AccesibleStateSet string (comma separated)
- wchar_t states_en_US[SHORT_STRING_SIZE]; // AccesibleStateSet string in the en_US locale (comma separated)
-
- jint indexInParent; // index of object in parent
- jint childrenCount; // # of children, if any
-
- jint x; // screen coords in pixels
- jint y; // "
- jint width; // pixel width of object
- jint height; // pixel height of object
-
- BOOL accessibleComponent; // flags for various additional
- BOOL accessibleAction; // Java Accessibility interfaces
- BOOL accessibleSelection; // FALSE if this object doesn't
- BOOL accessibleText; // implement the additional interface
- // in question
-
- // BOOL accessibleValue; // old BOOL indicating whether AccessibleValue is supported
- BOOL accessibleInterfaces; // new bitfield containing additional interface flags
-
- } AccessibleContextInfo;
-
-
-
- // AccessibleText packages
- typedef struct AccessibleTextInfoTag {
- jint charCount; // # of characters in this text object
- jint caretIndex; // index of caret
- jint indexAtPoint; // index at the passsed in point
- } 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; // bounding rect of char at index
- jint y; // "
- jint width; // "
- jint height; // "
- } AccessibleTextRectInfo;
-
- // standard attributes for text; note: tabstops are not supported
- 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;
-
- /**
- ******************************************************
- * IPC management typedefs
- ******************************************************
- */
-
-#define cMemoryMappedNameSize 255
-
- /**
- * sent by the WindowsDLL -> the memory-mapped file is setup
- *
- */
- typedef struct MemoryMappedFileCreatedPackageTag {
-// HWND bridgeWindow; // redundant, but easier to get to here...
- ABHWND64 bridgeWindow; // redundant, but easier to get to here...
- char filename[cMemoryMappedNameSize];
- } MemoryMappedFileCreatedPackage;
-
-
-
-
- /**
- * sent when a new JavaVM attaches to the Bridge
- *
- */
- typedef struct JavaVMCreatedPackageTag {
- ABHWND64 bridgeWindow;
- long vmID;
- } JavaVMCreatedPackage;
-
- /**
- * sent when a JavaVM detatches from the Bridge
- *
- */
- typedef struct JavaVMDestroyedPackageTag {
- ABHWND64 bridgeWindow;
- } JavaVMDestroyedPackage;
-
- /**
- * sent when a new AT attaches to the Bridge
- *
- */
- typedef struct WindowsATCreatedPackageTag {
- ABHWND64 bridgeWindow;
- } WindowsATCreatedPackage;
-
- /**
- * sent when an AT detatches from the Bridge
- *
- */
- typedef struct WindowsATDestroyedPackageTag {
- ABHWND64 bridgeWindow;
- } WindowsATDestroyedPackage;
-
-
- /**
- * sent by JVM Bridges in response to a WindowsATCreate
- * message; saying "howdy, welcome to the neighborhood"
- *
- */
- typedef struct JavaVMPresentNotificationPackageTag {
- ABHWND64 bridgeWindow;
- long vmID;
- } JavaVMPresentNotificationPackage;
-
- /**
- * sent by AT Bridges in response to a JavaVMCreate
- * message; saying "howdy, welcome to the neighborhood"
- *
- */
- typedef struct WindowsATPresentNotificationPackageTag {
- ABHWND64 bridgeWindow;
- } WindowsATPresentNotificationPackage;
-
-
- /**
- ******************************************************
- * Core packages
- ******************************************************
- */
-
- typedef struct ReleaseJavaObjectPackageTag {
- long vmID;
- JOBJECT64 object;
- } ReleaseJavaObjectPackage;
-
- typedef struct GetAccessBridgeVersionPackageTag {
- long vmID; // can't get VM info w/out a VM!
- AccessBridgeVersionInfo rVersionInfo;
- } GetAccessBridgeVersionPackage;
-
- typedef struct IsSameObjectPackageTag {
- long vmID;
- JOBJECT64 obj1;
- JOBJECT64 obj2;
- jboolean rResult;
- } IsSameObjectPackage;
-
- /**
- ******************************************************
- * Windows packages
- ******************************************************
- */
-
- 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;
-
- /**
-******************************************************
-* AccessibleContext packages
-******************************************************
-*/
-
- typedef struct GetAccessibleContextAtPackageTag {
- jint x;
- jint y;
- long vmID;
- JOBJECT64 AccessibleContext; // look within this AC
- 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;
-
- /**
-******************************************************
-* AccessibleTable packages
-******************************************************
-*/
-
-#define MAX_TABLE_SELECTIONS 64
-
- // table information
- typedef struct AccessibleTableInfoTag {
- JOBJECT64 caption; // AccesibleContext
- JOBJECT64 summary; // AccessibleContext
- jint rowCount;
- jint columnCount;
- JOBJECT64 accessibleContext;
- JOBJECT64 accessibleTable;
- } AccessibleTableInfo;
-
- typedef struct GetAccessibleTableInfoPackageTag {
- long vmID;
- JOBJECT64 accessibleContext;
- AccessibleTableInfo rTableInfo;
- } GetAccessibleTableInfoPackage;
-
- // table cell information
- 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;
-
-
- /**
- ******************************************************
- * AccessibleRelationSet packages
- ******************************************************
- */
-
-#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]; // AccessibleContexts
- } AccessibleRelationInfo;
-
- typedef struct AccessibleRelationSetInfoTag {
- jint relationCount;
- AccessibleRelationInfo relations[MAX_RELATIONS];
- } AccessibleRelationSetInfo;
-
- typedef struct GetAccessibleRelationSetPackageTag {
- long vmID;
- JOBJECT64 accessibleContext;
- AccessibleRelationSetInfo rAccessibleRelationSetInfo;
- } GetAccessibleRelationSetPackage;
-
- /**
- ******************************************************
- * AccessibleHypertext packagess
- ******************************************************
- */
-
-#define MAX_HYPERLINKS 64 // maximum number of hyperlinks returned
-
- // hyperlink information
- typedef struct AccessibleHyperlinkInfoTag {
- wchar_t text[SHORT_STRING_SIZE]; // the hyperlink text
- jint startIndex; //index in the hypertext document where the link begins
- jint endIndex; //index in the hypertext document where the link ends
- JOBJECT64 accessibleHyperlink; // AccessibleHyperlink object
- } AccessibleHyperlinkInfo;
-
- // hypertext information
- typedef struct AccessibleHypertextInfoTag {
- jint linkCount; // number of hyperlinks
- AccessibleHyperlinkInfo links[MAX_HYPERLINKS]; // the hyperlinks
- JOBJECT64 accessibleHypertext; // AccessibleHypertext object
- } AccessibleHypertextInfo;
-
- // struct for sending a message to get the hypertext for an AccessibleContext
- typedef struct GetAccessibleHypertextPackageTag {
- long vmID; // the virtual machine ID
- JOBJECT64 accessibleContext; // AccessibleContext with hypertext
- AccessibleHypertextInfo rAccessibleHypertextInfo; // returned hypertext
- } GetAccessibleHypertextPackage;
-
- // struct for sending an message to activate a hyperlink
- typedef struct ActivateAccessibleHyperlinkPackageTag {
- long vmID; // the virtual machine ID
- JOBJECT64 accessibleContext; // AccessibleContext containing the link
- JOBJECT64 accessibleHyperlink; // the link to activate
- BOOL rResult; // hyperlink activation return value
- } ActivateAccessibleHyperlinkPackage;
-
- // struct for sending a message to get the number of hyperlinks in a component
- typedef struct GetAccessibleHyperlinkCountPackageTag {
- long vmID; // the virtual machine ID
- JOBJECT64 accessibleContext; // AccessibleContext containing AccessibleHypertext
- jint rLinkCount; // link count return value
- } GetAccessibleHyperlinkCountPackage;
-
- // struct for sending a message to get the hypertext for an AccessibleContext
- // starting at a specified index in the document
- typedef struct GetAccessibleHypertextExtPackageTag {
- long vmID; // the virtual machine ID
- JOBJECT64 accessibleContext; // AccessibleContext with hypertext
- jint startIndex; // start index in document
- AccessibleHypertextInfo rAccessibleHypertextInfo; // returned hypertext
- BOOL rSuccess; // whether call succeeded
- } GetAccessibleHypertextExtPackage;
-
- // struct for sending a message to get the nth hyperlink in a document;
- // maps to AccessibleHypertext.getLink
- typedef struct GetAccessibleHyperlinkPackageTag {
- long vmID; // the virtual machine ID
- JOBJECT64 hypertext; // AccessibleHypertext
- jint linkIndex; // hyperlink index
- AccessibleHyperlinkInfo rAccessibleHyperlinkInfo; // returned hyperlink
- } GetAccessibleHyperlinkPackage;
-
- // struct for sending a message to get the index into an array
- // of hyperlinks that is associated with a character index in a
- // document; maps to AccessibleHypertext.getLinkIndex
- typedef struct GetAccessibleHypertextLinkIndexPackageTag {
- long vmID; // the virtual machine ID
- JOBJECT64 hypertext; // AccessibleHypertext
- jint charIndex; // character index in document
- jint rLinkIndex; // returned hyperlink index
- } GetAccessibleHypertextLinkIndexPackage;
-
- /**
- ******************************************************
- * Accessible Key Bindings packages
- ******************************************************
- */
-
-#define MAX_KEY_BINDINGS 10
-
- // keyboard character modifiers
-#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.
-
-// The supported control code keys are:
-#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
-
- // a key binding associates with a component
- typedef struct AccessibleKeyBindingInfoTag {
- jchar character; // the key character
- jint modifiers; // the key modifiers
- } AccessibleKeyBindingInfo;
-
- // all of the key bindings associated with a component
- typedef struct AccessibleKeyBindingsTag {
- int keyBindingsCount; // number of key bindings
- AccessibleKeyBindingInfo keyBindingInfo[MAX_KEY_BINDINGS];
- } AccessibleKeyBindings;
-
- // struct to get the key bindings associated with a component
- typedef struct GetAccessibleKeyBindingsPackageTag {
- long vmID; // the virtual machine id
- JOBJECT64 accessibleContext; // the component
- AccessibleKeyBindings rAccessibleKeyBindings; // the key bindings
- } GetAccessibleKeyBindingsPackage;
-
- /**
-******************************************************
-* AccessibleIcon packages
-******************************************************
-*/
-#define MAX_ICON_INFO 8
-
- // an icon assocated with a component
- typedef struct AccessibleIconInfoTag {
- wchar_t description[SHORT_STRING_SIZE]; // icon description
- jint height; // icon height
- jint width; // icon width
- } AccessibleIconInfo;
-
- // all of the icons associated with a component
- typedef struct AccessibleIconsTag {
- jint iconsCount; // number of icons
- AccessibleIconInfo iconInfo[MAX_ICON_INFO]; // the icons
- } AccessibleIcons;
-
- // struct to get the icons associated with a component
- typedef struct GetAccessibleIconsPackageTag {
- long vmID; // the virtual machine id
- JOBJECT64 accessibleContext; // the component
- AccessibleIcons rAccessibleIcons; // the icons
- } GetAccessibleIconsPackage;
-
-
- /**
-******************************************************
-* AccessibleAction packages
-******************************************************
-*/
-#define MAX_ACTION_INFO 256
-#define MAX_ACTIONS_TO_DO 32
-
- // an action assocated with a component
- typedef struct AccessibleActionInfoTag {
- wchar_t name[SHORT_STRING_SIZE]; // action name
- } AccessibleActionInfo;
-
- // all of the actions associated with a component
- typedef struct AccessibleActionsTag {
- jint actionsCount; // number of actions
- AccessibleActionInfo actionInfo[MAX_ACTION_INFO]; // the action information
- } AccessibleActions;
-
- // struct for requesting the actions associated with a component
- typedef struct GetAccessibleActionsPackageTag {
- long vmID;
- JOBJECT64 accessibleContext; // the component
- AccessibleActions rAccessibleActions; // the actions
- } GetAccessibleActionsPackage;
-
- // list of AccessibleActions to do
- typedef struct AccessibleActionsToDoTag {
- jint actionsCount; // number of actions to do
- AccessibleActionInfo actions[MAX_ACTIONS_TO_DO];// the accessible actions to do
- } AccessibleActionsToDo;
-
- // struct for sending an message to do one or more actions
- typedef struct DoAccessibleActionsPackageTag {
- long vmID; // the virtual machine ID
- JOBJECT64 accessibleContext; // component to do the action
- AccessibleActionsToDo actionsToDo; // the accessible actions to do
- BOOL rResult; // action return value
- jint failure; // index of action that failed if rResult is FALSE
- } DoAccessibleActionsPackage;
-
- /**
-******************************************************
-* AccessibleText packages
-******************************************************
-*/
-
- 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;
-
- /**
-******************************************************
-*
-* Utility method packages
-******************************************************
-*/
-
- typedef struct SetTextContentsPackageTag {
- long vmID;
- JOBJECT64 accessibleContext; // the text field
- wchar_t text[MAX_STRING_SIZE]; // the text
- BOOL rResult;
- } SetTextContentsPackage;
-
- typedef struct GetParentWithRolePackageTag {
- long vmID;
- JOBJECT64 accessibleContext;
- wchar_t role[SHORT_STRING_SIZE]; // one of Accessible Roles above
- 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]; // one of Accessible Roles above
- JOBJECT64 rAccessibleContext;
- } GetParentWithRoleElseRootPackage;
-
- typedef struct GetObjectDepthPackageTag {
- long vmID;
- JOBJECT64 accessibleContext;
- jint rResult;
- } GetObjectDepthPackage;
-
- typedef struct GetActiveDescendentPackageTag {
- long vmID;
- JOBJECT64 accessibleContext;
- JOBJECT64 rAccessibleContext;
- } GetActiveDescendentPackage;
-
- /**
-******************************************************
-* AccessibleValue packages
-******************************************************
-*/
-
- 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;
-
-
- /**
-******************************************************
-* AccessibleSelection packages
-******************************************************
-*/
-
- 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;
-
-
- /**
-******************************************************
-* Java Event Notification Registration packages
-******************************************************
-*/
-
- typedef struct AddJavaEventNotificationPackageTag {
- jlong type;
- //HWND DLLwindow;
- ABHWND64 DLLwindow;
- } AddJavaEventNotificationPackage;
-
- typedef struct RemoveJavaEventNotificationPackageTag {
- jlong type;
- //HWND DLLwindow;
- ABHWND64 DLLwindow;
- } RemoveJavaEventNotificationPackage;
-
-
- /**
-******************************************************
-* Accessibility Event Notification Registration packages
-******************************************************
-*/
-
- typedef struct AddAccessibilityEventNotificationPackageTag {
- jlong type;
- //HWND DLLwindow;
- ABHWND64 DLLwindow;
- } AddAccessibilityEventNotificationPackage;
-
- typedef struct RemoveAccessibilityEventNotificationPackageTag {
- jlong type;
- //HWND DLLwindow;
- ABHWND64 DLLwindow;
- } RemoveAccessibilityEventNotificationPackage;
-
-
- /**
-******************************************************
-* Accessibility Property Change Event packages
-******************************************************
-*/
-
- 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;
-
-
- // String format for newValue is:
- // "type" one of "INSERT", "UPDATE" or "DELETE"
- // "firstRow"
- // "lastRow"
- // "firstColumn"
- // "lastColumn"
- //
- // oldValue is currently unused
- //
- typedef struct PropertyTableModelChangePackageTag {
- long vmID;
- JOBJECT64 Event;
- JOBJECT64 AccessibleContextSource;
- wchar_t oldValue[SHORT_STRING_SIZE];
- wchar_t newValue[SHORT_STRING_SIZE];
- } PropertyTableModelChangePackage;
-
-
- /**
-******************************************************
-* Property Change Event packages
-******************************************************
-*/
-
- /*
- typedef struct PropertyChangePackageTag {
- long vmID;
- jobject Event;
- jobject AccessibleContextSource;
- char propertyName[SHORT_STRING_SIZE];
- char oldValue[SHORT_STRING_SIZE]; // PropertyChangeEvent().getOldValue().toString()
- char newValue[SHORT_STRING_SIZE]; // PropertyChangeEvent().getNewValue().toString()
- } PropertyChangePackage;
- */
-
- /*
- * Java shutdown event package
- */
- typedef struct JavaShutdownPackageTag {
- long vmID;
- } JavaShutdownPackage;
-
-
- /**
-******************************************************
-* Focus Event packages
-******************************************************
-*/
-
- typedef struct FocusGainedPackageTag {
- long vmID;
- JOBJECT64 Event;
- JOBJECT64 AccessibleContextSource;
- } FocusGainedPackage;
-
- typedef struct FocusLostPackageTag {
- long vmID;
- JOBJECT64 Event;
- JOBJECT64 AccessibleContextSource;
- } FocusLostPackage;
-
-
- /**
-******************************************************
-* Caret Event packages
-******************************************************
-*/
-
- typedef struct CaretUpdatePackageTag {
- long vmID;
- JOBJECT64 Event;
- JOBJECT64 AccessibleContextSource;
- } CaretUpdatePackage;
-
-
- /**
-******************************************************
-* Mouse Event packages
-******************************************************
-*/
-
- 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;
-
-
- /**
-******************************************************
-* Menu/PopupMenu Event packages
-******************************************************
-*/
-
- 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;
-
- /**
-******************************************************
-* Additional methods for Teton
-******************************************************
-*/
-
- /**
- * Gets the AccessibleName for a component based upon the JAWS algorithm. Returns
- * whether successful.
- *
- * Bug ID 4916682 - Implement JAWS AccessibleName policy
- */
- typedef struct GetVirtualAccessibleNamePackageTag {
- long vmID;
- AccessibleContext accessibleContext;
- wchar_t rName[MAX_STRING_SIZE];
- int len;
- } GetVirtualAccessibleNamePackage;
-
- /**
- * Request focus for a component. Returns whether successful;
- *
- * Bug ID 4944757 - requestFocus method needed
- */
- typedef struct RequestFocusPackageTag {
- long vmID;
- AccessibleContext accessibleContext;
- } RequestFocusPackage;
-
- /**
- * Selects text between two indices. Selection includes the text at the start index
- * and the text at the end index. Returns whether successful;
- *
- * Bug ID 4944758 - selectTextRange method needed
- */
- typedef struct SelectTextRangePackageTag {
- long vmID;
- AccessibleContext accessibleContext;
- jint startIndex;
- jint endIndex;
- } SelectTextRangePackage;
-
- /**
- * Gets the number of contiguous characters with the same attributes.
- *
- * Bug ID 4944761 - getTextAttributes between two indices method needed
- */
- typedef struct GetTextAttributesInRangePackageTag {
- long vmID;
- AccessibleContext accessibleContext;
- jint startIndex; // start index (inclusive)
- jint endIndex; // end index (inclusive)
- AccessibleTextAttributesInfo attributes; // character attributes to match
- short rLength; // number of contiguous characters with matching attributes
- } GetTextAttributesInRangePackage;
-
-#define MAX_VISIBLE_CHILDREN 256
-
- // visible children information
- typedef struct VisibleChildenInfoTag {
- int returnedChildrenCount; // number of children returned
- AccessibleContext children[MAX_VISIBLE_CHILDREN]; // the visible children
- } VisibleChildrenInfo;
-
- // struct for sending a message to get the number of visible children
- typedef struct GetVisibleChildrenCountPackageTag {
- long vmID; // the virtual machine ID
- JOBJECT64 accessibleContext; // AccessibleContext of parent component
- jint rChildrenCount; // visible children count return value
- } GetVisibleChildrenCountPackage;
-
- // struct for sending a message to get the hypertext for an AccessibleContext
- // starting at a specified index in the document
- typedef struct GetVisibleChildrenPackageTag {
- long vmID; // the virtual machine ID
- JOBJECT64 accessibleContext; // AccessibleContext of parent component
- jint startIndex; // start index for retrieving children
- VisibleChildrenInfo rVisibleChildrenInfo; // returned info
- BOOL rSuccess; // whether call succeeded
- } GetVisibleChildrenPackage;
-
- /**
- * Set the caret to a text position. Returns whether successful;
- *
- * Bug ID 4944770 - setCaretPosition method needed
- */
- typedef struct SetCaretPositionPackageTag {
- long vmID;
- AccessibleContext accessibleContext;
- jint position;
- } SetCaretPositionPackage;
-
-
- /**
- ******************************************************
- * Wrapping up all of the packages
- ******************************************************
- */
-
- /**
- * What is the type of this package
- */
- typedef enum PackageType {
-
- cMemoryMappedFileCreatedPackage = 0x11000,
-
- // many of these will go away...
- 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,
-
-
- // AccessibleTable
- cGetAccessibleTableInfoPackage = 0x1200,
- cGetAccessibleTableCellInfoPackage,
-
- cGetAccessibleTableRowHeaderPackage,
- cGetAccessibleTableColumnHeaderPackage,
-
- cGetAccessibleTableRowDescriptionPackage,
- cGetAccessibleTableColumnDescriptionPackage,
-
- cGetAccessibleTableRowSelectionCountPackage,
- cIsAccessibleTableRowSelectedPackage,
- cGetAccessibleTableRowSelectionsPackage,
-
- cGetAccessibleTableColumnSelectionCountPackage,
- cIsAccessibleTableColumnSelectedPackage,
- cGetAccessibleTableColumnSelectionsPackage,
-
- cGetAccessibleTableRowPackage,
- cGetAccessibleTableColumnPackage,
- cGetAccessibleTableIndexPackage,
-
- cPropertyTableModelChangePackage,
-
-
- // AccessibleRelationSet
- cGetAccessibleRelationSetPackage = 0x1300,
-
- // AccessibleHypertext
- cGetAccessibleHypertextPackage = 0x1400,
- cActivateAccessibleHyperlinkPackage,
- cGetAccessibleHyperlinkCountPackage,
- cGetAccessibleHypertextExtPackage,
- cGetAccessibleHypertextLinkIndexPackage,
- cGetAccessibleHyperlinkPackage,
-
- // Accessible KeyBinding, Icon and Action
- cGetAccessibleKeyBindingsPackage = 0x1500,
- cGetAccessibleIconsPackage,
- cGetAccessibleActionsPackage,
- cDoAccessibleActionsPackage,
-
- // Utility methods
- cSetTextContentsPackage = 0x1600,
- cGetParentWithRolePackage,
- cGetTopLevelObjectPackage,
- cGetParentWithRoleElseRootPackage,
- cGetObjectDepthPackage,
- cGetActiveDescendentPackage,
-
- // Additional methods for Teton
- cGetVirtualAccessibleNamePackage = 0x1700,
- cRequestFocusPackage,
- cSelectTextRangePackage,
- cGetTextAttributesInRangePackage,
- cGetSameTextAttributesInRangePackage,
- cGetVisibleChildrenCountPackage,
- cGetVisibleChildrenPackage,
- cSetCaretPositionPackage,
- cGetCaretLocationPackage
-
-
- } PackageType;
-
-
- /**
- * Union of all package contents
- */
- typedef union AllPackagesTag {
-
- // Initial Rendezvous packages
- MemoryMappedFileCreatedPackage memoryMappedFileCreatedPackage;
-
- JavaVMCreatedPackage javaVMCreatedPackage;
- JavaVMDestroyedPackage javaVMDestroyedPackage;
- WindowsATCreatedPackage windowsATCreatedPackage;
- WindowsATDestroyedPackage windowsATDestroyedPackage;
- JavaVMPresentNotificationPackage javaVMPresentNotificationPackage;
- WindowsATPresentNotificationPackage windowsATPresentNotificationPackage;
-
- // Core packages
- ReleaseJavaObjectPackage releaseJavaObject;
- GetAccessBridgeVersionPackage getAccessBridgeVersion;
-
- // Window packages
- GetAccessibleContextFromHWNDPackage getAccessibleContextFromHWND;
- GetHWNDFromAccessibleContextPackage getHWNDFromAccessibleContext;
-
- // AccessibleContext packages
- GetAccessibleContextAtPackage getAccessibleContextAt;
- GetAccessibleContextWithFocusPackage getAccessibleContextWithFocus;
- GetAccessibleContextInfoPackage getAccessibleContextInfo;
- GetAccessibleChildFromContextPackage getAccessibleChildFromContext;
- GetAccessibleParentFromContextPackage getAccessibleParentFromContext;
-
- // AccessibleText packages
- GetAccessibleTextInfoPackage getAccessibleTextInfo;
- GetAccessibleTextItemsPackage getAccessibleTextItems;
- GetAccessibleTextSelectionInfoPackage getAccessibleTextSelectionInfo;
- GetAccessibleTextAttributeInfoPackage getAccessibleTextAttributeInfo;
- GetAccessibleTextRectInfoPackage getAccessibleTextRectInfo;
- GetAccessibleTextLineBoundsPackage getAccessibleTextLineBounds;
- GetAccessibleTextRangePackage getAccessibleTextRange;
-
- // AccessibleValue packages
- GetCurrentAccessibleValueFromContextPackage getCurrentAccessibleValueFromContext;
- GetMaximumAccessibleValueFromContextPackage getMaximumAccessibleValueFromContext;
- GetMinimumAccessibleValueFromContextPackage getMinimumAccessibleValueFromContext;
-
- // AccessibleSelection packages
- AddAccessibleSelectionFromContextPackage addAccessibleSelectionFromContext;
- ClearAccessibleSelectionFromContextPackage clearAccessibleSelectionFromContext;
- GetAccessibleSelectionFromContextPackage getAccessibleSelectionFromContext;
- GetAccessibleSelectionCountFromContextPackage getAccessibleSelectionCountFromContext;
- IsAccessibleChildSelectedFromContextPackage isAccessibleChildSelectedFromContext;
- RemoveAccessibleSelectionFromContextPackage removeAccessibleSelectionFromContext;
- SelectAllAccessibleSelectionFromContextPackage selectAllAccessibleSelectionFromContext;
-
- // Event Notification Registration packages
- AddJavaEventNotificationPackage addJavaEventNotification;
- RemoveJavaEventNotificationPackage removeJavaEventNotification;
- AddAccessibilityEventNotificationPackage addAccessibilityEventNotification;
- RemoveAccessibilityEventNotificationPackage removeAccessibilityEventNotification;
-
- // Event contents packages
- // PropertyChangePackage propertyChange;
- 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;
-
- // AccessibleRelationSet
- GetAccessibleRelationSetPackage getAccessibleRelationSet;
-
- // AccessibleHypertext
- GetAccessibleHypertextPackage _getAccessibleHypertext;
- ActivateAccessibleHyperlinkPackage _activateAccessibleHyperlink;
- GetAccessibleHyperlinkCountPackage _getAccessibleHyperlinkCount;
- GetAccessibleHypertextExtPackage _getAccessibleHypertextExt;
- GetAccessibleHypertextLinkIndexPackage _getAccessibleHypertextLinkIndex;
- GetAccessibleHyperlinkPackage _getAccessibleHyperlink;
-
- // Accessible KeyBinding, Icon and Action
- GetAccessibleKeyBindingsPackage getAccessibleKeyBindings;
- GetAccessibleIconsPackage getAccessibleIcons;
- GetAccessibleActionsPackage getAccessibleActions;
- DoAccessibleActionsPackage doAccessibleActions;
-
- // utility methods
- SetTextContentsPackage _setTextContents;
- GetParentWithRolePackage _getParentWithRole;
- GetTopLevelObjectPackage _getTopLevelObject;
- GetParentWithRoleElseRootPackage _getParentWithRoleElseRoot;
- GetObjectDepthPackage _getObjectDepth;
- GetActiveDescendentPackage _getActiveDescendent;
-
- // Additional methods for Teton
- GetVirtualAccessibleNamePackage _getVirtualAccessibleName;
- RequestFocusPackage _requestFocus;
- SelectTextRangePackage _selectTextRange;
- GetTextAttributesInRangePackage _getTextAttributesInRange;
- GetVisibleChildrenCountPackage _getVisibleChildrenCount;
- GetVisibleChildrenPackage _getVisibleChildren;
- SetCaretPositionPackage _setCaretPosition;
-
- } AllPackages;
-
-
- /**
- * Union of all Java-initiated package contents
- */
- typedef union JavaInitiatedPackagesTag {
-
- // Initial Rendezvous packages
- JavaVMCreatedPackage javaVMCreatedPackage;
- JavaVMDestroyedPackage javaVMDestroyedPackage;
- JavaVMPresentNotificationPackage javaVMPresentNotificationPackage;
-
- // Event contents packages
- 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;
-
-
- /**
- * Union of all Windows-initiated package contents
- */
- typedef union WindowsInitiatedPackagesTag {
-
- // Initial Rendezvous packages
- MemoryMappedFileCreatedPackage memoryMappedFileCreatedPackage;
-
- WindowsATCreatedPackage windowsATCreatedPackage;
- WindowsATDestroyedPackage windowsATDestroyedPackage;
- WindowsATPresentNotificationPackage windowsATPresentNotificationPackage;
-
- // Core packages
- ReleaseJavaObjectPackage releaseJavaObject;
- GetAccessBridgeVersionPackage getAccessBridgeVersion;
-
- // Window packages
- GetAccessibleContextFromHWNDPackage getAccessibleContextFromHWND;
- GetHWNDFromAccessibleContextPackage getHWNDFromAccessibleContext;
-
- // AccessibleContext packages
- GetAccessibleContextAtPackage getAccessibleContextAt;
- GetAccessibleContextWithFocusPackage getAccessibleContextWithFocus;
- GetAccessibleContextInfoPackage getAccessibleContextInfo;
- GetAccessibleChildFromContextPackage getAccessibleChildFromContext;
- GetAccessibleParentFromContextPackage getAccessibleParentFromContext;
-
- // AccessibleText packages
- GetAccessibleTextInfoPackage getAccessibleTextInfo;
- GetAccessibleTextItemsPackage getAccessibleTextItems;
- GetAccessibleTextSelectionInfoPackage getAccessibleTextSelectionInfo;
- GetAccessibleTextAttributeInfoPackage getAccessibleTextAttributeInfo;
- GetAccessibleTextRectInfoPackage getAccessibleTextRectInfo;
- GetAccessibleTextLineBoundsPackage getAccessibleTextLineBounds;
- GetAccessibleTextRangePackage getAccessibleTextRange;
-
- // AccessibleValue packages
- GetCurrentAccessibleValueFromContextPackage getCurrentAccessibleValueFromContext;
- GetMaximumAccessibleValueFromContextPackage getMaximumAccessibleValueFromContext;
- GetMinimumAccessibleValueFromContextPackage getMinimumAccessibleValueFromContext;
-
- // AccessibleSelection packages
- AddAccessibleSelectionFromContextPackage addAccessibleSelectionFromContext;
- ClearAccessibleSelectionFromContextPackage clearAccessibleSelectionFromContext;
- GetAccessibleSelectionFromContextPackage getAccessibleSelectionFromContext;
- GetAccessibleSelectionCountFromContextPackage getAccessibleSelectionCountFromContext;
- IsAccessibleChildSelectedFromContextPackage isAccessibleChildSelectedFromContext;
- RemoveAccessibleSelectionFromContextPackage removeAccessibleSelectionFromContext;
- SelectAllAccessibleSelectionFromContextPackage selectAllAccessibleSelectionFromContext;
-
- // Event Notification Registration packages
- AddJavaEventNotificationPackage addJavaEventNotification;
- RemoveJavaEventNotificationPackage removeJavaEventNotification;
- AddAccessibilityEventNotificationPackage addAccessibilityEventNotification;
- RemoveAccessibilityEventNotificationPackage removeAccessibilityEventNotification;
-
- // AccessibleTable
- 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;
-
- // AccessibleRelationSet
- GetAccessibleRelationSetPackage _getAccessibleRelationSet;
-
- // Accessible KeyBindings, Icons and Actions
- GetAccessibleKeyBindingsPackage _getAccessibleKeyBindings;
- GetAccessibleIconsPackage _getAccessibleIcons;
- GetAccessibleActionsPackage _getAccessibleActions;
- DoAccessibleActionsPackage _doAccessibleActions;
-
-
- IsSameObjectPackage _isSameObject;
-
- // utility methods
- SetTextContentsPackage _setTextContents;
- GetParentWithRolePackage _getParentWithRole;
- GetTopLevelObjectPackage _getTopLevelObject;
- GetParentWithRoleElseRootPackage _getParentWithRoleElseRoot;
- GetObjectDepthPackage _getObjectDepth;
- GetActiveDescendentPackage _getActiveDescendent;
-
- // Additional methods for Teton
- GetVirtualAccessibleNamePackage _getVirtualAccessibleName;
- RequestFocusPackage _requestFocus;
- SelectTextRangePackage _selectTextRange;
- GetTextAttributesInRangePackage _getTextAttributesInRange;
- GetVisibleChildrenCountPackage _getVisibleChildrenCount;
- GetVisibleChildrenPackage _getVisibleChildren;
- SetCaretPositionPackage _setCaretPosition;
-
-
- } WindowsInitiatedPackages;
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/demos/java/jni/gs_jni/include/win32/jawt_md.h b/demos/java/jni/gs_jni/include/win32/jawt_md.h
deleted file mode 100644
index 66e7256a..00000000
--- a/demos/java/jni/gs_jni/include/win32/jawt_md.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-
-#ifndef _JAVASOFT_JAWT_MD_H_
-#define _JAVASOFT_JAWT_MD_H_
-
-#include <windows.h>
-#include "jawt.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Win32-specific declarations for AWT native interface.
- * See notes in jawt.h for an example of use.
- */
-typedef struct jawt_Win32DrawingSurfaceInfo {
- /* Native window, DDB, or DIB handle */
- union {
- HWND hwnd;
- HBITMAP hbitmap;
- void* pbits;
- };
- /*
- * This HDC should always be used instead of the HDC returned from
- * BeginPaint() or any calls to GetDC().
- */
- HDC hdc;
- HPALETTE hpalette;
-} JAWT_Win32DrawingSurfaceInfo;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !_JAVASOFT_JAWT_MD_H_ */
diff --git a/demos/java/jni/gs_jni/include/win32/jni_md.h b/demos/java/jni/gs_jni/include/win32/jni_md.h
deleted file mode 100644
index 38080013..00000000
--- a/demos/java/jni/gs_jni/include/win32/jni_md.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 1996, 1998, Oracle and/or its affiliates. All rights reserved.
- * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- */
-
-#ifndef _JAVASOFT_JNI_MD_H_
-#define _JAVASOFT_JNI_MD_H_
-
-#define JNIEXPORT __declspec(dllexport)
-#define JNIIMPORT __declspec(dllimport)
-#define JNICALL __stdcall
-
-typedef long jint;
-typedef __int64 jlong;
-typedef signed char jbyte;
-
-#endif /* !_JAVASOFT_JNI_MD_H_ */
diff --git a/demos/java/jni/gs_jni/install_linux.sh b/demos/java/jni/gs_jni/install_linux.sh
new file mode 100644
index 00000000..1626c212
--- /dev/null
+++ b/demos/java/jni/gs_jni/install_linux.sh
@@ -0,0 +1,7 @@
+#!bin/bash
+
+echo "Copy libgpdl.so -> /usr/lib/libgpdl.so"
+sudo cp -L "../../../../sobin/libgpdl.so" "/usr/lib/libgpdl.so"
+
+echo "Copy gs_jni.so -> /usr/lib/gs_jni.so"
+sudo cp "gs_jni.so" "/usr/lib/gs_jni.so" \ No newline at end of file
diff --git a/demos/java/jni/gs_jni/jni_util.cpp b/demos/java/jni/gs_jni/jni_util.cpp
index 0a99f8bc..74852a95 100644
--- a/demos/java/jni/gs_jni/jni_util.cpp
+++ b/demos/java/jni/gs_jni/jni_util.cpp
@@ -2,7 +2,7 @@
#include <exception>
#include <string.h>
-#include <varargs.h>
+#include <stdarg.h>
#include <string>
using namespace util;
@@ -451,7 +451,8 @@ jint util::throwNoClassDefError(JNIEnv *env, const char *message)
exClass = env->FindClass(className);
if (exClass == NULL)
- throw std::exception("Failed to find java.lang.NoClassDefFoundError");
+ return -2;
+ //throw std::exception("Failed to find java.lang.NoClassDefFoundError");
return env->ThrowNew(exClass, message);
}
@@ -558,7 +559,7 @@ void util::freeClassName(const char *className)
delete[] className;
}
-util::Reference::Reference(JNIEnv *env) : Reference(m_env, NULL)
+util::Reference::Reference(JNIEnv *env) : Reference(env, NULL)
{
}
diff --git a/demos/python/gsapi.py b/demos/python/gsapi.py
index ea2fa6bb..6dfeb95b 100755
--- a/demos/python/gsapi.py
+++ b/demos/python/gsapi.py
@@ -1,10 +1,12 @@
#! /usr/bin/env python3
'''
-Python version of the C API in psi/iapi.h, using ctypes.
+Python version of the C API in psi/iapi.h.
Overview:
+ Implemented using Python's ctypes module.
+
All functions have the same name as the C function that they wrap.
Functions raise a GSError exception if the underlying function returned a
@@ -15,12 +17,38 @@ Overview:
See examples.py for sample usage.
-Usage:
+Example usage:
+
+ On Linux/OpenBSD/MacOS:
+ Build the ghostscript shared library:
+ make sodebug
+
+ Run gsapi.py as a test script:
+ GSAPI_LIBDIR=sodebugbin ./demos/python/gsapi.py
+
+ On Windows:
+ Build ghostscript dll, for example:
+ devenv.com windows/GhostPDL.sln /Build Debug /Project ghostscript
+
+ Run gsapi.py as a test script in a cmd.exe window:
+ set GSAPI_LIBDIR=debugbin&& python ./demos/python/gsapi.py
+
+ Run gsapi.py as a test script in a PowerShell window:
+ cmd /C "set GSAPI_LIBDIR=debugbin&& python ./demos/python/gsapi.py"
+
+Specifying the Ghostscript shared library:
- make sodebug
- LD_LIBRARY_PATH=sodebugbin ./demos/python/gsapi.py
+ Two environmental variables can be used to specify where to find the
+ Ghostscript shared library.
- On Windows perform Release build (x64 or Win32).
+ GSAPI_LIB sets the exact path of the ghostscript shared library, else
+ GSAPI_LIBDIR sets the directory containing the ghostscript shared
+ library. If neither is defined we will use the OS's default location(s) for
+ shared libraries.
+
+ If GSAPI_LIB is not defined, the leafname of the shared library is inferred
+ from the OS type - libgs.so on Unix, libgs.dylib on MacOS, gsdll64.dll on
+ Windows 64.
Requirements:
@@ -43,23 +71,36 @@ Limitations as of 2020-07-21:
'''
import ctypes
+import os
import platform
import sys
-if platform.system() in ('Linux', 'OpenBSD'):
- _libgs = ctypes.CDLL('libgs.so')
-
-elif platform.system() == 'Windows':
- if sys.maxsize == 2**31 - 1:
- _libgs = ctypes.CDLL('../../bin/gpdldll32.dll')
- elif sys.maxsize == 2**63 - 1:
- _libgs = ctypes.CDLL('../../bin/gpdldll64.dll')
+_lib = os.environ.get('GSAPI_LIB')
+if not _lib:
+ if platform.system() in ('Linux', 'OpenBSD'):
+ _lib = 'libgs.so'
+ elif platform.system() == 'Darwin':
+ _lib = 'libgs.dylib'
+ elif platform.system() == 'Windows':
+ if sys.maxsize == 2**31 - 1:
+ _lib = 'gsdll32.dll'
+ elif sys.maxsize == 2**63 - 1:
+ _lib = 'gsdll64.dll'
+ else:
+ raise Exception('Unrecognised sys.maxsize=0x%x' % sys.maxsize)
else:
- raise Exception('Unrecognised sys.maxsize=0x%x' % sys.maxsize)
+ raise Exception('Unrecognised platform.system()=%s' % platform.system())
+
+ _libdir = os.environ.get('GSAPI_LIBDIR')
+ if _libdir:
+ _lib = os.path.join(_libdir, _lib)
-else:
- raise Exception('Unrecognised platform.system()=%s' % platform.system())
+try:
+ _libgs = ctypes.CDLL(_lib)
+except Exception as e:
+ print('gsapi.py: Failed to load Ghostscript library "%s".' % _lib)
+ raise
class GSError(Exception):
@@ -90,7 +131,7 @@ class gsapi_revision_t:
def gsapi_revision():
'''
- Returns (e, r) where <r> is a gsapi_revision_t.
+ Returns a gsapi_revision_t.
'''
# [unicode: we assume that underlying gsapi_revision() returns utf-8
# strings.]
@@ -107,9 +148,14 @@ def gsapi_revision():
return r
-def gsapi_new_instance(caller_handle):
+def gsapi_new_instance(caller_handle=None):
'''
- Returns (e, instance).
+ Returns an <instance> to be used with other gsapi_*() functions.
+
+ caller_handle:
+ Typically unused, but is passed to callbacks e.g. via
+ gsapi_set_stdio(). Must be convertable to a C void*, so None or an
+ integer is ok but other types such as strings will fail.
'''
instance = ctypes.c_void_p()
e = _libgs.gsapi_new_instance(
@@ -130,8 +176,11 @@ def gsapi_delete_instance(instance):
def gsapi_set_stdio(instance, stdin_fn, stdout_fn, stderr_fn):
'''
stdin_fn:
- If not None, will be called with (caller_handle, text, len_)
- where <text> is a ctypes.LP_c_char of length <len_>.
+ If not None, will be called with (caller_handle, text, len_):
+ caller_handle:
+ As passed originally to gsapi_new_instance().
+ text:
+ A ctypes.LP_c_char of length <len_>.
[todo: wrap this to be easier to use from Python?]
@@ -173,6 +222,12 @@ def gsapi_set_stdio(instance, stdin_fn, stdout_fn, stderr_fn):
def gsapi_set_poll(instance, poll_fn):
+ '''
+ poll_fn:
+ Will be called with (caller_handle) where <caller_handle> is as passed
+ to gsapi_new_instance().
+ Not tested.
+ '''
poll_fn2 = _poll_fn(poll_fn)
e = _libgs.gsapi_set_poll(instance, poll_fn2)
if e < 0:
@@ -215,6 +270,10 @@ class display_callback:
def gsapi_set_display_callback(instance, callback):
+ '''
+ callback:
+ Must be a <display_callback> instance.
+ '''
assert isinstance(callback, display_callback)
callback2 = _display_callback()
callback2.size = ctypes.sizeof(callback2)
@@ -235,6 +294,10 @@ def gsapi_set_display_callback(instance, callback):
def gsapi_set_default_device_list(instance, list_):
+ '''
+ list_:
+ Must be a string.
+ '''
# [unicode: we assume that underlying gsapi_set_default_device_list() is
# expecting list_ to be in utf-8 encoding.]
assert isinstance(list_, str)
@@ -246,7 +309,7 @@ def gsapi_set_default_device_list(instance, list_):
def gsapi_get_default_device_list(instance):
'''
- Returns (e, list) where <list> is a string.
+ Returns a string.
'''
# [unicode: we assume underlying gsapi_get_default_device_list() returns
# strings encoded as latin-1.]
@@ -268,6 +331,13 @@ GS_ARG_ENCODING_UTF16LE = 2
def gsapi_set_arg_encoding(instance, encoding):
+ '''
+ encoding:
+ Must be one of:
+ GS_ARG_ENCODING_LOCAL
+ GS_ARG_ENCODING_UTF8
+ GS_ARG_ENCODING_UTF16LE
+ '''
assert encoding in (
GS_ARG_ENCODING_LOCAL,
GS_ARG_ENCODING_UTF8,
@@ -286,6 +356,10 @@ def gsapi_set_arg_encoding(instance, encoding):
def gsapi_init_with_args(instance, args):
+ '''
+ args:
+ A list/tuple of strings.
+ '''
# [unicode: we assume that underlying gsapi_init_with_args()
# expects strings in args[] to be encoded in encoding set by
# gsapi_set_arg_encoding().]
@@ -305,7 +379,7 @@ def gsapi_init_with_args(instance, args):
def gsapi_run_string_begin(instance, user_errors):
'''
- Returns (e, exit_code).
+ Returns <exit_code>.
'''
pexit_code = ctypes.c_int()
e = _libgs.gsapi_run_string_begin(instance, user_errors, ctypes.byref(pexit_code))
@@ -321,7 +395,7 @@ def gsapi_run_string_continue(instance, str_, user_errors):
We don't raise exception for gs_error_NeedInput.
- Returns exit_code.
+ Returns <exit_code>.
'''
if isinstance(str_, str):
str_ = str_.encode('utf-8')
@@ -344,7 +418,7 @@ def gsapi_run_string_continue(instance, str_, user_errors):
def gsapi_run_string_end(instance, user_errors):
'''
- Returns (e, exit_code).
+ Returns <exit_code>.
'''
pexit_code = ctypes.c_int()
e = _libgs.gsapi_run_string_end(
@@ -362,11 +436,9 @@ def gsapi_run_string_with_length(instance, str_, length, user_errors):
<str_> should be either a python string or a bytes object. If the former,
it is converted into a bytes object using utf-8 encoding.
- Returns (e, exit_code).
+ Returns <exit_code>.
'''
- e = gsapi_run_string(instance, str_[:length], user_errors)
- if e < 0:
- raise GSError(e)
+ return gsapi_run_string(instance, str_[:length], user_errors)
def gsapi_run_string(instance, str_, user_errors):
@@ -374,7 +446,7 @@ def gsapi_run_string(instance, str_, user_errors):
<str_> should be either a python string or a bytes object. If the former,
it is converted into a bytes object using utf-8 encoding.
- Returns (e, exit_code).
+ Returns <exit_code>.
'''
if isinstance(str_, str):
str_ = str_.encode('utf-8')
@@ -395,7 +467,7 @@ def gsapi_run_string(instance, str_, user_errors):
def gsapi_run_file(instance, filename, user_errors):
'''
- Returns (e, exit_code).
+ Returns <exit_code>.
'''
# [unicode: we assume that underlying gsapi_run_file() expects <filename>
# to be encoded in encoding set by gsapi_set_arg_encoding().]
@@ -930,7 +1002,7 @@ if __name__ == '__main__':
revision = gsapi_revision()
print('libgs.gsapi_revision() ok: %s' % revision)
- instance = gsapi_new_instance(1)
+ instance = gsapi_new_instance()
print('gsapi_new_instance() ok: %s' % instance)
gsapi_set_arg_encoding(instance, GS_ARG_ENCODING_UTF8)