use of com.sun.jna.platform.win32.WinDef.HWND in project jna by java-native-access.
the class User32Test method testFindWindowEx.
@Test
public void testFindWindowEx() {
HWND result = User32.INSTANCE.FindWindowEx(null, null, null, null);
assertNotNull("FindWindowEx result should not be null", result);
assertEquals("GetLastError should be ERROR_SUCCESS.", WinError.ERROR_SUCCESS, Native.getLastError());
}
use of com.sun.jna.platform.win32.WinDef.HWND in project jna by java-native-access.
the class OpenGL32Test method testGetStringGLVersion.
public void testGetStringGLVersion() {
// create a dummy window
HWND hWnd = User32Util.createWindow("Message", null, 0, 0, 0, 0, 0, null, null, null, null);
HDC hdc = User32.INSTANCE.GetDC(hWnd);
// set a compatible pixel format
PIXELFORMATDESCRIPTOR.ByReference pfd = new PIXELFORMATDESCRIPTOR.ByReference();
pfd.nVersion = 1;
pfd.dwFlags = WinGDI.PFD_DRAW_TO_WINDOW | WinGDI.PFD_SUPPORT_OPENGL | WinGDI.PFD_DOUBLEBUFFER;
pfd.iPixelType = WinGDI.PFD_TYPE_RGBA;
pfd.cColorBits = 24;
pfd.cDepthBits = 16;
pfd.iLayerType = WinGDI.PFD_MAIN_PLANE;
GDI32.INSTANCE.SetPixelFormat(hdc, GDI32.INSTANCE.ChoosePixelFormat(hdc, pfd), pfd);
// create the OpenGL context
WinDef.HGLRC hGLRC = OpenGL32.INSTANCE.wglCreateContext(hdc);
OpenGL32.INSTANCE.wglMakeCurrent(hdc, hGLRC);
String glString = OpenGL32.INSTANCE.glGetString(GL.GL_VERSION);
System.out.println("GL_VERSION=" + glString);
OpenGL32.INSTANCE.wglDeleteContext(hGLRC);
// destroy the window
User32.INSTANCE.ReleaseDC(hWnd, hdc);
User32Util.destroyWindow(hWnd);
assertNotNull("Could not get GL_VERSION", glString);
}
use of com.sun.jna.platform.win32.WinDef.HWND in project jna by java-native-access.
the class OpenGL32Test method testGetStringGLRenderer.
public void testGetStringGLRenderer() {
// create a dummy window
HWND hWnd = User32Util.createWindow("Message", null, 0, 0, 0, 0, 0, null, null, null, null);
HDC hdc = User32.INSTANCE.GetDC(hWnd);
// set a compatible pixel format
PIXELFORMATDESCRIPTOR.ByReference pfd = new PIXELFORMATDESCRIPTOR.ByReference();
pfd.nVersion = 1;
pfd.dwFlags = WinGDI.PFD_DRAW_TO_WINDOW | WinGDI.PFD_SUPPORT_OPENGL | WinGDI.PFD_DOUBLEBUFFER;
pfd.iPixelType = WinGDI.PFD_TYPE_RGBA;
pfd.cColorBits = 24;
pfd.cDepthBits = 16;
pfd.iLayerType = WinGDI.PFD_MAIN_PLANE;
GDI32.INSTANCE.SetPixelFormat(hdc, GDI32.INSTANCE.ChoosePixelFormat(hdc, pfd), pfd);
// create the OpenGL context
WinDef.HGLRC hGLRC = OpenGL32.INSTANCE.wglCreateContext(hdc);
OpenGL32.INSTANCE.wglMakeCurrent(hdc, hGLRC);
String glString = OpenGL32.INSTANCE.glGetString(GL.GL_RENDERER);
System.out.println("GL_RENDERER=" + glString);
OpenGL32.INSTANCE.wglDeleteContext(hGLRC);
// destroy the window
User32.INSTANCE.ReleaseDC(hWnd, hdc);
User32Util.destroyWindow(hWnd);
//assertNotNull("Could not get GL_RENDERER", glString);
}
use of com.sun.jna.platform.win32.WinDef.HWND in project jna by java-native-access.
the class GDI32UtilTest method testGetScreenshot.
@Test
public void testGetScreenshot() {
HWND desktopWindow = User32.INSTANCE.GetDesktopWindow();
assertNotNull("Failed to obtain desktop window handle", desktopWindow);
BufferedImage image = GDI32Util.getScreenshot(desktopWindow);
// Since this test involves taking a whole-desktop screenshot
// we can't be sure what the image will be exactly.
// We'll validate that the image is "good"
// by checking for 20 distinct colors.
// BufferedImages normally start life as one uniform color
// so if that's not the case then some data was indeed copied over as a result of the getScreenshot() function.
List<Integer> distinctPixels = new ArrayList<Integer>();
for (int x = 0; x < image.getWidth(); x++) {
for (int y = 0; y < image.getHeight(); y++) {
int pixel = image.getRGB(x, y);
if (!distinctPixels.contains(pixel)) {
distinctPixels.add(pixel);
}
if (distinctPixels.size() > 20) {
break;
}
}
}
assertTrue("Number of distinct pixels was not above 20.", distinctPixels.size() > 20);
}
use of com.sun.jna.platform.win32.WinDef.HWND in project jna by java-native-access.
the class Shell32Util method getFolderPath.
/**
* Get a special folder path.
* @param hwnd
* Parent window.
* @param nFolder
* Folder CSLID.
* @param dwFlags
* Flags.
* @return
* Special folder.
*/
public static String getFolderPath(HWND hwnd, int nFolder, DWORD dwFlags) {
char[] pszPath = new char[WinDef.MAX_PATH];
HRESULT hr = Shell32.INSTANCE.SHGetFolderPath(hwnd, nFolder, null, dwFlags, pszPath);
if (!hr.equals(W32Errors.S_OK)) {
throw new Win32Exception(hr);
}
return Native.toString(pszPath);
}
Aggregations