Skip to content

Commit 5580ce7

Browse files
committed
Added JNA platform and used it to replace WinDef functionality
1 parent 4150a3d commit 5580ce7

14 files changed

+66
-36
lines changed

Diff for: bin/purejavahidapi-src.jar

284 Bytes
Binary file not shown.

Diff for: bin/purejavahidapi.jar

381 Bytes
Binary file not shown.

Diff for: build-jars.xml

+2
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@
1616

1717
<path id="compile">
1818
<pathelement location="lib/jna-5.5.0.jar"/>
19+
<pathelement location="lib/jna-platform-5.5.0.jar"/>
1920
</path>
2021

2122
<path id="examples">
2223
<pathelement location="lib/jna-5.5.0.jar"/>
24+
<pathelement location="lib/jna-platform-5.5.0.jar"/>
2325
<pathelement location="${class}"/>
2426
</path>
2527

Diff for: lib/jna-platform-5.5.0.jar

2.56 MB
Binary file not shown.

Diff for: src/purejavahidapi/windows/DeviceRemovalHandler.java

+13-6
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,20 @@
2929
*/
3030
package purejavahidapi.windows;
3131

32+
import static com.sun.jna.platform.win32.DBT.*;
33+
import static com.sun.jna.platform.win32.WinBase.INVALID_HANDLE_VALUE;
3234
import static purejavahidapi.windows.SetupApiLibrary.*;
3335

3436
import com.sun.jna.WString;
3537

