JNIWrapper Cross-Desktop library is aimed to help developers working on three major platforms — Windows, Mac OS X and Linux, and allows to interface native code while retaining full control of the application on the Java side. With JNIWrapper, there is no need for you to create native code libraries to call a function of the operating system API or a function from any dynamic library. You write your code in Java language only, and JNIWrapper does the rest. JNIWrapper advantages are the following. Minimum behind-the-scene operation, so that developers can always see what is happening when working with the native-side data. High performance lets JNIWrapper handle any large amount of data involved in interactions between the Java and native code, requiring no performance tuning on developer's part. Automatic resource management - all resources allocated by JNIWrapper components are released automatically when no longer required. Comprehensive support for native function invocation - JNIWrapper supports both stdcall and cdecl calling conventions and all complex C types including structures, unions and callbacks. Extensible architecture allows implementing new data types or customizing existing ones. Support for thread-safe concurrent function invocation allows to perform all native function calls simultaneously from different Java threads without the need to synchronize them. Crashes in native functions are converted to Java exceptions. JNIWrapper provides a customizable native library search mechanism. Along with WinPack, a free addition to JNIWrapper for Windows platform, there is no need to learn the native Windows API to use it. WinPack enables access to the Windows native API and libraries from Java code. The library also allows to: access to Windows Registry; install Windows Hooks; manage Events and Files; modify windows properties; monitor and manage system processes, modules, memory and event logs and many more.