NOTE: as of JNA 4.0, JNA is now dual-licensed under LGPL and AL 2.0 (see LICENSE).
NOTE: JNI native support is typically incompatible between minor versions, and almost always incompatible between major versions.
- #1217: Add mappings for AIX
Perfstat
library toc.s.j.p.unix.aix
- @dbwiddis. - #1231: The test suite can now be executed on Windows using either ANSI or UNICODE win32 API by passing
-Dw32.ascii=true/false
to ant. Previously, UNICODE was always used. - @T-Svensson - #1237: Experimental: Add artifacts that make jna and jna-platform named modules (provide
module-info.class
). The new artifacts are namedjna-jpms.jar
andjna-platform-jpms.jar
- @matthiasblaesing. - #1242: Add CallWindowProc to User32 - @heldplayer.
- #1239: Improve performance of allocation of
c.s.j.Memory
objects - @joerg1985. - #1246: Improve performance of
c.s.j.Structure#read
andc.s.j.Structure#write
- @joerg1985.
- #1244: Fix building on GCC 10 - @matthiasblaesing.
- #1252: - Fix bindings of
CTL_ENTRY#getRgAttribute
,CTL_INFO#getRgCTLEntry
,CTL_INFO#getRgExtension
,CERT_EXTENSIONS#getRgExtension
,CERT_INFO#getRgExtension
,CRL_INFO#getRgCRLEntry
,CRL_INFO#getRgExtension
,CRL_ENTRY#getRgExtension
. Add bindings forCertEnumCertificatesInStore
,CertEnumCTLsInStore
,CertEnumCRLsInStore
andCryptQueryObject
inc.s.j.p.win32.Crypt32
.
WARNING: The signatures forCTL_INFO#getRgCTLEntry
andCTL_INFO#getRgExtension
were changed - as the original signatures were obviously wrong and read the wrong attributes, it is not considered an API break - @matthiasblaesing.
- #1160: Make FileUtils#moveToTrash a varargs method - @matthiasblaesing.
- #1167: Add
c.s.j.p.win32.Kernel32#GetProcessAffinityMask
- @dbwiddis. - #1168: Add
c.s.j.p.win32.Kernel32#SetProcessAffinityMask
- @dbwiddis. - #1169: Wait for process in getLinuxLdPaths - @rdesgroppes.
- #1178: Add
c.s.j.p.win32.IPHlpAPI#GetTcpStatistics
,c.s.j.p.win32.IPHlpAPI#GetUdpStatistics
,c.s.j.p.win32.IPHlpAPI#GetTcpStatisticsEx
andc.s.j.p.win32.IPHlpAPI#GetUdpStatisticsEx
- @dbwiddis. - #1182: Add
toString
to classes extendingc.s.j.ptr.ByReference
- @dbwiddis. - #1191: Add
c.s.j.p.win32.Advapi32Util#getTokenPrimaryGroup
- @dbwiddis. - #1194: Add
GetConsoleScreenBufferInfo
,ReadConsoleInput
andWriteConsole
with associated structures toc.s.j.p.win32.Wincon
- @rednoah. - #1198: Add
NetSessionEnum
toc.s.j.p.win32.Netapi32
andWTSEnumerateSessions
,WTSQuerySessionInformation
, andWTSFreeMemory
toc.s.j.p.win32.Wtsapi32
- @dbwiddis. - #1200: Add mappings for
libudev
toc.s.j.p.linux.Udev
- @dbwiddis. - #1202: Add mappings supporting shared memory including
c.s.j.p.unix.LibCAPI
typessize_t
andssize_t
,c.s.j.p.linux.LibC
methodsmunmap()
,msync()
, andclose()
,c.s.j.p.unix.LibCUtil
mappingmmap()
andftruncate()
, andc.s.j.p.linux.LibRT
methodsshm_open()
andshm_unlink()
- @dbwiddis. - #1209: Add mappings for
Thread32First
andThread32Next
toc.s.j.p.win32.Kernel32
- @dbwiddis. - #1214: Add mapping for EnumProcesses to
c.s.j.p.win32.Psapi
andc.s.j.p.win32.PsapiUtil
- @T-Svensson.
- #1183:
c.s.j.p.win32.WinDef.CHARByReference#getValue
should only read one byte - @dbwiddis. - #1184:
c.s.j.p.win32.WinDef.ULONGLONG
should always be 8 bytes - @dbwiddis. - #1196:
c.s.j.p.win32.WinNT.LARGE_INTEGER
needs to populate both union fields - @dbwiddis. - #1216: Failure loading frameworks on macOS 11 - @dkocher.
- #1131: Add CoreFoundation, IOKit, and DiskArbitration mappings in
c.s.j.p.mac
. @dbwiddis. - #1143:
c.s.j.p.mac.SystemB
now extendsc.s.j.p.unix.LibCAPI
. @dbwiddis. - #1147: Add additional OSGi headers for the JNA bundle to support 32bit ARM (hardfloat) @mattixtech.
- #1148/#1096: Include Win32 COM utils (
c.s.j.p.win32.com.util
andc.s.j.p.win32.com.annotation
) in OSGI bundle @dbwiddis.
- #1115: Fix signature for
c.s.j.p.win32.Kernel32#CreateRemoteThread
and bindVirtualAllocEx
,VirtualFreeEx
,GetExitCodeThread
inc.s.j.p.win32.Kernel32
- @apangin, @matthiasblaesing. - #1127: Windows needs a wide string in
c.s.j.p.win32.COM.IShellFolder#ParseDisplayName
- @dbwiddis. - #1128: KEY_ALL_ACCESS value is incorrect in
c.s.j.p.win32.WinNT.java
- @trevormaggs. - #1133: Ensure JARs created from the build system don't contain invalid
Info-ZIP Unicode Path
extra info - @matthiasblaesing. - #1134: Read correct member of
WinBase.SYSTEM_INFO.processorArchitecture
union - @dbwiddis. - #1118: Fix passing unions containing integer and floating point members as parameters by value - @matthiasblaesing.
- #1105: Deprecate
c.s.j.p.win32.Advapi32Util.EventLogRecord#getEventId
in favor of#getInstanceId
- @dbwiddis. - #1097: Allow
.ocx
as extension of native libraries on windows - @dmigowski. - #1108: Improve performance of
c.s.j.Structure#newInstance
by iteration available constructors instead of exception handling @bjorndarri.
- #1095 Align behaviour of com.sun.jna.platform.macXAttrUtil#setXattr and #getXAttr with CLI tool - @jrobhoward, @matthiasblaesing.
- #1091: Check target number to be greater than zero, before calling
Structure#toArray
inc.s.j.p.win32.Netapi32Util
- @trevormagg, @matthiasblaesing. - #1103: On big endian architecture IntegerType based values are incorrectly decoded when using direct binding - @matthiasblaesing.
- #1089:
c.s.j.internal.ReflectionUtils
accessesjava.lang.invoke.MethodType
without reflection, causingjava.lang.NoClassDefFoundError
on android API level < 26 - @matthiasblaesing. - #1087: Fix wrong calls to Structure#toArray with zero sized arrays - @matthiasblaesing.
- #1058: Add selectable timeout to stopService() and improve timeout handling - @keithharp.
- #1050: Add
c.s.j.p.win32.VersionHelpers
and supporting functions - @dbwiddis. - #1061: replace toArray(new T[size]) with toArray(new T[0]) for better performance - @hc-codersatlas.
- #1064: Add
c.s.j.p.win32.Kernel32.GetLogicalProcessorInformationEx
function, convenience Util method and supporting structures - @dbwiddis. - #1065: Add
c.s.j.p.win32.PowrProf#CallNTPowerInformation
and supporting structures - @dbwiddis. - #1063: Enhance
c.s.j.p.win32.User32
and associated classes to support keyboard related functionality. - @kevemueller. - #1068:
c.s.j.p.win32.Advapi32Util.getAccountBySid(String systemName, PSID sid)
ignored parameter instead of passing it to the native function - @nirud. - #813: Support for default methods on interfaces (experimental) - @matthiasblaesing.
- #1073: Support COM setters with multiple parameters using
c.s.j.p.win32.COM.util.ProxyObject
- @matthiasblaesing. - #1083: Prevent access to unsupported values in
c.s.j.p.win32.COM.WbemcliUtil#enumerateProperties
and bindc.s.j.p.win32.COM.Wbemcli.IWbemClassObject.GetNames
- @matthiasblaesing.
- #1052, #1053: WinXP compatibility for
c.s.j.p.win32.PdhUtil
- @dbwiddis. - #1055: Include
c.s.j.p.linux
in OSGi bundle. - @dbwiddis. - #1066: On AIX OpenJDK differs from IBM J9 in the mapping of library names. While J9 maps jnidispatch to
libjnidispatch.a
, OpenJDK maps tolibjnidispatch.so
, which causes the native library extractor to fail. AIX is now hard-coded tolibjnidispatch.a
- @matthiasblaesing. - #1079: Fix maximum structure alignment for Android i386 - @BugsBeGone.
- #1038: Improve exception when native library loading fails by preserving the original exceptions and messages - @matthiasblaesing.
- #1039: Remove use of
System.out
andSystem.err
in favor of regular logging - @matthiasblaesing. - #1048: Bind
c.s.j.p.win32.Kernel32#OpenEvent
- @matthiasblaesing.
- #1036:
Advapi32Util.registryValueExists
called on non existing key raises exception instead of returningfalse
- @matthiasblaesing. - #384: Android only supports loading libraries through the JVM
System#loadLibrary
mechanism, defaultingjna.nosys
totrue
disabled that code path - @matthiasblaesing. - #1041: Avoid IllegalArgumentException when reading xattrs with zero length - @jrobhoward.
- #1042:
c.s.j.p.WindowUtils.W32WindowUtils.getProcessFilePath(HWND)
does not close process handle - @matthiasblaesing. - #1044: Fix field order for
c.s.j.p.unix.X11.XResizeRequestEvent
- @matthiasblaesing.
- #1029: Add
statvfs
toc.s.j.platform.linux.LibC
- @dbwiddis. - #1032: Deprecate
c.s.j.platform.win32.COM.util.annotation.ComEventCallback
in favour ofc.s.j.platform.win32.COM.util.annotation.ComMethod
- @matthiasblaesing. - #1021: Added
com.sun.jna.platform.linux.XAttr
andcom.sun.jna.platform.linux.XAttrUtil
JNA wrapper for<sys/xattr.h>
for Linux - @wilx. - #381: Bind
c.s.j.p.win32.Secur32#CompleteAuthToken
- @matthiasblaesing.
- #1025: Restore java 6 compatibility and introduce animal-sniffer to prevent regressions - @matthiasblaesing.
- #1027: Fix Linux LibC.Sysinfo FieldOrder - @dbwiddis.
- #1033: Replace deprecated Class#newInstance calls - @matthiasblaesing.
- #975: Add package versions to OSGi metadata. - @io7m.
- #915: Adding interfaces to call to Cryptui and Crypt32 windows libraries and adding related structures to Wincrypt. - @rosh89.
- #903: Carry
HRESULT
inc.s.j.p.win32.COM.COMException
, introducec.s.j.p.win32.COM.COMInvokeException
as subclass ofCOMException
for exception as the result of aIDispatch#Invoke
. TheEXECPINFO
is unwrapped into fields in theCOMInvokeException
and correctly freed. - @matthiasblaesing. - #822:
Native#loadLibrary
requires that the interface class passed in is an instance of Library. The runtime check can be enhanced by using a constraint generic. This breaks binary compatibility (see notes below) - @d-noll.
In a followup, the originalloadLibrary
methods were deprecated andNative#load
methods were introduced, that hold the new generic definitions. So this change is now binary compatible. - #889: The
Structure#newInstance
receive the target type as a parameter. This adds a limited generic type, so that the return type ist the target type and not a generic structure, removing the necessity to do an explizit cast - @matthiasblaesing. - #913: Add
@ComInterface
annotation tocom.sun.jna.platform.win32.COM.util.IConnectionPoint
to make it possible to retrieve it viaIUnknown#queryInterface
- @matthiasblaesing. - #797: Binding
Advapi32#EnumDependendServices
,Advapi32#EnumServicesStatusEx
andAdvapi32#QueryServiceStatus
.W32Service#stopService
was modified to be more resilent when stopping service - @matthiasblaesing. - Bind
com.sun.jna.platform.win32.Kernel32.ExpandEnvironmentStrings
and add helper method for it asKernel32Util#expandEnvironmentStrings
- @matthiasblaesing. - #935: Add RegConnectRegistry to Advapi32 mappings. - @cxcorp.
- #947: Allow retrieval of
ACEs
fromcom.sun.jna.platform.win32.WinNT.ACL
even if the containedACE
is not currently supported - @jrobhoward. - #954: Add
c.s.j.Structure.FieldOrder
annotation to define the field order of a structures without implementingStructure#getFieldOrder()
- @idosu. - #959: Added
GetProcessTimes
andGetProcessIoCounters
tocom.sun.jna.platform.win32.Kernel32
- @dbwiddis. - #952: Added
CreateMutex
,OpenMutex
andReleaseMutex
tocom.sun.jna.platform.win32.Kernel32
- @matthiasblaesing. - #973: Added
PdhLookupPerfNameByIndex
,PdhLookupPerfIndexByName
, andPdhEnumObjectItems
toc.s.j.platform.win32.Pdh
and ac.s.j.platform.win32.PdhUtil
class to access them - @dbwiddis. - #980: Added
PERF_OBJECT_TYPE
,PERF_COUNTER_BLOCK
, andPERF_COUNTER_DEFINITION
toc.s.j.platform.win32.WinPerf
and addedPointer
constructors to ``PERF_INSTANCE_DEFINITIONand
PERF_DATA_BLOCK` - @dbwiddis. - #981: Added
WTS_PROCESS_INFO_EX
,WTSEnumerateProcessesEx
, andWTSFreeMemoryEx
toc.s.j.platform.win32.Wtsapi32
- @dbwiddis. - #983: Added
GetIfEntry
,GetIfEntry2
, andGetNetworkParams
and supporting structuresMIB_IFROW
,MIB_IF_ROW2
, andFIXED_INFO
toc.s.j.platform.win32.IPHlpAPI.java
- @dbwiddis. - #984: Added
CM_Locate_DevNode
,CM_Get_Parent
,CM_Get_Child
,CM_Get_Sibling
,CM_Get_Device_ID
, andCM_Get_Device_ID_Size
toc.s.j.platform.win32.Cfgmgr32.java
and ac.s.j.platform.win32.Cfgmgr32Util
class forCM_Get_Device_ID
- @dbwiddis. - #988: Added
PdhLookupPerfIndexByEnglishName
toc.s.j.platform.win32.PdhUtil
- @dbwiddis. - #992: Improve stability of windows tests and add appveyor configuration for windows CI builds - @matthiasblaesing.
- #995: Added structures and methods to
c.s.j.platform.mac.SystemB
for Process, Network interface, Swapfile, Time, and Filesystem info - @dbwiddis. - #997: Added
Sysinfo
structure and function toc.s.j.platform.linux.LibC
- @dbwiddis. - #1001: Added overloads to
c.s.j.platform.win32.Advapi32Util
methods which allow the caller to specifysamDesiredExtra
to request additional registry key security and access rights - @camw. - #1007: Added OSGi export of Solaris package - @swimmesberger.
- #1003: Allow
NativeMapped
to be used with enums - @koraktor. - #994: Added
CoInitializeSecurity
andCoSetProxyBlanket
toc.s.j.platform.win32.Ole32
, added newc.s.j.platform.win32.Wbemcli
classes needed to query WMI, and added aWbemcliUtil
class implementing WMI queries. - @dbwiddis. - #1013: Add automatic module name entries to manifest of jna and jna-platform - @matthiasblaesing.
- #985: Improve handling of dynamicaly extracted native library. On Mac OS X systems
~/Library/Application Support/JNA/temp
and on other Unix like systems$XDG_CACHE_DIR/JNA/temp
(Default value is:~/.cache/JNA/temp
) is used - @matthiasblaesing. - Bind
com.sun.jna.platform.win32.Kernel32#ExitProcess
- @Groostav.
- #652: Dead Lock in class initialization - @matthiasblaesing.
- #843: Correctly bind
com.sun.jna.platform.win32.SecBufferDesc
and add convenience binding ascom.sun.jna.platform.win32.SspiUtil.ManagedSecBufferDesc
. Bind SSPI functionsInitializeSecurityContext
,AcceptSecurityContext
,QueryCredentialsAttributes
,QuerySecurityPackageInfo
,EncryptMessage
,DecryptMessage
,MakeSignature
,VerifySignature
incom.sun.jna.platform.win32.Secur32
- @matthiasblaesing. - #863: Fix ARM softfloat/hardfloat detection by modifying armSoftFloat condition in ELFAnalyser. Before this fix a softfloat binary could be misdetected as hardfloat. - @kunkun26.
- #867: Fix memory leak in
COMLateBindingObject#getStringProperty
- @matthiasblaesing. - #871: Fix mapping of libc function
gethostname
,sethostname
,getdomainname
andsetdomainname
and bindcom.sun.jna.platform.win32.Winsock2.gethostname(byte[], int)
- @matthiasblaesing. - #876: Restore java 6 compatibility - @matthiasblaesing.
- #882: Correctly close file in
ELFAnalyser#runDetection
, fix suggested by @Sylvyrfysh in #880 - @matthiasblaesing. - #887: MacFileUtils.moveToTrash() doesn't work in a sandboxed app fix suggested by @sobakasu - @matthiasblaesing.
- #894: NullPointerException can be caused by calling
com.sun.jna.platform.win32.COM.util.ProxyObject#dispose
multiple times - @matthiasblaesing. - #925: Optimize
Structure#validate
and preventArrayIndexOutOfBoundsException
inSAFEARRAY#read
for zero dimensions - @matthiasblaesing. - #340: Guard registry handling against out-of-bounds reads by ensuring all read strings are NULL terminated - @matthiasblaesing.
- #902: Allow building JNA on JDK 10.
javah
was removed from the JDK andjavac
is now used to create the necessary headers. JNA now has JDK 8 as the minimum build version, at runtime Java 6 is the minimum version.
Native code for platforms with a JDK version lower than 8 can still be build by (demonstrated for Solaris x86):- Run `ant -Dbuild.os.name=SunOS -Dbuild.os.arch=x86 native-build-package`
- Transfer the `build/build-package-sunos-x86-5.2.1.zip` file to the target system. The file holds the native sources, the necessary headers and and a shell script for the build.
- Expand the zip on the target system.
- Setup `JAVA_HOME` to point to the JDK sources.
- Change into the expanded directory and run `bash build.sh`.
- The resulting `sunos-x86.jar` is copied back to the original build system to `lib/native/sunos-x86.jar`
- #958: Update for PR 863: Old toolchains produce binaries without hard-/softfloat markers. Rasbian is missing the markers and the oracle JDK is also affected. For hardfloat detection now also the Arm EABI section is also considered - @matthiasblaesing.
- #974: If the callback code failed to attach to the JVM, this lead to a segfault. The success of attaching to the JVM was checked to late and an invalid
JNIEnv
pointer was used to access the JVM - @matthiasblaesing. - #1010: Fix binding of
lpAccessName
parameter ofcom.sun.jna.platform.win32.Mpr#WNetUseConnection
- @matthiasblaesing. - #384: Switch default value for
jna.nosys
totrue
. By default then the embedded native library is used - @matthiasblaesing.
com.sun.jna.Pointer#SIZE
is removed. Its use is replaced bycom.sun.jna.Native#POINTER_SIZE
to prevent a class loading deadlock, when JNA is initialized from multiple threadscom.sun.jna.Pointer#getString(long offset, boolean wide)
is removed. It was replaced bycom.sun.jna.Pointer#getString(long offset)
orcom.sun.jna.Pointer#getWideString(long offset)
com.sun.jna.Pointer#getStringArray(long offset, boolean wide)
is removed. It was replaced bycom.sun.jna.Pointer#getStringArray(long offset)
orcom.sun.jna.Pointer#getWideStringArray(long offset)
com.sun.jna.Pointer#setString(long offset, String value, boolean wide)
is removed. It was replaced bycom.sun.jna.Pointer#setString(long offset, String value)
orcom.sun.jna.Pointer#setWideString(long offset, String value)
com.sun.jna.Structure#setFieldOrder
is removed. It was replaced bycom.sun.jna.Structure#getFieldOrder
and threw anjava.lang.Error
on call.com.sun.jna.Native#parseVersion
was removed without replacementcom.sun.jna.Native#setPreserveLastError
andcom.sun.jna.Native#getPreserveLastError
were removed without replacement. They were turned into NOOPs in the past.com.sun.jna.Native#getDirectByteBuffer
was replaced bycom.sun.jna.Pointer#getByteBuffer
- the parameters of the methods
gethostname
,sethostname
,getdomainname
andsetdomainname
in the interfacecom.sun.jna.platform.unix.LibCAPI
were changed from(char[] name, int len)
to(byte[] name, int len)
com.sun.jna.Platform#isAix
was replaced bycom.sun.jna.Platform#isAIX
com.sun.jna.platform.win32.Sspi.SecBufferDesc
was incompatibly changed to match the correct native semantics. SecBufferDesc describing more than one buffer were broken. For most usecasescom.sun.jna.platform.win32.SspiUtil.ManagedSecBufferDesc
is the best alternative.com.sun.jna.platform.win32.WinBase.FILETIME#toLong()
was replaced bycom.sun.jna.platform.win32.WinBase.FILETIME#toTime()
com.sun.jna.platform.win32.Variant#COM_DAYS_ADJUSTMENT
was removedcom.sun.jna.platform.win32.Variant#MICRO_SECONDS_PER_DAY
was removedcom.sun.jna.platform.win32.Variant.VARIANT#toJavaDate
was removedcom.sun.jna.platform.win32.Variant.VARIANT#fromJavaDate
was removedcom.sun.jna.platform.win32.User32#MonitorFromPoint(Point pt, int dwFlags)
was replaced bycom.sun.jna.platform.win32.User32#MonitorFromPoint(Point.ByValue pt, int dwFlags)
com.sun.jna.platform.win32.OleAuto.LoadTypeLib(WString, PointerByReference)
was replaced bycom.sun.jna.platform.win32.OleAuto.LoadTypeLib(String, PointerByReference)
com.sun.jna.platform.win32.Kernel32Util.formatMessageFromHR(HRESULT)
was replaced bycom.sun.jna.platform.win32.Kernel32Util.formatMessage(HRESULT)
com.sun.jna.platform.win32.COM.COMException
was structurally modified. ThepExcepInfo
andpuArgErr
members were removed andhresult
member was added. The now missing information inCOMException
was moved toCOMInvokeException
.- The third parameter of
com.sun.jna.platform.win32.COM.IShellFolder#GetDisplayNameOf
was changed fromPointerByReference
toSTRRET
and matching this, the first parameter ofcom.sun.jna.platform.win32.Shlwapi.StrRetToStr
was changed identically. ACE_HEADER
replacesACEStructure
as the base class forACEs
.com.sun.jna.platform.win32.WinNT.ACL
was modified to support ACLS, that containACEs
other thanACCESS_ALLOWED_ACE_TYPE
andACCESS_DENIED_ACE_TYPE
by widening the return type ofgetACEStructures
toACE_HEADER[]
and renaming the method togetACEs
. In consequencecom.sun.jna.platform.win32.Advapi32Util#getFileSecurity
was changed similarly. The SID accessorsgetSidString
andgetSID
were moved fromACEStructure
toACCESS_ACEStructure
.com.sun.jna.platform.win32.Ole32#CoCreateGuid(GUID.ByReference pguid)
was replaced bycom.sun.jna.platform.win32.Ole32#CoCreateGuid(GUID pguid)
andcom.sun.jna.platform.win32.Ole32#CLSIDFromString(WString lpsz, CLSID.ByReference pclsid)
was replaced bycom.sun.jna.platform.win32.Ole32#CLSIDFromString(String lpsz, CLSID.ByReference pclsid)
- #774: Addition win32 api : SendMessage, GetActiveWindow, COPYDATASTRUCT and a few constants + a demo application - @cnico.
- #783: Add Ole32 functions:
OleBuildVersion
,OleInitialize
,OleUninitialize
,OleFlushClipboard
,OleRun
, add VARIANT conversion functions to OleAuto, add default locale, LCID and LANG to WinNT - @matthiasblaesing. - #784: Added Solaris Kstat library - @dbwiddis.
- #805: Provide a way to pass JNIEnv pointer to native method and support OPTION_ALLOW_OBJECTs for direct mapping - @ncruces.
- #816: Support
boolean[]
in direct mapping - @ncruces. - #827: Add support for linux-mips64el - @all7.
- #845: Add support for linux-s390x - @matthiasblaesing.
- #771: Rebuild native libraries for linux-x86 and linux-x86-64 with an against an older GLIBC (minimum version of glibc for these architectures is now 2.7) - @matthiasblaesing.
- #821: Move windows service related functions and structures in ntservice sample project to
com.sun.jna.platform.win32.Advapi32
:StartServiceCtrlDispatcher
,RegisterServiceCtrlHandler
,RegisterServiceCtrlHandlerEx
,SetServiceStatus
,CreateService
,DeleteService
andcom.sun.jna.platform.win32.Winsvc
:Handler
,HandlerEx
,SERVICE_MAIN_FUNCTION
,SERVICE_TABLE_ENTRY
,SERVICE_DESCRIPTION
,SERVICE_STATUS_HANDLE
- @matthiasblaesing.
- #776: Do not include ClassPath attribute in MANIFEST.MF of jna-platform. - @matthiasblaesing.
- #785: OaIdlUtil#toPrimitiveArray fails if dimension bounds are not 0-based - @matthiasblaesing.
- #795: com.sun.jna.platform.win32.WinDef.WORDByReference holds a WORD which is defined to 16 bit on windows, so it needs to be accessed as short (getShort()). Fix suggested by - @kdeines.
- #804 Main-Class in jna-platform.jar collides with java 9 module system - @matthiasblaesing.
- #838: Fix binding of
com.sun.jna.platform.win32.User32#MonitorFromPoint
- @matthiasblaesing. - #834: Declare structure members of LPPRINTER_DEFAULTS as public - @matthiasblaesing.
- #757: Build android archive (AAR) - @matthiasblaesing.
- #767: Add Win32 API mapping for Shlwapi PathIsUNC - @ivanwick.
- #753: Support arm hardfloat and softfloat by introducing armel as platform (ARM EABI Little-endian) - @matthiasblaesing.
- #772: Improved speed of GDIUtil.getScreenshot() by ~30% - @sommd.
- #754: Move MSVC build to standard stdbool.h and require Visual C++ 2015 (sizeof(bool) = 1 is now also true on MSVC build) - @matthiasblaesing.
- #399: Check native version before attempting to call into native code - @matthiasblaesing.
- #763: Fix vararg calls without fixed parts - @matthiasblaesing.
- #770: Fix for free data handle in DdemlUtil. - @stolarczykt.
- #526: Added initialization and conversion between Windows SYSTEMTIME and Java Calendar - @lgoldstein.
- #532: Added
com.sun.jna.platform.win32.Mpr
,com.sun.jna.platform.win32.LmShare
, andcom.sun.jna.platform.win32.Winnetwk
- @amarcionek. - #532: Added
ACCESS_*
definitions tocom.sun.jna.platform.win32.LmAccess
- @amarcionek. - #532: Added
NetShareAdd
andNetShareDel
tocom.sun.jna.platform.win32.Netapi32
- @amarcionek. - #535: Added
CreateProcessWithLogonW
tocom.sun.jna.platform.win32.Advapi32
- @mlfreeman2. - #535: Added
CertAddEncodedCertificateToSystemStore
tocom.sun.jna.platform.win32.Crypt32
- @mlfreeman2. - #535: Added
BitBlt
tocom.sun.jna.platform.win32.GDI32
, Addedcom.sun.jna.platform.win32.GDI32Util
and addedgetScreenshot()
to it - @mlfreeman2. - #535: Added
SHEmptyRecycleBin
,ShellExecuteEx
tocom.sun.jna.platform.win32.Shell32
- @mlfreeman2. - #535: Added
GetDesktopWindow
tocom.sun.jna.platform.win32.User32
- @mlfreeman2. - #540: Added Missing Windows kernel32 method: QueryFullProcessImageName - @yossieilaty.
- #543: Added
ProcessIdToSessionId
,LoadLibraryEx
,FreeLibrary
andFind/Load/Lock/SizeofResource
tocom.sun.jna.platform.win32.Kernel32
- @mlfreeman2. - #545: Added
EnumResourceTypes
andEnumResourceNames
tocom.sun.jna.platform.win32.Kernel32
- @mlfreeman2. - #547: Added
GetSystemTimes
tocom.sun.jna.platform.win32.Kernel32
- @dbwiddis. - #548: Return 64-bit unsigned integer from
com.sun.jna.platform.win32.WinBase.FILETIME
- @dbwiddis. - #524: Added IShellFolder interface plus necessary utility functions to Windows platform, and a sample for enumerating objects in My Computer - @lwahonen.
- #471: Determine size of native
bool
- @twall. - #484: Added
XFetchName
toX11
interface - @pinaf. - #554: Initial code for a few Unix 'libc' API(s) @lgoldstein
- #552: Added
Module32FirstW
andModule32NextW
tocom.sun.jna.platform.win32.Kernel32
(and helper tocom.sun.jna.platform.win32.Kernel32Util
) andMODULEENTRY32W
structure tocom.sun.jna.platform.win32.Tlhelp32
- @mlfreeman2. - #564: Use generic definition of Native#loadLibrary @lgoldstein
- #562: Added
com.sun.jna.platform.win32.VersionUtil
withgetFileVersionInfo
utility method to get file major, minor, revision, and build version parts - @mlfreeman2. - #563: Added
com.sun.jna.platform.win32.Wininet
with the following 4 methods:FindFirstUrlCacheEntry
,DeleteUrlCacheEntry
,FindCloseUrlCache
,FindNextUrlCacheEntry
, and theINTERNET_CACHE_ENTRY_INFO
structure, and a helper incom.sun.jna.platform.win32.WininetUtil
for parsing WinInet's cache - @mlfreeman2. - #567: Added
PrintWindow
,IsWindowEnabled
,IsWindow
,FindWindowEx
,GetAncestor
,GetCursorPos
,SetCursorPos
,SetWinEventHook
,UnhookWinEvent
,CopyIcon
, andGetClassLong
tocom.sun.jna.platform.win32.User32
and supporting constants tocom.sun.jna.platform.win32.WinUser
- @mlfreeman2. - #573: Added
EnumProcessModules
,GetModuleInformation
, andGetProcessImageFileName
tocom.sun.jna.platform.win32.Psapi
and addedExtractIconEx
tocom.sun.jna.platform.win32.Shell32
- @mlfreeman2. - #574: Using static final un-modifiable List of field names for structure(s) - @lgoldstein.
- #577: Apply generic definitions wherever applicable - @lgoldstein.
- #569: Added
com.sun.jna.platform.win32.Winspool.PRINTER_INFO_2
support. Added GetPrinter and ClosePrinter functions incom.sun.jna.platform.win32.Winspool
- @IvanRF. - #583: Added printer attributes and status - @IvanRF.
- #589: Use
com.sun.jna.MethodResultContext
in direct mapping (as done in interface mapping) - @marco2357. - #595: Allow calling COM methods/getters requiring hybrid calling (METHOD+PROPERTYGET) - @matthiasblaesing.
- #582: Mavenize the build process - Phase 1: building the native code via Maven - @lgoldstein.
- #606: Added Kernel32Util method to facilitate checking that calls to LocalFree/GlobalFree are successful - @lgoldstein.
- #612:
Kernel32Util.freeLocalMemory()
/Kernel32Util.freeGlobalMemory()
always throwcom.sun.jna.platform.win32.Win32Exception
if failed - @lgoldstein. - #608: Mavenize the build process - change parent and native pom artifactId/name to differentiate in IDE and build tools. - @bhamail
- #613: Make
com.sun.jna.platform.win32.Win32Exception
extendcom.sun.jna.LastErrorException
- @lgoldstein. - #614: Added standard
com.sun.jna.platform.win32.Kernel32Util.closeHandle()
method that throws acom.sun.jna.platform.win32.Win32Exception
if failed to close the handle - @lgoldstein. - #618: Implement SAFEARRAY access and bugfix VARIANT - @matthiasblaesing.
- #616: Allow access to base interfaces (most important IDispatch) via ProxyObject and improve binding by allowing to use dispId for the call - @matthiasblaesing.
- #621: Added TYPEFLAGS-constants for
wTypeFlags
incom.sun.jna.platform.win32.OaIdl.TYPEATTR
- @SevenOf9Sleeper. - #625: Make conversion to/from java to/from VARIANT in
com.sun.jna.platform.win32.COM.util.Convert
more flexible and dependable - @matthiasblaesing. - #639: Add getloadavg() to OS X and Unix - @dbwiddis.
- #640: Add
com.sun.jna.platform.win32.Psapi.GetPerformanceInfo()
,com.sun.jna.platform.win32.Kernel32.GetTickCount64()
, andcom.sun.jna.platform.win32.Kernel32.SetErrorMode()
- @dbwiddis. - #642: COM calls with variable number of arguments (varargs) are now supported - @SevenOf9Sleeper.
- #644: New ant target 'install' for installing JNA artifacts in local m2-repository - @SevenOf9Sleeper.
- #649: Bugfix msoffice sample and add two samples taken from MSDN and translated from VisualBasic to Java - @matthiasblaesing.
- #654: Support named arguments for
com.sun.jna.platform.win32.COM.util.CallbackProxy
based callbacks - @matthiasblaesing. - #659: Enable LCID (locale) override for
com.sun.jna.platform.win32.COM.util.ProxyObject
-based COM calls - @matthiasblaesing. - #665: Added
XSetWMProtocols
andXGetWMProtocols
tocom.sun.jna.platform.unix.X11
- @zainab-ali. - #667: Added SetFileSecurity, GetSecurityInfo and SetSecurityInfo to
com.sun.jna.platform.win32.Advapi32
- @amarcionek. - #667: Added NtSetSecurityObject and NtQuerySecurityObject to
com.sun.jna.platform.win32.NtDll
- @amarcionek. - #680: Added
SetCurrentProcessExplicitAppUserModelID
andGetCurrentProcessExplicitAppUserModelID
tocom.sun.jna.platform.win32.Shell32
for setting the System.AppUserModel.ID of the host process - @rednoah. - #693: Bind DDEML (Dynamic Data Exchange Management Library), add a thread implementation that runs a windows message loop - @matthiasblaesing.
- #702: Added
GetClientRect
tocom/sun/jna/platform/win32/User32
- @Jonatino. - #689: Add
GetProcAddress(HMODULE, int)
tocom.sun.jna.platform.win32.Kernel32
- @matthiasblaesing. - #723: Added
com.sun.jna.platform.win32.Wevtapi
andcom.sun.jna.platform.win32.Winevt
- @sakamotodesu. - #720: Added
SetThreadExecutionState
tocom.sun.jna.platform.win32.Kernel32
- @matthiasblaesing. - #738: Added
GetSecurityDescriptorOwner
,SetSecurityDescriptorOwner
,GetSecurityDescriptorGroup
,SetSecurityDescriptorGroup
,GetSecurityDescriptorControl
,SetSecurityDescriptorControl
,GetSecurityDescriptorDacl
,SetSecurityDescriptorDacl
,MakeSelfRelativeSD
,MakeAbsoluteSD
,EqualSid
,InitializeSecurityDescriptor
,InitializeAcl
,AddAce
,AddAccessAllowedAce
,AddAccessAllowedAceEx
, andGetAce
to `com.sun.jna.platform.win32.Advapi32 - @amarcionek. - #738: Added
RtlNtStatusToDosError
to `com.sun.jna.platform.win32.NtDll - @amarcionek. - #732: Added
com.sun.jna.platform.win32.WinioctlUtil
for help in determining FSCTL_* codes - @amarcionek. - #732: Added
com.sun.jna.platform.win32.Ntifs
with Reparse Point structures and defines - @amarcionek. - #732: Added initialization of FILETIME from LARGE_INTEGER - @amarcionek.
- #732: Added
GetFileInformationByHandleEx
andSetFileInformationByHandle
tocom.sun.jna.platform.win32.Kernel32
- @amarcionek. - #740: Modified
com.sun.jna.platform.win32.WinioctlUtil
for simplicity dealing with FSCTL_* codes - @amarcionek. - #745: Added Secur32#QueryContextAttributes - @barney2k7.
- #549: Fixed bug in types derived from XID - @twall.
- #536: Fixed bug in determining the Library and options associated with types defined outside of a Library - @twall.
- #531: Ensure direct-mapped callbacks use the right calling convention - @twall.
- #566: Fix return type of Native#loadLibrary to match unconstrained generic @lgoldstein.
- #584: Promote float varargs to double - @marco2357.
- #588: Fix varargs calls on arm - @twall.
- #593: Improve binding of TypeLib bindings - @matthiasblaesing.
- #578: Fix COM CallbackHandlers, allow usage of VARIANTs directly in c.s.j.p.w.COM.util.ProxyObject and fix native memory leak in c.s.j.p.w.COM.util.ProxyObject - @matthiasblaesing
- #601: Remove COMThread and COM initialization from objects and require callers to initialize COM themselves. Asserts are added to guard correct usage. - @matthiasblaesing.
- #602: Make sure SID related memory is properly released once no longer required @lgoldstein.
- #610: Fixed issue #604: Kernel32#GetLastError() always returns ERROR_SUCCESS @lgoldstein.
- #633: Restore default usage of platform native encoding for Java strings passed to native functions (was hard-coded to UTF-8 in 4.0 and later) @amake
- #634: Improve BSTR handling and add
SysStringByteLen
andSysStringLen
tocom.sun.jna.platform.win32.OleAuto
- @matthiasblaesing. - #646:
platform.win32.COM.COMBindingBaseObject
swallows reason if instantiation fails - @matthiasblaesing. - #674: Update references to Apache License as requested by issue #673 @bhamail
- #636: Staticly link visual c++ runtime when building with MSVC - @matthiasblaesing.
- #624: WinDef.DWORD getLow() & getHigh() using incorrect bit mask - @matthiasblaesing.
- #668: Correct typemapper used for structures defined in
com.sun.jna.platform.win32.DsGetDC
,com.sun.jna.platform.win32.LMAccess
,com.sun.jna.platform.win32.LMShare
,com.sun.jna.platform.win32.Sspi
,com.sun.jna.platform.win32.WinBase
,com.sun.jna.platform.win32.WinCrypt
,com.sun.jna.platform.win32.WinUser
andcom.sun.jna.platform.win32.Winnetwk
- @matthiasblaesing. - #696: COMLateBindingObject.getAutomationProperty method that takes iDispatch parameter doesn't use it - @matthiasblaesing.
- #664: Prevent premature GC of Pointer and Function objects by passing whole object into JNI call in addition to the raw pointer value - @matthiasblaesing.
- #669: Ensure XSI-compliant strerror_r is used, to prevent corrupted error messages on linux - @DavidKeller.
- #697: Ensure disposed memory is removed from Memory#allocatedMemory map - @matthiasblaesing.
- #731: Require mingw-w64 instead of mingw as the alternative to the MSVC build - @matthiasblaesing.
- #747: - Call
Native.toString()
in#getFileName()
and#getAlternateFileName()
inc.s.j.p.win32.WinBase
instead of custom NUL terminator logic - @jhult.
- #504: Add support for linux-sparcv9 - @alexvsimon.
- #510: Added
GetCommState
,GetCommTimeouts
SetCommState
andSetCommTimeouts
tocom.sun.jna.platform.win32.Kernel32
. AddedDCB
structure tocom.sun.jna.platform.win32.WinBase
- @MBollig. - #512: Make loading debug flags mutable @lwahonen.
- #514: Added
host_processor_info
tocom.sun.jna.platform.mac.SystemB
- @dbwiddis. - #519: Added JNA functional overview - @twall.
- #528: Added idea-jar ant task that creates a convenience jar that contains all native dispatch libraries - @lwahonen.
- #452: Added Mac OS X System.B library at
com.sun.jna.platform.mac.SystemB
including support forsysctl
,sysctlbyname
,sysctlnametomib
,mach_host_self
,host_page_size
,host_statistics
andhost_statistics64
- @dbwiddis. - #446: Added
com.sun.jna.platform.win32.Advapi32.GetNamedSecurityInfo
,SetNamedSecurityInfo
,GetSecurityDescriptorLength
,IsValidSecurityDescriptor
,IsValidAcl
- @amarcionek. - #387: Use of interfaces and annotations to provide easier implementation of COM interfaces (with
InvocationHandler
) - @dhakehurst. - #387: Support for COM event callbacks - @dhakehurst.
- #387: Support for COM interface discovery by iteration over
RunningObjectTable
- @dhakehurst. - Updated AIX natives and build - @twall.
- #290: Improved the stacktrace for the exceptions thrown by
com.sun.jna.Structure
- @ebourg. - #332: Added Win32 Monitor Configuration API in
com.sun.jna.platform.win32.Dxva2
- @msteiger. - Added Winspool monitor sample and updated Kernel32, WinBase, Winspool - @wolftobias.
- #333: Added
CoTaskMemAlloc
,CoTaskMemRealloc
andCoTaskMemFree
tocom.sun.jna.platform.win32.Ole32
- @msteiger. - #334: Added
com.sun.jna.platform.win32.Shell32.SHGetKnownFolderPath
andKnownFolders
GUID constants - @msteiger. - #338: Added
com.sun.jna.platform.mac.XAttr
andcom.sun.jna.platform.mac.XAttrUtil
JNA wrapper for<sys/xattr.h>
for Mac OS X - @rednoah. - #339: Added
GetWindowPlacement
,SetWindowPlacement
,AdjustWindowRect
,AdjustWindowRectEx
,ExitWindowsEx
, andLockWorkstation
tocom.sun.jna.platform.win32.User32
- @Timeroot. - #286: Added
CreateRemoteThread
,WritePocessMemory
andReadProcessMemory
tocom.sun.jna.platform.win32.Kernel32
- @sstokic-tgm. - #350: Added
jnacontrib.x11.api.X.Window.getSubwindows
- @rm5248. - Improved
contrib/msoffice
sample - @wolftobias. - #352: Performance improvements due to reduced locking in
com.sun.jna.Library$Handler
and fewer vararg checks incom.sun.jna.Function
- @Boereck. - #353: Performance improvements by improved collaboration between
com.sun.jna.Library$Handler
andcom.sun.jna.Function
- @Boereck. - #357: Added
com.sun.jna.platform.win32.Kernel32.SetSystemTime
- @lgoldstein, @thomasjoulin. - #365: Added
com.sun.jna.platform.win32.Kernel32.GetComputerNameEx
support - @lgoldstein. - #368: Added
com.sun.jna.platform.win32.Kernel32.VirtualQueryEx
,com.sun.jna.platform.win32.WinNT.MEMORY_BASIC_INFORMATION
andMEM_COMMIT
,MEM_FREE
,MEM_RESERVE
,MEM_IMAGE
,MEM_MAPPED
,MEM_PRIVATE
constants - @apsk. - Allow interoperation with JNI revision changes - @twall.
- #376: Added
com.sun.jna.VarArgsChecker
for faster vararg checks. Used incom.sun.jna.Function
- @Boereck. - #391: Added
com.sun.jna.platform.win32.Advapi3.EncryptFile
,DecryptFile
,FileEncryptionStatus
,EncryptionDisable
,OpenEncryptedFileRaw
,ReadEncryptedFileRaw
,WriteEncryptedFileRaw
, andCloseEncryptedFileRaw
with relatedAdvapi32Util
helpers - @khalidq. - #400: Added
com.sun.jna.platform.WindowUtils.getAllWindows
,getWindowIcon
,getIconSize
,getWindowTitle
,getPRocessFilePath
andgetWindowLocationAndSize
- @PAX523. - #400: Added
com.sun.jna.platform.win32.Kernel32Util.getLastErrorMessage
- @PAX523. - #400: Added
com.sun.jna.platform.win32.GDI32.GetObject
- @PAX523. - #400: Added
com.sun.jna.platform.win32.Psapi.GetModuleFileNameEx
- @PAX523. - #400: Added
com.sun.jna.platform.win32.User32.GetIconInfo
,SendMessageTimeout
andGetClassLongPtr
- @PAX523. - #400: Added
com.sun.jna.platform.win32.WinGDI.ICONINFO
andBITMAP
- @PAX523. - #400: Added process-specific access rights constants in
com.sun.jna.platform.win32.WinNT
- @PAX523. - #400: Added specific constants for request of icon settings in
com.sun.jna.platform.win32.WinUser
- @PAX523. - #400: Added constants for
GetClassLong
,SendMessageTimeout
andGetIconInfo
incom.sun.jna.platform.win32.WinUser
- @PAX523. - #419: Added
SetupDiOpenDevRegKey
,SetupDiEnumDeviceInfo
and related constants tocom.sun.jna.platform.win32.SetupApi
- @ChristianSchwarz. - #421: Added
XGrabKeyboard
andXUngrabKeyboard
toX11
interface - @pinaf. - #422: Update libffi to v3.2.1 - @tdaitx.
- #425: Add support for PPCLE - @tdaitx.
- #428: Added Wincon.h related functions and definitions to
com.sun.jna.platform.win32.Kernel32
- @lgoldstein. - #430: Add android
aarch64
,x86-64
,mips
, andmips64
targets - @twall. - #431: Added named pipe API support to
com.sun.jna.platform.win32.Kernel32
- @lgoldstein. - #432: Added
com.sun.jna.platform.win32.Kernel32.SetLocalTime
- @lgoldstein. - #434: Added
com.sun.jna.platform.win32.Kernel32.GetEnvironmentStrings
- @lgoldstein. - Loosen OSGI OS name matching to accommodate Windows 8 family - Niels Bertram.
- #436: Added basic Pdh API implementation to 'com.sun.jna.platform.win32' - @lgoldstein.
- #451: Add VARIANT support for CHAR and BYTE - @mitkola.
- #478: Ask ldconfig for more places to search for libraries - @gohal.
- #481: Added volume management functions to
com.sun.jna.platform.win32
- @lgoldstein. - #483: Found and fixed duplicate method definitions for the same API in
com.sun.jna.platform.win32
- @lgoldstein. - #485: Implemented
Comparable
interface for many of the base types incom.sun.jna.platform.win32.WinDef
- @lgoldstein. - #488: Added
GetRawInputDeviceList
tocom.sun.jna.platform.win32.User32
andUser32Util
- @lgoldstein. - #490: Allow arbitrary calling convention specification, including FFI_MS_CDECL which alters handling of struct return values, and multiple Linux/PowerPC conventions - @twall.
- #450: Libraries extracted to temp directory are now cleaned up in case of library loading errors, as well - @aschnab.
- #319: Fix direct-mapping type-mapped pointer result types - @marco2357.
- #350: Fix
jnacontrib.x11.api.X.Window.getXXXProperty
, returnsnull
if the window property is not found - @rm5248. - Fixed
com.sun.jna.platform.win32.Variant
andTlbImp
- @wolftobias. - Fixed
com.sun.jna.Pointer.getWideStringArray
not respecting the length parameter - @csoren. - Fix missing code in X11 demos - @twall.
- Fix compiler warnings OSX - @twall.
- Remove unsupported JAWT from OSX build - @twall.
- Disable WebStart tests - @twall.
- Dispose all native resources when JNA's native library is unloaded - Paul Grütter, @twall.
- Weakly hold registered direct-mapped classes - @twall.
- #382: Fixed memory allocation in
com.sun.jna.platform.win32.WTypes.LPWSTR
andLPSTR
constructors - @junak-michal. - Fix publish doc links - @bhamail.
- #388: Ensure native library always opened with provided flags - @zolyfarkas.
- #403: Fix
com.sun.jna.platform.win32.COM.COMUtils.SUCCEEDED
andFAILED
- @lwahonen. - #404: Fix
VARIANT
constructors forint
,short
, andlong
- @lwahonen. - #420: Fix structure leaving always one element in ThreadLocal set - @sjappig.
- #467: Fix TypeMapper usage with direct-mapped libraries converting primitives to Java objects (specifically enums) - @twall.
- #475: Avoid modifying native memory in
Structure.equals()/hashCode()
- @twall. - #496: Properly handle direct mapping with type mappers which return String/WString - @twall.
- Added
com.sun.jna.platform.win32.Advapi32Util.registryCloseKey
- @falldog. - Enabled platform tests to be run w/o building native bits - @twall.
- Added COM/Typelib java code generator
com.sun.jna.platform.win32.COM.tlb.TlbImp
- @wolftobias. - #226: Added OSGI information to jna-platform.jar - @brettwooldridge.
- #267: Added support for Windows RAS32 API,
com.sun.jna.platform.win32.Rasapi32
andRasapi32Util
- @kc7bfi. - #101: Modify
com.sun.jna.platform.win32.Advapi32Util.registryGet*
API to supportKEY_WOW64
option - @falldog. - #271: Added
com.sun.jna.platform.win32.Gdi32.ChoosePixelFormat
andSetPixelFormat
- @kc7bfi. - #271: Added
com.sun.jna.platform.win32.OpenGL32
,OpenGL32Util
andWinOpenGL
- @kc7bfi. - #250: Added
com.sun.jna.platform.win32.Kernel32.GetPrivateProfileSection
,GetPrivateProfileSectionNames
andWritePrivateProfileSection
and correspondingKernel32Util
helpers - @quipsy-karg. - #287: Added
DBTF_MEDIA
andDBTF_NET
tocom.sun.jna.platform.win32.DBT
- @daifei4321. - #295: Added
com.sun.jna.platform.win32.Kernel32.ResetEvent
- @manithree. - #301: Added
accessCheck
tocom.sun.jna.platform.win32.Advapi32Util
,MapGenericMask
andAccessCheck
tocom.sun.jna.platform.win32.Advapi32
,PRIVILEGE_SET
andGENERIC_MAPPING
tocom.sun.jna.platform.win32.WinNT
- @BusyByte.
- Fixed inconsistent behavior on
Structure.ByValue
fields within aStructure
- @twall. - #279: Accommodate FreeBSD libc loading - @sevan.
- #287: Fixed contrib
win32.Win32WindowDemo
, now showing the added/removed drive letter, and whether the event is about media in drive or physical drive - @daifei4321. - #300: Fix stdcall argument alignment - @twall.
- Added ASL licensing to facilitate distribution - @twall.
- #109: Set default Java compatibility level to 1.6 - @twall.
- #209: Improved default performance saving last error results - @twall.
- Use predictable names for CPU architecture prefix (namely x86, x86-64); names correspond to OSGI processor values - @twall.
- Avoid superfluous Structure memory allocation from native - @twall.
- Added
Library.OPTION_CLASSLOADER
, which enables loading native libraries from any class loader (including JNA's native library). This enables parallel dependencies on JNA (e.g. within a tomcat deployment without having to include JNA in the app server environment) - @twall. - Use per-library String encoding settings (see
Native.getDefaultStringEncoding()
andStructure.getStringEncoding()
) - @twall. - Added memory dump for debugging (see
com.sun.jna.Memory
) - @twall. - Improved caching of Structure alignment, type mapping, and encoding information - @twall.
-
#225: Added
platform.win32.Kernel32.GetLogicalProcessorInformation
andplatform.win32.Kernel32Util.getLogicalProcessorInformation
- @trejkaz. -
#236: Auto-strip profiler native method prefix specified by
jna.profiler.prefix
, which defaults to$$YJP$$ - @twall. - Added
jna.debug_load
property to diagnose library loading issues - @twall. - Throw explicit
IllegalArgumentException
whenStructure.ByReference
is used where it shouldn't be (can result in multiply freed memory or other unexpected behavior) - @twall. - #243: Automatically accommodate long library paths on Windows which would otherwise fail - @twall.
-
#241 - Added
com.sun.jna.platform.win32.Shell32.SHAppBarMessage
- @bsorrentino. - Make
Structure.read/writeField()
protected to facilitate per-field overrides - @twall. - Speed up callback lookup where large numbers of native function pointers are in use - @twall.
- #213: Fixed
Structure.toString()
not to dump memory whenjna.dump_memory
is false - @tomohiron. - Use dedicated TLS to indicate callback detach state, to avoid any potential conflicts with last error storage - @twall.
- #173: Fixed OSX 10.8/Xcode 4+ builds, web start path with Oracle 1.7 JDK - @mkjellman.
- #215: Forced use of XSI
strerror_r
on linux - LionelCons. - #214: Don't map library names when an absolute path is provided - @twall.
- #218: Explicitly handled broken Android
SecurityManager
implementation - @twall. - #223: Fixed layout/size derivation for unions - @twall.
- #229: Added
CreateProcessW
(Unicode version) - @twall. - Avoid solaris/x86 JVM bug w/library open flags - @twall.
- Fixed NPE returning wide string from a direct-mapped function - @twall.
- #237: Fix LastErrorException/getLastError on AIX - @skissane.
- #228: Fix win32/win64 crashes due to LastErrorException buffer overruns (
snprintf
on windows is broken) - @davidhoyt.
- Basic COM support for w32 - @wolftobias.
- Avoid superfluous Structure memory allocation by using Structure(Pointer) ctors if available - @twall.
- PR#120: Provide methods for extracting native libraries from the class path for use by JNA - @Zlika.
- PR#163: The Java
GUID
structure can be used directly as alternative toOle32Util.getGUIDFromString()
- @wolftobias. - PR#163: Ported Win32
dbt.h
- @wolftobias. - PR#163: Added Win32
WTSRegisterSessionNotification()
andWTSUnRegisterSessionNotification()
fromWtsapi32.dll
- @wolftobias. - PR#163: Added Win32
native_window_msg
that creates windows, registers for USB device and logon/logoff notifications - @wolftobias. - PR#178: Added Win32
USER_INFO_10
structure fromLMAccess.h
- @davidmc24. - PR#192: Added Win32
SHGetSpecialFolderPath()
and initialization file (.ini) API functions fromkernel32.dll
- @headcrashing. - PR#194: Added Unit Test for
CLSIDFromProgID()
- @headcrashing. - PR#196: Added Win32
RegisterWindowMessage()
and new wrapperUser32Util
for convenient use ofRegisterWindowMessage
,CreateWindow
andCreateWindowEx
- @headcrashing. - PR#187: Allow
StructureFieldOrderTest
unit test in platform project to run on Linux. - @bhamail.
- PR#180: Fix: added missing fields in
XEvents.getFieldOrder()
- @xwizard. - PR#183: Fix
LMAccess.GROUP_INFO_3.getFieldOrder()
to return correct fields names - @bhamail. - PR#187: Fix
getFieldOrder()
to return correct field names for some X11 structures - @bhamail. - Remove deprecated methods on Memory (getSize,isValid) and Structure (getSize) - @twall.
- Remove problematic AWT check via
Class.forName("java.awt.Component")
(see here) - @twall. - PR#210 Add OSGI processor specs for Mac OS X - @bertfrees.
- PR#174: Recompile linux-amd64 natives to remove glibc-2.11 dependencies, now requires only 2.2.5 or better - @twall.
- PR#183: Added
StructureFieldOrderInspector
unit test utility to scan forStructure
field issues; see:com.sun.jna.platform.StructureFieldOrderTest.testMethodGetFieldOrder
- @bhamail. - PR#187: Allow
StructureFieldOrderTest
unit test in platform project to run on Linux - @bhamail. - #206: Fix
moveToTrash()
on OSX to work with symlinks - @twall. - Fix NPE if
Thread.getContextClassLoader()
returnsnull
- @twall.
- Fix bug where string fields sometimes failed to be writtern - @twall (roman kisluhin).
- PR#145: Fix
Netapi32Util.getDomainTrusts()
returns "empty" domain object - @aikidojohn. - PR#145: Fix
Netapi32.getDC()
- added missing fields inDOMAIN_CONTROLLER_INFO
- @aikidojohn. - PR#151: 'platform.jar' in the dist directory was not updated for release 3.5.0. (The 'platform.jar' published to maven central was correct.)
- #62 If a callback is required to reside in a DLL, use
DLLCallback
to tag your Callback object - @twall. Structure.getFieldOrder()
supersedesStructure.setFieldOrder()
and is now required - @twall.- Search
~/Library/Frameworks
and/Library/Frameworks
on OSX - @shaneholloway. - Automatic cleanup of native threads (based on suggestions from neil smith) - @twall.
- Add
android-arm
target - @ochafik, @twall. - Add
jna.tmpdir
to override temporary JNA storage location - @twall. - Add
EXTRA_MAKE_OPTS
ant property to override make variables - @twall. - Add
Library.OPTION_OPEN_FLAGS
to customize dlopen behavior - @twall. - #113, #114: Add support for GNU/kFreeBSD and debian multi-arch distros - @twall.
- Fix
Advapi32Util.registryGetValues()
tried to allocate memory for a zero-lengthREG_BINARY
value - @phailwhale22. - Fix crash in direct mode callbacks with certain type conversions - @twall.
- More thoroughly propagate unexpected exceptions generated in jnidispatch - @twall.
- Cleanup maven poms and publishing to central repo - @bhamail.
- #129: Allow
Memory
field in structure - @twall. - Preserve
PointerType
fields onStructure.read()
if unchanged - @twall. - #128: Fix masking extracting DWORD upper and lower WORD values - @twall.
- #135: Fix for
Advapi32Util.registryGetValues()
when reading zero length values - @danwi.
- Add
platform.win32.Kernel32.GetEnvironmentVariable
andplatform.win32.Kernel32Util.getEnvironmentVariable
- @dblock. - Moved
Kernel32.dll
function definitions fromWinNT.java
intoKernel32.java
- @dblock. - Provide
toPointer()
methods on all_PTR
types (platform win32) - @twall. - Provide
ant -Dskip-native
to skip platform native build - @twall. - Provide
ant -Dheadless=true
to run unit tests headless - @twall. - Added Windows dev environment instructions - @twall.
- Ensure platform win32 classes use unsigned where appropriate (
ULONG_PTR
,UINT_PTR
,ULONGLONG
,WORD
,DWORDLONG
) - @twall. - #71, #73: Fix OSGI entries in manifest - @twall.
- #78: Fix NPE in
platform.win32.Netapi32Util.getDomainTrusts
- @dblock. - Fix: auto-sync memory for
struct**
arguments (array of struct pointers) - @twall. - Fix:
platform.win32.Secur32.AcquireCredentialsHandle
,InitializeSecurityContext
andAcceptSecurityContext
on Win32 64-bit - @dblock. - Fix: avoid overwriting native
char *
orwchar_t *
fields within structures when unmodified (similar to current operation with pointers) - @twall. - Fix:
platform.win32.DsGetDC.DS_DOMAIN_TRUSTS
andDsEnumerateDomainTrusts
on Win32 64-bit - @trejkaz. - Fix: Crash freeing the wrong pointer in
Netapi32Util.getDomainTrusts
- @trejkaz. - #100: Fix
platform.win32.W32FileMonitor
- @dblock. - Return INT_PTR from
platform.win32.Shell32.ShellExecute
, since returningHINSTANCE
is useless. - Fix runtime error in some instances where Structure.setFieldOrder is used (never return self when sharing AutoAllocated memory).
- #107:
Structure.clear()
always callsensureAllocated()
to avoid NPE. - Ensure internal memory pointer is always allocated when calling
Structure.useMemory()
, even if layout is not yet determined.
- Add 'unsigned' modifier to IntegerType.
- Add to
platform.win32.User32
:GetLastInputInfo
. - Add
platform.win32.WinNT.GetFileType
andplatform.win32.Kernel32Util.getFileType
. - Add to
platform.win32.Kernel32Util
:getFileType
.
- Re-build linux-amd and linux-i386 against older versions of glibc (2.2.5 and 2.1.3 respectively).
- Properly initialize first printer info struct in winspool library.
- Properly support getting and setting zero-array-length
REG_MULTI_SZ
values on Win32. - Fixed SID in Win32
USER_INFO_23
andGROUP_INFO_3
. - Fixed passing domain name into Win32
Netapi32Util.getUserInfo
.
- Provide
jna.nosys=true
to avoid loading any system-provided JNA (useful for local build/development). - Allow override of default jnidispatch library name with
jna.boot.library.name
system property. - Throw an Error if a system install of JNA is incompatible or if JNA's JNI library does not match.
- Disable automatic jnidispatch unpacking with
jna.nounpack=true
. - Automatically look up system error messages for LastErrorException.
- Improved callback thread-mapping support; re-use, rename, and group callback threads.
- Cache structure layout results, improving performance of structure creation.
- linux/arm 32-bit support (hardware provided by Alex Lam).
- linux/ppc 32-bit support (hardware provided by Fritiof Hedman).
- Preliminary linux/ia64, linux/ppc64 support (thanks to Laurent Guerby and the GCC compile farm).
- Windows CE/Mobile support (w32ce-arm) (resources provided by andrea antonello and Hydrologis SRL).
- linux multi-arch support (kohsuke).
- Added REG_QWORD registry type support
- Add to
platform.unix.x11
:XGrabKey
,XUngrabKey
,XSetErrorHandler
. - Add to
platform.mac.Carbon
:GetEventDispatcherTarget
,InstallEventHandler
,RegisterEventHotKey
,GetEventParameter
,RemoveEventHandler
,UnregisterEventHotKey
. - Add to
platform.win32.Kernel32
:CopyFile
,MoveFile
,MoveFileEx
,CreateProcess
,SetEnvironmentVariables
,GetFileTime
,SetFileTime
,SetFileAttributes
,DeviceIoControl
,GetDiskFreeSpaceEx
,CreateToolhelp32Snapshot
,Process32First
,Process32Next
. - Add to
platform.win32.Msi
:MsiGetComponentPath
,MsiLocateComponent
,MsiGetProductCode
,MsiEnumComponents
. - Add to
platform.win32.User32
:RegisterHotKey
,UnregisterHotKey
- Add to
platform.win32.SetupApi
:SetupDiGetClassDevs
,SetupDiDestroyDeviceInfoList
,SetupDiEnumDeviceInterfaces
,SetupDiGetDeviceInterfaceDetail
,SetupDiGetDeviceRegistryProperty
. - Add
platform.win32.Shell32.ShellExecute
. - Add to
platform.win32.User32
:SetParent
,IsWindowVisible
,MoveWindow
,SetWindowPos
,AttachInputThread
,SetForegroundWindow
,GetForegroundWindow
,SetFocus
,SendInput
,WaitForInputIdle
,InvalidateRect
,RedrawWindow
,GetWindow
,UpdateWindow
,ShowWindow
,CloseWindow
. - Add to
platform.win32.Version
:GetFileVersionInfoSize
,GetFileVersionInfo
,VerQueryValue
. - Add to
platform.win32.Advapi32
:GetFileSecurity
,RegQueryValueEx(...Long...)
. - Add to
platform.win32.Netapi32
:NetUserGetInfo
.
- Revise cleanup of in-use temporary files on win32 (issue 6).
- Fix structure alignment issues on linux/ppc.
- Fix structure alignment issues on linux/arm.
- Account for NIO Buffer position (JIRA issue 185).
- Avoid crash with very long Strings (> 150k in length).
- Fix bug tracking Memory with an associated direct ByteBuffer.
- Fix bug handling structs by value when type mappers are in effect (JIRA issue 188).
- Facilitate
Memory
subclasses (jbellis). - Allow multiple fields of the same type in Unions (Francis Barber).
- Add
platform.win32.Advapi32.AdjustTokenPrivileges
,platform.win32.Advapi32.LookupPrivilegeName
,platform.win32.Advapi32.LookupPrivilegeValue
,platform.win32.Advapi32.ImpersonateSelf
. - Add
platform.win32.Advapi32.DuplicateTokenEx
,platform.win32.Advapi32.CreateProcessAsUser
,platform.win32.Kernel32.GetExitCodeProcess
,platform.win32.Kernel32.TerminateProcess
,platform.win32.Kernel32.ReadFile
,platform.win32.Kernel32.CreatePipe
,platform.win32.Kernel32.SetHandleInformation
and related constants / structures inplatform.win32.WinBase
andplatform.win32.WinNT
. Please note that theSECURITY_ATTRIBUTES
structure has been moved fromplatform.win32.WinNT
toplatform.win32.WinBase
. - Add
platform.win32.Kernel32.DeleteFile
andplatform.win32.Kernel32Util.deleteFile
. - Add
platform.win32.Kernel32.GetFileAttributes
andplatform.win32.Kernel32Util.getFileAttributes
. - Add
platform.win32.Kernel32.GetTickCount
. - Add Win32 Service functions to
platform.win32.Advapi32
. - Add
platform.win32.W32ServiceManager
andW32Service
. - Add Win32 Event Logging functions to
platform.win32.Advapi32
andplatform.win32.Advapi32Util.EventLogIterator
. platform.win32.Advapi32Util.registryCreateKey
returnstrue
if key was created,false
if it already exists.- Add
REG_BINARY
,REG_EXPAND_SZ
andREG_MULTI_SZ
support toplatform.win32.Advapi32Util
registry functions. - Reduce JNI crossings in a number of native methods, moving object creation out into pure Java code.
- Move all native functions into
com.sun.jna.Native
, to ensure that all dependent classes must be disposed before theNative
class is unloaded. Note that this change is incompatible with all previous JNA native libraries. - Fix
platform.win32.Kernel32.GetNativeSystemInfo
andGetSystemInfo
AV on Win64. - Fix several potential minor bugs as reported by TvT.
- Fix bug in Structure.StructureSet.toString (Blair Zajac), exposed by Tomcat ThreadLocal cleanup.
- Fix several bugs when using Structure(Pointer) ctor and array fields (Samuel Audet).
- Add native peer value accessors for Pointer
- The
jna.library.path
property is now re-evaluated whenever a native library is loaded. Previously this value was cached when the JNA classes loaded. Native.loadLibrary
can now load.drv
files.- Refactor
com.sun.jna.platform.win32.WINBASE
intoWinDef
,WinNT
andBaseTSD
, matching Windows SDK headers. - Refactor constants from
com.sun.jna.platform.win32.GDI32
intoWinGDI
, matching Windows SDK headers. - Refactor constants from
com.sun.jna.platform.win32.User32
intoWinUser
, matching Windows SDK headers. - Refactor
platform.win32.WinNT.LARGE_INTEGER
into a union. - Add
platform.win32.ObjBase
,com.sun.jna.platform.win32.Ole32.CoInitializeEx
,CoUninitialize
, andCoCreateInstance
. - Add
platform.win32.Oleaut32.SysAllocString
andSysFreeString
. - Add
platform.win32.Secur32.ImpersonateSecurityContext
andRevertSecurityContext
. - Add
platform.win32.WinNT.WELL_KNOWN_SID_TYPE
,SECURITY_MAX_SID_SIZE
and other related SID-related constants. - Add
platform.win32.Advapi32.CreateWellKnownSid
andIsWellKnownSid
andcom.sun.jna.platform.win32.Advapi32Util.isWellKnownSid
. - Add
platform.win32.Kernel32.GetVersion
,GetVersionEx
,GetSystemInfo
,GetNativeSystemInfo
,GlobalMemoryStatusEx
,GetLogicalDriveStrings
andIsWow64Process
. - Add
platform.win32.Kernel32Util.getLogicalDriveStrings
. - Add
platform.win32.User32.GetSystemMetrics
. - Add
platform.win32.BaseTSD.DWORD_PTR
. - Add
platform.win32.WinBase.SYSTEM_INFO
andMEMORYSTATUSEX
. - Add
platform.win32.WinNT.OSVERSIONINFOEX
,VER
constants. - Add
platform.win32.WinDef.ULONGLONG
andDWORDLONG
. - Add
platform.win32.Shell32.SHGetDesktopFolder
(prep work for Com4JNA). - Add
platform.win32.Winspool.GetPrinterInfo
. - Add
platform.win32.WinspoolUtil.getPrinterInfo1
. - Add
platform.win32.GDI32.GetDeviceCaps
. - Add
platform.win32.GDI32.GetDIBits
.
- Fix
ClassCastException
inStructure.equals
(issue 152). - Fix bug initializing a structure object from existing memory when the structure has initialized fields (issue 133).
- Fix NPE reading an array of string from a pointer when an element of the array is
NULL
(issue 151). - Avoid calling
UnregisterNatives
in native code (issue 154). - Compare unpacked library path against canonical (long) filename (issue 156).
- Fix
read()
of uninitialized memory inplatform.win32.Advapi32Util.getTokenGroups
andgetTokenAccount
. - Fix
com.sun.jna.platform.win32.Secur32.QuerySecurityContextToken
to take aCtxtHandle
instead ofPSecHandle
. - Fix definition of BITMAPINFO (platform/win32).
- Split code in examples.jar into a contrib platform.jar package and individual packages for demos.
- Fix Eclipse build and added Eclipse projects for all contrib samples, import projects from jnalib and contrib.
- Ensure Structure fields correctly ordered when inherited.
- Use explicit Structure field whenever provided, regardless of whether the VM requires it.
- Add Win32 mappings for two dozen functions from Kernel32.dll, Advapi32.dll, Netapi32.dll, Secur32.dll, NtDll.dll, Ole32.dll, Shell32.dll and Crypt32.dll to com.sun.jna.platform.win32.
- Port parts of WinError.h, WinNT.h, LMAccess.h, LMCons.h, LMErr.h, LMJoin.h, NTStatus.h, ShlObj.h, WinDef.h, ShellApi.h, Wdm.h, WinReg.h, WinCrypt.h, Sspi.h, Guid.h, NtSecApi.h and DsGetDc.h.
- Add Win32 simplified utility interfaces Kernel32Util, Advapi32Util, Netapi32Util, Crypt32Util, NtDllUtil, Shell32Util, Ole32Util and Secur32Util to com.sun.jna.platform.win32.
- Support unicode paths in W32FileUtils.
- Fix exception during dispose in W32FileMonitor.
- Provide String.replace for 1.4 compatibility.
- Avoid allocating memory when Structure is provided a pointer in the ctor.
- Ensure proper value returned in Pointer.getValue() for non-null, unchanged NIO Buffer values.
- Use 1.4-compatible URI generation (issue 149).
- Make Pointer ctor public.
- Provide access to Function objects for arbitrary Pointer values.
- Add linux/ia64 binaries (bpiwowar). See issue 134 patch.
- Use a more robust method to decode a file-based URL (issue 135).
- Include version information in code in case package information lost.
- Fix WindowUtils exception on mouse over TrayIcon.
- Fix bug toggling windows transparent/opaque (win32/OSX).
- Avoid overwriting unchanged Pointer values in arrays (function calls with Pointer[] and Structure.read).
- Ensure Structure fields marked
final
are never written. - Fix bug preventing proper population Structure.ByReference fields on Structure read.
- Ensure double buffering is disabled in components added to a transparent window.
- Fix UnsatisfiedLinkError attempting to load system libraries under Web Start.
- Fix loading Web Start-provided libraries on OSX (libraries must have a .jnilib suffix under Web Start).
- Properly include sources in Maven zip file (Issue 129).
- Provide length-specified Pointer.getStringArray()
- Fix crash with direct mapping if NULL struct* used (Issue 125).
- Fix case where null-valued Structure fields would get non-null values on write.
- Synch callback Structure/Structure[] arguments on callback return.
- Fix NPE when mapping an interface to the current process.
- Automatically load proper C library version from current process on Linux (avoids crashing bug on Ubuntu with libc-i686 packages active).
- Avoid scanning structure contents in Structure.toString if contents aren't actually used.
- Add HRESULT, LONG mapping to W32API (marc strapetz).
- Fix definition of HWND_BROADCAST in W32API.
- Fix memory alignment checking (Issue 121).
- Fix Structure equals/hashCode implementation, based on current Java fields rather than strictly native memory contents. Avoid using equals/hashCode when avoiding recursive reads/writes.
- Handle String, Structure, Callback, Buffer, and primitive arrays in direct mappings. Handle NativeMapped and TypeMapper, with optimized paths for IntegerType and PointerType.
- Optionally throw errno/GetLastError as an exception. This is preferred to (and more efficient than) calling Native.getLastError().
- Unload/delete native library unpacked from jna.jar if Native class is garbage collected. Only install shutdown hook if using the system class loader.
- Auto-write contiguous Structure arrays when first element is written.
- Support NativeMapped[] as function arguments for interface-mapped libraries (Issue 90).
- Enable function lookup within current process on Windows.
- Restrict recursive structure reads/writes by thread instead of globally. This avoids potentially missed reads/writes with concurrent access (Issue 120).
- Ensure Memory is not GC'd and freed if direct NIO buffers mapped to it are extant.
- Allow types derived from java.nio.Buffer as Structure fields.
- Add raw JNI mapping of static Java methods. Performance is about 10X that of traditional JNA interface mapping, although with less type conversion functionality.
- Add library option to allow passing/return of Java Objects.
- Allow handling of uncaught callback exceptions (Issue 63).
- Object oriented interface to X server (see contrib/x11)
- Make Memory class more accessible.
- Provide Structure ctor with Pointer argument (issue 102).
- Allow implicit library access to current process on linux (issue 98).
- Open all shared libraries with RTLD_GLOBAL, if applicable. This was the default behavior on OSX and changes the default behavior on linux.
- Allow NIO Buffer as Structure field (with limitations) (Issue 57)
- Add
size_t
size.
- Run tests with libjsig.so, if available, which fixes some crashes when running tests on 64-bit platforms.
- Fix Issue 104.
- Fix Issue 94 (Java 1.6 update 10 regression).
- Fix Issue 51 (Java 1.6 update 10 regression).
- Fix Issue 95.
- Fix Issue 101.
- Fix Issue 111, memory leak with String-returning Callback.
- Fix missing storage of union type information (affects usage of struct/union by value as argument and return type).
- Remove non-functional Structure ctors requiring explicit size.
- Fix issue 93 by only manually searching jna.library.path, then falling back to passing the mapped library name to dlopen/LoadLibrary. This fixes an issue in JRUBY where the incorrect libc.so.6 was being loaded.
- Auto-map Pointer[]/String[]/WString[] return values.
- Provide utility functions to convert String to primitive array.
- Add jna.library.boot.path property to define the directory that the native stub library is loaded from
- Improve Win32 loading of libraries with dependencies.
- Fix bug reading structures with PointerType fields, introduced with Pointer field preservation fix.
- Allow arbitrary callback method names if only one method is defined in the class which implements Callback (colinwalters).
- Allow specification of callback type mappers by using a TYPE_MAPPER field (colinwalters).
- Allow uninitialized (null-valued) boxed primitives in Structures (colinwalters).
- Add convenience methods to set active Union field and value simultaneously (xylo).
- Augment Union read/writeField to set the active field.
- Allow Structure auto-synch across native calls to be disabled.
- Win64 support.
- Avoid overwriting unchanged Structure fields of type Pointer.
- Avoid more content dragging on OSX or warn if it's too late.
- Fix UnsatisfiedLinkError using transparent window on Win2K.
- Fix memory leak with callbacks called from native threads with no Java context (johnwallace).
- Defer structure size calculation if type mapper not yet set, allowing type mapper to be set in derived constructors (colinwalters).
- Ensure structure memory is allocated in Structure.read/writeField.
- Allow explicit declaration of field order for VMs which have an unpredictable field order.
- Check for w32 libraries with a "lib" prefix in addition to normal lookup.
- Allow String[]/WString[] as callback argument/return value (assume NULL-terminated array).
- Add Solaris8 compatibility to sunos-sparc build (Corey Puffalt).
- Look up libraries using web start library path, if appropriate (Corey Puffalt).
- Use constants to return integer boolean values.
- Properly track cursor on alpha-masked windows.
- Avoid searching /lib or /usr/lib on 64-bit Linux.
- Avoid using incorrect version of a library when both 32- and 64-bit versions are found.
- Avoid transparent window events always dragging window bug on OSX.
- Fix division by zero error calculating structure size on OSX/ppc.
- Avoid overwriting initialized NativeMapped Structure fields when calculating structure size.
- Fix NPE reading back into StringArray.
- Automatically write contents of Structure.ByReference fields on Structure.write().
- Use the actual parameter type in Function invocations if no parameter type information is available (whether method is missing or untyped varargs).
- Augmented X11 library mappings (xylo).
- Support read/write of NativeMapped arrays within Structure (notably NativeLong).
- Fix library load error when /usr/lib32 and /usr/lib both exist (linux) (Marek Slama).
- Avoid incorrect matches against libraries named with the same prefix (e.g. libc-client.so vs libc.so) (xylo).
- Properly handle arrays of NativeMapped (e.g. NativeLong) as a Structure field (stefan endrullis).
- Ensure structure size calculated prior to setting union active type.
- XID is 64-bits on 64-bit X clients (xylo).
- Ensure proper arch name is used on Debian (amd64 instead of x86_64).
- Enable build/run using IBM's J9 VM (leonardo).
- Make StdCallFunctionMapper attempt a leading underscore if the simpler mapping doesn't work.
- Allow Structure.read to overwrite final fields (may not work on some 1.4 VMs).
- Fix NPE when passing an array of Structure.ByReference.
- Compare entire linux library version when finding a match.
- Don't pass struct by value unless the method signature declares it.
- Restrict custom first element structure alignment to OSX/ppc.
- Improve performance and reduce memory footprint for window masks. Optimize polygon-based masks on w32. Use XFillRectangles on X11.
- Fix linkage settings on sunos-amd64 to avoid relocation errors.
- Fix callback allocation code on w32, solaris, freebsd, darwin (libffi was misconfigured).
- Fix bug when NativeMapped fields are used in a Structure.ByValue instance.
- Fix NPE calling Structure.read() before memory is initialized.
- Fix NPE calling Structure.read/write with uninitialized NativeMapped fields.
- Attempt to force unload of jnidispatch library prior to deleting it (w32).
- Added amd64 targets for OSX, FreeBSD, and Solaris.
- Reduce space allocated for invocation arguments.
- Fix NPE when NativeMapped type is used in a Structure.
- Fix some X11 type mappings for 64-bit.
- Fix OSX Leopard/JRE1.5+ window transparency.
- Fix window alpha compositing on X11.
- Fix loading of libraries with unicode names on OSX.
- Improve transparent window drawing performance on w32
- Use closure allocation from libffi
- Ensure nested structure arrays initialized with Structure.toArray use the appropriate native memory.
- Ensure structure size is calculated prior to converting to array
- Avoid creating new windows when setting a window mask
- Fix bug in Pointer.setChar.
- More supported platforms, via GCC's libffi (wmeissner)
- Support struct by value as parameter and return value (duncan)
- Support struct by reference within structures
- Provide access to native peer for java.awt.Component
- Provide access to native peer on OS X.
- Support MINGW32 builds (fullung)
- Allow per-field Structure read/write by field name
- Avoid writing Structure fields marked 'volatile'
- Read and wrap function pointers in Structure fields when read with a Java proxy to allow easy Java-side invocation (Ken Larson)
- Support array-backed Buffers as arguments (wmeissner)
- Auto-conversion of custom types (wmeissner)
- Allow pointer type-safety
- Optional VM crash protection, via Native.setProtected(boolean)
- Auto-convert WString[]
- Provide library synchronization wrapper similar to Collections.synchronizedX
- Support lookup of OSX framework libraries by name
- Explicit access to shared library global data
- Invocation interception to facilitate translation of C preprocessor macros and inline functions
- Provide utility to determine Web Start native library cache location; auto-include this path if jnidispatch is included as a <nativelib> (robertengels)
- Provide access to aligned memory
- Versioning information embedded in jna.jar and native library
- Avoid attempts to free native library if it failed to load (wmeissner)
- Explicitly check method signatures for varargs instead of heuristically guessing (wmeissner)
- Disallow declaring Pointer-derived fields in Structures (Function, Memory)
- Ensure Object.toString/hashCode/equals methods are intercepted on proxyied interfaces
- Update X11 library for 64-bit use (wmeissner)
- Properly map arrays of char*/wchar_t* under w32
- Allow Pointer[] as a Structure field and Function argument
- Fix some misleading Structure error messages
- Properly preserve/return GetLastError/errno after native calls
- Allocate executable memory on w32 to avoid errors with hardware-enforced data execution protection (DEP)
- Fix VM crash on w32 stdcall callbacks
- Use long offsets and sizes rather than ints (64-bit safe)
- Properly clean up references and release closure memory on JNI_Unload
- Use simpler AWT/JAWT library loading workaround
- Avoid changing array references within a Structure on read
- Unions
- Optimized shaped windows (chris deckers & olivier chafik); instantiation time improved by about 2-3 orders of magnitude for large, mostly contiguous shapes
- Provide type mapping in callback arguments/results
- Provide access to ByteBuffer direct address as a Pointer
- Provide customization of native string encoding with jna.encoding system property
- Properly handle VMs with reversed Structure member storage
- Avoid making window undecorated when clearing window mask on X11
- Fix structure alignment bug on OSX/PPC when first element is > 4 bytes in size
- Clearing OSX window mask by setting to MASK_NONE now works properly
- Avoid index exceptions if native buffers are not NUL-terminated on string conversions
- Write initialized Structure[] argument memory prior to function calls
- Fix IllegalArgumentException reading WString into a Structure
- Clear memory when allocating a structure block (fixes VM crash)
- Remove versioned JAWT dependency on OSX, allowing use on 10.3/JRE1.4.
- Explicitly support unaligned structures
- Auto-reallocate structure arrays
- Automatic handling of w32 UNICODE/ASCII variants
- Automatic mapping of decorated w32 stdcall function names
- Customizable, automatic type conversion of arguments and results (wmeissner)
- Support char*[] arguments as Java String[]
- Structure supports Callback members (wmeissner)
- getByteBuffer from Pointer/Memory (wmeissner)
- Allow GC of native libraries
- Facilitate use from non-Java contexts (JRuby et al.) (wmeissner)
- Improve library path searching (wmeissner)
- Handle Structure[] arguments
- Handle native long arguments and return values
- Handle direct and array-based ByteBuffer arguments (wmeissner)
- Change default w32 build to use GCC (it's free, yo)
- Structure.toArray failed to initialize members
- Disallow explicit free of Structure/Memory
- Ensure native libraries are only loaded once until released
- Properly handle NULL when the return value is a Structure
- Proper conversion to wchar_t on linux
- Copy full length of Java strings to C strings instead of stopping when a NUL character is encountered