Code polish for accessing User32

This commit is contained in:
nathan 2017-07-14 00:58:28 +02:00
parent 409d6d0931
commit 713837cf4c
4 changed files with 17 additions and 14 deletions

View File

@ -17,6 +17,7 @@ package dorkbox.util.jna.windows;
import static com.sun.jna.platform.win32.WinDef.HBITMAP;
import static com.sun.jna.platform.win32.WinDef.HDC;
import static dorkbox.util.jna.windows.User32.User32;
import java.awt.AlphaComposite;
import java.awt.Graphics2D;
@ -34,7 +35,7 @@ public class HBITMAPWrap extends HBITMAP {
HBITMAP createBitmap(BufferedImage image) {
int w = image.getWidth(null);
int h = image.getHeight(null);
HDC screenDC = User32.IMPL.GetDC(null);
HDC screenDC = User32.GetDC(null);
HDC memDC = GDI32.CreateCompatibleDC(screenDC);
HBITMAP hBitmap = null;
@ -72,7 +73,7 @@ public class HBITMAPWrap extends HBITMAP {
pbits.write(0, bits, 0, bits.length);
return hBitmap;
} finally {
User32.IMPL.ReleaseDC(null, screenDC);
User32.ReleaseDC(null, screenDC);
GDI32.DeleteDC(memDC);
}
}

View File

@ -17,6 +17,7 @@ package dorkbox.util.jna.windows;
import static com.sun.jna.platform.win32.WinDef.HBITMAP;
import static com.sun.jna.platform.win32.WinDef.HICON;
import static dorkbox.util.jna.windows.User32.User32;
import com.sun.jna.Pointer;
@ -33,7 +34,7 @@ public class HICONWrap extends HICON {
info.MaskBitmap = bm;
info.ColorBitmap = bm;
HICON hicon = User32.IMPL.CreateIconIndirect(info);
HICON hicon = User32.CreateIconIndirect(info);
if (hicon == null) {
throw new GetLastErrorException();
}

View File

@ -36,7 +36,7 @@ import dorkbox.util.jna.windows.structs.ICONINFO;
@SuppressWarnings("WeakerAccess")
public
interface User32 {
User32 IMPL = OS.is64bit() ? new User32_64() : new User32_32();
User32 User32 = OS.is64bit() ? new User32_64() : new User32_32();
int GWL_WNDPROC = -4;

View File

@ -20,6 +20,7 @@ import static com.sun.jna.platform.win32.WinDef.LPARAM;
import static com.sun.jna.platform.win32.WinDef.LRESULT;
import static com.sun.jna.platform.win32.WinDef.WPARAM;
import static com.sun.jna.platform.win32.WinUser.WM_QUIT;
import static dorkbox.util.jna.windows.User32.User32;
import java.util.ArrayList;
import java.util.HashMap;
@ -39,7 +40,7 @@ class WindowsEventDispatch implements Runnable {
private static final String NAME = "WindowsEventDispatch";
public static final int WM_TASKBARCREATED = User32.IMPL.RegisterWindowMessage(new WString("TaskbarCreated"));
public static final int WM_TASKBARCREATED = User32.RegisterWindowMessage(new WString("TaskbarCreated"));
public static final int WM_COMMAND = 0x0111;
public static final int WM_SHELLNOTIFY = WinUser.WM_USER + 1;
public static final int WM_MEASUREITEM = 44;
@ -110,7 +111,7 @@ class WindowsEventDispatch implements Runnable {
// always from inside lock!
private void
stop_() {
User32.IMPL.SendMessage(hWnd, WM_QUIT, new WPARAM(0), new LPARAM(0));
User32.SendMessage(hWnd, WM_QUIT, new WPARAM(0), new LPARAM(0));
try {
// wait for the dispatch thread to quit (but only if we are not on the dispatch thread)
@ -175,30 +176,30 @@ class WindowsEventDispatch implements Runnable {
}
}
return User32.IMPL.DefWindowProc(hWnd, msg, wParam, lParam);
return User32.DefWindowProc(hWnd, msg, wParam, lParam);
}
};
hWnd = User32.IMPL.CreateWindowEx(0, "STATIC", NAME, 0, 0, 0, 0, 0, null, null, null,
null);
hWnd = User32.CreateWindowEx(0, "STATIC", NAME, 0, 0, 0, 0, 0, null, null, null,
null);
if (hWnd == null) {
throw new GetLastErrorException();
}
User32.IMPL.SetWindowLong(hWnd, User32.GWL_WNDPROC, WndProc);
User32.SetWindowLong(hWnd, User32.GWL_WNDPROC, WndProc);
synchronized (lock) {
lock.notifyAll();
}
MSG msg = new MSG();
while (User32.IMPL.GetMessage(msg, null, 0, 0)) {
User32.IMPL.TranslateMessage(msg);
User32.IMPL.DispatchMessage(msg);
while (User32.GetMessage(msg, null, 0, 0)) {
User32.TranslateMessage(msg);
User32.DispatchMessage(msg);
}
if (hWnd != null) {
if (!User32.IMPL.DestroyWindow(hWnd)) {
if (!User32.DestroyWindow(hWnd)) {
throw new GetLastErrorException();
}
hWnd = null;