38+
import com.sun.jna.platform.win32.DBT.*;
39+
import com.sun.jna.platform.win32.WinUser.*;
40+
import com.sun.jna.platform.win32.WinDef.*;
41+
3642
import purejavahidapi.shared.SyncPoint;
37-
import purejavahidapi.windows.WinDef.*;
38-
import static purejavahidapi.windows.WinDef.*;
43+
//import purejavahidapi.windows.WinDef.*;
44+
//import static purejavahidapi.windows.WinDef.*;
45+
3946
import static purejavahidapi.windows.Kernel32Library.*;
4047
import static purejavahidapi.windows.User32Library.*;
4148
import static purejavahidapi.windows.WtsApi32Library.*;
@@ -55,7 +62,7 @@ public void run() {
5562
if (hInst == null)
5663
reportLastError();
5764

58-
WNDCLASSEX wndClassEx = new WNDCLASSEX();
65+
User32Library.WNDCLASSEX wndClassEx = new User32Library.WNDCLASSEX();
5966
wndClassEx.hInstance = hInst;
6067
wndClassEx.lpfnWndProc = DeviceRemovalHandler.this;
6168
wndClassEx.lpszClassName = wndClassName;
@@ -77,13 +84,13 @@ public void run() {
7784
notificationFilter.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
7885
notificationFilter.dbcc_classguid = GUID_DEVINTERFACE_USB_DEVICE;
7986

80-
HDEVNOTIFY hDevNotify = RegisterDeviceNotification(hWnd, notificationFilter, DEVICE_NOTIFY_WINDOW_HANDLE);
87+
User32Library.HDEVNOTIFY hDevNotify = RegisterDeviceNotification(hWnd, notificationFilter, DEVICE_NOTIFY_WINDOW_HANDLE);
8188
if (hDevNotify == null)
8289
reportLastError();
8390

8491
m_StartupSync.waitAndSync();
8592

86-
MSG msg = new MSG();
93+
User32Library.MSG msg = new User32Library.MSG();
8794
while (GetMessage(msg, hWnd, 0, 0) != 0) {
8895
TranslateMessage(msg);
8996
DispatchMessage(msg);
@@ -162,7 +169,7 @@ protected LRESULT onDeviceChangeArrivalOrRemoveComplete(LPARAM lParam, String ac
162169
switch (bhdr.dbch_devicetype) {
163170
case DBT_DEVTYP_DEVICEINTERFACE: {
164171
DEV_BROADCAST_DEVICEINTERFACE bdif = new DEV_BROADCAST_DEVICEINTERFACE(bhdr.getPointer());
165-
handleDeviceRemoval(bdif.get_dbcc_name());
172+
handleDeviceRemoval(bdif.getDbcc_name());
166173
break;
167174
}
168175
default:

Diff for: src/purejavahidapi/windows/HidDevice.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
*/
3030
package purejavahidapi.windows;
3131

32+
import static com.sun.jna.platform.win32.WinBase.INVALID_HANDLE_VALUE;
3233
import static purejavahidapi.windows.HidLibrary.HidD_FreePreparsedData;
3334
import static purejavahidapi.windows.HidLibrary.HidD_GetAttributes;
3435
import static purejavahidapi.windows.HidLibrary.HidD_GetPreparsedData;
@@ -37,18 +38,20 @@
3738
import static purejavahidapi.windows.HidLibrary.HidP_GetCaps;
3839
import static purejavahidapi.windows.Kernel32Library.*;
3940
import static purejavahidapi.windows.SetupApiLibrary.HIDP_STATUS_SUCCESS;
40-
import static purejavahidapi.windows.WinDef.INVALID_HANDLE_VALUE;
41+
//import static purejavahidapi.windows.WinDef.INVALID_HANDLE_VALUE;
4142

4243
import com.sun.jna.Memory;
4344
import com.sun.jna.NativeLong;
4445
import com.sun.jna.Pointer;
4546

47+
import com.sun.jna.platform.win32.WinBase.OVERLAPPED;
48+
import com.sun.jna.platform.win32.WinNT.HANDLE;
4649
import purejavahidapi.shared.SyncPoint;
4750
import purejavahidapi.windows.HidLibrary.HIDD_ATTRIBUTES;
4851
import purejavahidapi.windows.HidLibrary.HIDP_CAPS;
4952
import purejavahidapi.windows.HidLibrary.HIDP_PREPARSED_DATA;
50-
import purejavahidapi.windows.WinDef.HANDLE;
51-
import purejavahidapi.windows.WinDef.OVERLAPPED;
53+
//import purejavahidapi.windows.WinDef.HANDLE;
54+
//import purejavahidapi.windows.WinDef.OVERLAPPED;
5255

5356
import java.io.BufferedWriter;
5457
import java.io.FileWriter;

Diff for: src/purejavahidapi/windows/HidDeviceInfo.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@
4242
import purejavahidapi.windows.HidLibrary.HIDD_ATTRIBUTES;
4343
import purejavahidapi.windows.HidLibrary.HIDP_CAPS;
4444
import purejavahidapi.windows.HidLibrary.HIDP_PREPARSED_DATA;
45-
import purejavahidapi.windows.WinDef.HANDLE;
45+
//import purejavahidapi.windows.WinDef.HANDLE;
46+
import com.sun.jna.platform.win32.WinNT.HANDLE;
4647

4748
/* package*/class HidDeviceInfo extends purejavahidapi.HidDeviceInfo {
4849

Diff for: src/purejavahidapi/windows/HidLibrary.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@
4040
import com.sun.jna.Union;
4141
import com.sun.jna.win32.StdCallLibrary;
4242

43-
import purejavahidapi.windows.WinDef.HANDLE;
43+
//import purejavahidapi.windows.WinDef.HANDLE;
44+
import com.sun.jna.platform.win32.WinNT.HANDLE;
4445

4546
public class HidLibrary {
4647
static HidLibraryInterface INSTANCE = (HidLibraryInterface) Native.load("hid", HidLibraryInterface.class);

Diff for: src/purejavahidapi/windows/Kernel32Library.java

+11-4
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,20 @@
3131

3232
import com.sun.jna.Native;
3333
import com.sun.jna.Pointer;
34+
//import com.sun.jna.platform.win32.WinBase;
35+
//import com.sun.jna.platform.win32.WinDef;
36+
//import com.sun.jna.platform.win32.WinNT;
3437
import com.sun.jna.win32.StdCallLibrary;
3538
import com.sun.jna.win32.W32APIOptions;
3639

37-
import purejavahidapi.windows.WinDef.HANDLE;
38-
import purejavahidapi.windows.WinDef.HMODULE;
39-
import purejavahidapi.windows.WinDef.OVERLAPPED;
40-
import purejavahidapi.windows.WinDef.SECURITY_ATTRIBUTES;
40+
import com.sun.jna.platform.win32.WinNT.HANDLE;
41+
import com.sun.jna.platform.win32.WinDef.HMODULE;
42+
import com.sun.jna.platform.win32.WinBase.OVERLAPPED;
43+
import com.sun.jna.platform.win32.WinBase.SECURITY_ATTRIBUTES;
44+
//import purejavahidapi.windows.WinDef.HANDLE;
45+
//import purejavahidapi.windows.WinDef.HMODULE;
46+
//import purejavahidapi.windows.WinDef.OVERLAPPED;
47+
//import purejavahidapi.windows.WinDef.SECURITY_ATTRIBUTES;
4148

4249
public class Kernel32Library {
4350
static Kernel32Interface INSTANCE = (Kernel32Interface) Native.load("kernel32", Kernel32Interface.class, W32APIOptions.UNICODE_OPTIONS);

Diff for: src/purejavahidapi/windows/SetupApiLibrary.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,11 @@
125125
import com.sun.jna.Native;
126126
import com.sun.jna.Pointer;
127127
import com.sun.jna.Structure;
128+
import com.sun.jna.platform.win32.WinDef;
128129
import com.sun.jna.win32.W32APIOptions;
129130

130-
import purejavahidapi.windows.WinDef.HANDLE;
131-
import purejavahidapi.windows.WinDef.HWND;
131+
import com.sun.jna.platform.win32.WinNT.HANDLE;
132+
import com.sun.jna.platform.win32.WinDef.HWND;
132133

133134
public class SetupApiLibrary {
134135
static SetupApiInterface INSTANCE = (SetupApiInterface) Native.load("setupapi", SetupApiInterface.class,
@@ -292,7 +293,7 @@ boolean SetupDiOpenDeviceInterface(HDEVINFO DeviceInfoSet, String DevicePath, in
292293
boolean SetupDiDeleteDeviceInterfaceData(HDEVINFO DeviceInfoSet, SP_DEVICE_INTERFACE_DATA DeviceInterfaceData);
293294

294295
boolean SetupDiOpenDeviceInfo(HDEVINFO DeviceInfoSet, String DeviceInstanceId, HWND hwndParent, int OpenFlags,
295-
SP_DEVINFO_DATA DeviceInfoData);
296+
SP_DEVINFO_DATA DeviceInfoData);
296297
}
297298

298299
public static HDEVINFO SetupDiCreateDeviceInfoList(GUID ClassGuid, HWND hwndParent) {

Diff for: src/purejavahidapi/windows/User32Library.java

+16-14
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,22 @@
4040
import com.sun.jna.win32.StdCallLibrary;
4141
import com.sun.jna.win32.W32APIOptions;
4242

43-
import purejavahidapi.windows.WinDef.ATOM;
44-
import purejavahidapi.windows.WinDef.HANDLE;
45-
import purejavahidapi.windows.WinDef.HBRUSH;
46-
import purejavahidapi.windows.WinDef.HCURSOR;
47-
import purejavahidapi.windows.WinDef.HICON;
48-
import purejavahidapi.windows.WinDef.HINSTANCE;
49-
import purejavahidapi.windows.WinDef.HMENU;
50-
import purejavahidapi.windows.WinDef.HWND;
51-
import purejavahidapi.windows.WinDef.LPARAM;
52-
import purejavahidapi.windows.WinDef.LPVOID;
53-
import purejavahidapi.windows.WinDef.LRESULT;
54-
import purejavahidapi.windows.WinDef.POINT;
55-
import purejavahidapi.windows.WinDef.PVOID;
56-
import purejavahidapi.windows.WinDef.WPARAM;
43+
//import purejavahidapi.windows.WinDef.ATOM;
44+
//import purejavahidapi.windows.WinDef.HANDLE;
45+
//import purejavahidapi.windows.WinDef.HBRUSH;
46+
//import purejavahidapi.windows.WinDef.HCURSOR;
47+
//import purejavahidapi.windows.WinDef.HICON;
48+
//import purejavahidapi.windows.WinDef.HINSTANCE;
49+
//import purejavahidapi.windows.WinDef.HMENU;
50+
//import purejavahidapi.windows.WinDef.HWND;
51+
//import purejavahidapi.windows.WinDef.LPARAM;
52+
//import purejavahidapi.windows.WinDef.LPVOID;
53+
//import purejavahidapi.windows.WinDef.LRESULT;
54+
//import purejavahidapi.windows.WinDef.POINT;
55+
//import purejavahidapi.windows.WinDef.PVOID;
56+
//import purejavahidapi.windows.WinDef.WPARAM;
57+
import com.sun.jna.platform.win32.WinDef.*;
58+
import com.sun.jna.platform.win32.WinNT.HANDLE;
5759

5860
@SuppressWarnings("serial")
5961
public class User32Library {

Diff for: src/purejavahidapi/windows/WinDef.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
import purejavahidapi.windows.SetupApiLibrary.GUID;
3737

3838
import com.sun.jna.win32.StdCallLibrary.StdCallCallback;
39-
39+
/*
4040
public class WinDef {
4141
public static final int DBT_DEVICEREMOVECOMPLETE = 0x8004;
4242
@@ -388,3 +388,4 @@ public interface WindowProc extends StdCallCallback {
388388
LRESULT callback(HWND hwnd, int uMsg, WPARAM wParam, LPARAM lParam);
389389
}
390390
}
391+
*/

Diff for: src/purejavahidapi/windows/WindowsBackend.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,13 @@
3838
import purejavahidapi.windows.SetupApiLibrary.HDEVINFO;
3939
import purejavahidapi.windows.SetupApiLibrary.SP_DEVICE_INTERFACE_DATA;
4040
import purejavahidapi.windows.SetupApiLibrary.SP_DEVINFO_DATA;
41-
import purejavahidapi.windows.WinDef.HANDLE;
41+
42+
//import purejavahidapi.windows.WinDef.HANDLE;
43+
import com.sun.jna.platform.win32.WinNT.HANDLE;
44+
import static com.sun.jna.platform.win32.WinBase.INVALID_HANDLE_VALUE;
4245
import static purejavahidapi.windows.CfgmgrLibrary.*;
43-
import static purejavahidapi.windows.WinDef.INVALID_HANDLE_VALUE;
46+
//import static purejavahidapi.windows.WinDef.INVALID_HANDLE_VALUE;
47+
4448

4549
import com.sun.jna.Native;
4650
import com.sun.jna.NativeLong;

Diff for: src/purejavahidapi/windows/WtsApi32Library.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@
2929
*/
3030
package purejavahidapi.windows;
3131

32-
import purejavahidapi.windows.WinDef.HWND;
32+
//import purejavahidapi.windows.WinDef.HWND;
33+
import com.sun.jna.platform.win32.WinDef.HWND;
3334

3435
import com.sun.jna.Native;
3536
import com.sun.jna.win32.StdCallLibrary;

0 commit comments

Comments
 (0)