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.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.sun.jna.Library;
|
||||
import com.sun.jna.Native;
|
||||
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
|
||||
@ -33,6 +37,13 @@ class JnaHelper {
|
||||
final Map<String, Object> options = new HashMap<String, Object>();
|
||||
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);
|
||||
if (library == null) {
|
||||
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.WinNT.HANDLE;
|
||||
|
||||
import com.sun.jna.Native;
|
||||
import com.sun.jna.NativeLibrary;
|
||||
import com.sun.jna.Pointer;
|
||||
import com.sun.jna.ptr.PointerByReference;
|
||||
import com.sun.jna.win32.W32APIOptions;
|
||||
|
||||
import dorkbox.util.jna.JnaHelper;
|
||||
|
||||
public
|
||||
class GDI32 {
|
||||
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.Native;
|
||||
import com.sun.jna.NativeLibrary;
|
||||
import com.sun.jna.Pointer;
|
||||
import com.sun.jna.ptr.IntByReference;
|
||||
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.COORD;
|
||||
import dorkbox.util.jna.windows.structs.INPUT_RECORD;
|
||||
@ -33,7 +32,7 @@ import dorkbox.util.jna.windows.structs.SMALL_RECT;
|
||||
public
|
||||
class Kernel32 {
|
||||
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
|
||||
|
@ -15,16 +15,13 @@
|
||||
*/
|
||||
package dorkbox.util.jna.windows;
|
||||
|
||||
import com.sun.jna.Native;
|
||||
import com.sun.jna.NativeLibrary;
|
||||
import com.sun.jna.win32.W32APIOptions;
|
||||
|
||||
import dorkbox.util.jna.JnaHelper;
|
||||
import dorkbox.util.jna.windows.structs.NOTIFYICONDATA;
|
||||
|
||||
public
|
||||
class Shell32 {
|
||||
static {
|
||||
Native.register(NativeLibrary.getInstance("shell32", W32APIOptions.DEFAULT_OPTIONS));
|
||||
JnaHelper.register("shell32", Shell32.class);
|
||||
}
|
||||
|
||||
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 com.sun.jna.Callback;
|
||||
import com.sun.jna.Native;
|
||||
import com.sun.jna.NativeLibrary;
|
||||
import com.sun.jna.Pointer;
|
||||
import com.sun.jna.WString;
|
||||
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;
|
||||
|
||||
/**
|
||||
@ -45,7 +43,7 @@ import dorkbox.util.jna.windows.structs.ICONINFO;
|
||||
public
|
||||
class User32_32 implements User32 {
|
||||
static {
|
||||
Native.register(NativeLibrary.getInstance("user32", W32APIOptions.DEFAULT_OPTIONS));
|
||||
JnaHelper.register("user32", User32_32.class);
|
||||
}
|
||||
|
||||
// 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 com.sun.jna.Callback;
|
||||
import com.sun.jna.Native;
|
||||
import com.sun.jna.NativeLibrary;
|
||||
import com.sun.jna.Pointer;
|
||||
import com.sun.jna.WString;
|
||||
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;
|
||||
|
||||
/**
|
||||
@ -45,7 +43,7 @@ import dorkbox.util.jna.windows.structs.ICONINFO;
|
||||
public
|
||||
class User32_64 implements User32 {
|
||||
static {
|
||||
Native.register(NativeLibrary.getInstance("user32", W32APIOptions.DEFAULT_OPTIONS));
|
||||
JnaHelper.register("user32", User32_64.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user