Windows JNA now uses JnaHelper
This commit is contained in:
parent
713837cf4c
commit
8cbc753baa
@ -17,10 +17,14 @@ package dorkbox.util.jna;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import com.sun.jna.Library;
|
import com.sun.jna.Library;
|
||||||
import com.sun.jna.Native;
|
import com.sun.jna.Native;
|
||||||
import com.sun.jna.NativeLibrary;
|
import com.sun.jna.NativeLibrary;
|
||||||
|
import com.sun.jna.win32.W32APIOptions;
|
||||||
|
|
||||||
|
import dorkbox.util.OS;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper method to get the library info from JNA when registering via direct map
|
* Helper method to get the library info from JNA when registering via direct map
|
||||||
@ -33,6 +37,13 @@ class JnaHelper {
|
|||||||
final Map<String, Object> options = new HashMap<String, Object>();
|
final Map<String, Object> options = new HashMap<String, Object>();
|
||||||
options.put(Library.OPTION_CLASSLOADER, clazz.getClassLoader());
|
options.put(Library.OPTION_CLASSLOADER, clazz.getClassLoader());
|
||||||
|
|
||||||
|
if (OS.isWindows()) {
|
||||||
|
Set<Map.Entry<String, Object>> entries = W32APIOptions.DEFAULT_OPTIONS.entrySet();
|
||||||
|
for (Map.Entry<String, Object> entry : entries) {
|
||||||
|
options.put(entry.getKey(), entry.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final NativeLibrary library = NativeLibrary.getInstance(libraryName, options);
|
final NativeLibrary library = NativeLibrary.getInstance(libraryName, options);
|
||||||
if (library == null) {
|
if (library == null) {
|
||||||
throw new IllegalArgumentException(libraryName + " doesn't exist or cannot be loaded.");
|
throw new IllegalArgumentException(libraryName + " doesn't exist or cannot be loaded.");
|
||||||
|
@ -20,16 +20,15 @@ import static com.sun.jna.platform.win32.WinDef.HDC;
|
|||||||
import static com.sun.jna.platform.win32.WinGDI.BITMAPINFO;
|
import static com.sun.jna.platform.win32.WinGDI.BITMAPINFO;
|
||||||
import static com.sun.jna.platform.win32.WinNT.HANDLE;
|
import static com.sun.jna.platform.win32.WinNT.HANDLE;
|
||||||
|
|
||||||
import com.sun.jna.Native;
|
|
||||||
import com.sun.jna.NativeLibrary;
|
|
||||||
import com.sun.jna.Pointer;
|
import com.sun.jna.Pointer;
|
||||||
import com.sun.jna.ptr.PointerByReference;
|
import com.sun.jna.ptr.PointerByReference;
|
||||||
import com.sun.jna.win32.W32APIOptions;
|
|
||||||
|
import dorkbox.util.jna.JnaHelper;
|
||||||
|
|
||||||
public
|
public
|
||||||
class GDI32 {
|
class GDI32 {
|
||||||
static {
|
static {
|
||||||
Native.register(NativeLibrary.getInstance("GDI32", W32APIOptions.DEFAULT_OPTIONS));
|
JnaHelper.register("GDI32", GDI32.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -19,12 +19,11 @@ import static com.sun.jna.platform.win32.WinNT.HANDLE;
|
|||||||
|
|
||||||
import com.sun.jna.Memory;
|
import com.sun.jna.Memory;
|
||||||
import com.sun.jna.Native;
|
import com.sun.jna.Native;
|
||||||
import com.sun.jna.NativeLibrary;
|
|
||||||
import com.sun.jna.Pointer;
|
import com.sun.jna.Pointer;
|
||||||
import com.sun.jna.ptr.IntByReference;
|
import com.sun.jna.ptr.IntByReference;
|
||||||
import com.sun.jna.ptr.PointerByReference;
|
import com.sun.jna.ptr.PointerByReference;
|
||||||
import com.sun.jna.win32.W32APIOptions;
|
|
||||||
|
|
||||||
|
import dorkbox.util.jna.JnaHelper;
|
||||||
import dorkbox.util.jna.windows.structs.CONSOLE_SCREEN_BUFFER_INFO;
|
import dorkbox.util.jna.windows.structs.CONSOLE_SCREEN_BUFFER_INFO;
|
||||||
import dorkbox.util.jna.windows.structs.COORD;
|
import dorkbox.util.jna.windows.structs.COORD;
|
||||||
import dorkbox.util.jna.windows.structs.INPUT_RECORD;
|
import dorkbox.util.jna.windows.structs.INPUT_RECORD;
|
||||||
@ -33,7 +32,7 @@ import dorkbox.util.jna.windows.structs.SMALL_RECT;
|
|||||||
public
|
public
|
||||||
class Kernel32 {
|
class Kernel32 {
|
||||||
static {
|
static {
|
||||||
Native.register(NativeLibrary.getInstance("kernel32", W32APIOptions.DEFAULT_OPTIONS));
|
JnaHelper.register("kernel32", Kernel32.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
// see: http://msdn.microsoft.com/en-us/library/ms682013%28VS.85%29.aspx
|
// see: http://msdn.microsoft.com/en-us/library/ms682013%28VS.85%29.aspx
|
||||||
|
@ -15,16 +15,13 @@
|
|||||||
*/
|
*/
|
||||||
package dorkbox.util.jna.windows;
|
package dorkbox.util.jna.windows;
|
||||||
|
|
||||||
import com.sun.jna.Native;
|
import dorkbox.util.jna.JnaHelper;
|
||||||
import com.sun.jna.NativeLibrary;
|
|
||||||
import com.sun.jna.win32.W32APIOptions;
|
|
||||||
|
|
||||||
import dorkbox.util.jna.windows.structs.NOTIFYICONDATA;
|
import dorkbox.util.jna.windows.structs.NOTIFYICONDATA;
|
||||||
|
|
||||||
public
|
public
|
||||||
class Shell32 {
|
class Shell32 {
|
||||||
static {
|
static {
|
||||||
Native.register(NativeLibrary.getInstance("shell32", W32APIOptions.DEFAULT_OPTIONS));
|
JnaHelper.register("shell32", Shell32.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
static public final int NIM_ADD = 0x0;
|
static public final int NIM_ADD = 0x0;
|
||||||
|
@ -26,13 +26,11 @@ import static com.sun.jna.platform.win32.WinDef.POINT;
|
|||||||
import static com.sun.jna.platform.win32.WinDef.WPARAM;
|
import static com.sun.jna.platform.win32.WinDef.WPARAM;
|
||||||
|
|
||||||
import com.sun.jna.Callback;
|
import com.sun.jna.Callback;
|
||||||
import com.sun.jna.Native;
|
|
||||||
import com.sun.jna.NativeLibrary;
|
|
||||||
import com.sun.jna.Pointer;
|
import com.sun.jna.Pointer;
|
||||||
import com.sun.jna.WString;
|
import com.sun.jna.WString;
|
||||||
import com.sun.jna.platform.win32.WinNT;
|
import com.sun.jna.platform.win32.WinNT;
|
||||||
import com.sun.jna.win32.W32APIOptions;
|
|
||||||
|
|
||||||
|
import dorkbox.util.jna.JnaHelper;
|
||||||
import dorkbox.util.jna.windows.structs.ICONINFO;
|
import dorkbox.util.jna.windows.structs.ICONINFO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -45,7 +43,7 @@ import dorkbox.util.jna.windows.structs.ICONINFO;
|
|||||||
public
|
public
|
||||||
class User32_32 implements User32 {
|
class User32_32 implements User32 {
|
||||||
static {
|
static {
|
||||||
Native.register(NativeLibrary.getInstance("user32", W32APIOptions.DEFAULT_OPTIONS));
|
JnaHelper.register("user32", User32_32.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
// is replaced by the 64bit version
|
// is replaced by the 64bit version
|
||||||
|
@ -26,13 +26,11 @@ import static com.sun.jna.platform.win32.WinDef.POINT;
|
|||||||
import static com.sun.jna.platform.win32.WinDef.WPARAM;
|
import static com.sun.jna.platform.win32.WinDef.WPARAM;
|
||||||
|
|
||||||
import com.sun.jna.Callback;
|
import com.sun.jna.Callback;
|
||||||
import com.sun.jna.Native;
|
|
||||||
import com.sun.jna.NativeLibrary;
|
|
||||||
import com.sun.jna.Pointer;
|
import com.sun.jna.Pointer;
|
||||||
import com.sun.jna.WString;
|
import com.sun.jna.WString;
|
||||||
import com.sun.jna.platform.win32.WinNT;
|
import com.sun.jna.platform.win32.WinNT;
|
||||||
import com.sun.jna.win32.W32APIOptions;
|
|
||||||
|
|
||||||
|
import dorkbox.util.jna.JnaHelper;
|
||||||
import dorkbox.util.jna.windows.structs.ICONINFO;
|
import dorkbox.util.jna.windows.structs.ICONINFO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -45,7 +43,7 @@ import dorkbox.util.jna.windows.structs.ICONINFO;
|
|||||||
public
|
public
|
||||||
class User32_64 implements User32 {
|
class User32_64 implements User32 {
|
||||||
static {
|
static {
|
||||||
Native.register(NativeLibrary.getInstance("user32", W32APIOptions.DEFAULT_OPTIONS));
|
JnaHelper.register("user32", User32_64.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user