Search in sources :

Example 1 with ICONINFO

use of com.sun.jna.platform.win32.WinGDI.ICONINFO in project jna by java-native-access.

the class GDI32Test method testGetObject.

public void testGetObject() throws Exception {
    final ICONINFO iconInfo = new ICONINFO();
    final HANDLE hImage = User32.INSTANCE.LoadImage(null, new File(getClass().getResource("/res/test_icon.ico").toURI()).getAbsolutePath(), WinUser.IMAGE_ICON, 0, 0, WinUser.LR_LOADFROMFILE);
    try {
        // obtain test icon from classpath
        if (!User32.INSTANCE.GetIconInfo(new HICON(hImage), iconInfo))
            throw new Exception("Invocation of User32.GetIconInfo() failed: " + Kernel32Util.getLastErrorMessage());
        iconInfo.read();
        // test GetObject method
        BITMAP bmp = new BITMAP();
        int nWrittenBytes = GDI32.INSTANCE.GetObject(iconInfo.hbmColor, bmp.size(), bmp.getPointer());
        bmp.read();
        if (nWrittenBytes <= 0)
            throw new Exception("Detection of bitmap information failed: " + Kernel32Util.getLastErrorMessage());
        // verify that bitmap information was successfully detected
        assertEquals(32, bmp.bmHeight.intValue());
        assertEquals(32, bmp.bmWidth.intValue());
    } finally {
        if (iconInfo.hbmColor != null && iconInfo.hbmColor.getPointer() != Pointer.NULL)
            GDI32.INSTANCE.DeleteObject(iconInfo.hbmColor);
        if (iconInfo.hbmMask != null && iconInfo.hbmMask.getPointer() != Pointer.NULL)
            GDI32.INSTANCE.DeleteObject(iconInfo.hbmMask);
    }
}
Also used : ICONINFO(com.sun.jna.platform.win32.WinGDI.ICONINFO) BITMAP(com.sun.jna.platform.win32.WinGDI.BITMAP) HICON(com.sun.jna.platform.win32.WinDef.HICON) HANDLE(com.sun.jna.platform.win32.WinNT.HANDLE) File(java.io.File)

Example 2 with ICONINFO

use of com.sun.jna.platform.win32.WinGDI.ICONINFO in project jna by java-native-access.

the class User32Test method testGetIconInfo.

@Test
public void testGetIconInfo() throws Exception {
    final ICONINFO iconInfo = new ICONINFO();
    final HANDLE hImage = User32.INSTANCE.LoadImage(null, new File(getClass().getResource("/res/test_icon.ico").toURI()).getAbsolutePath(), WinUser.IMAGE_ICON, 0, 0, WinUser.LR_LOADFROMFILE);
    try {
        // obtain test icon from classpath
        if (!User32.INSTANCE.GetIconInfo(new HICON(hImage), iconInfo))
            throw new Exception("Invocation of User32.GetIconInfo() failed: " + Kernel32Util.getLastErrorMessage());
        iconInfo.read();
    } finally {
        if (iconInfo.hbmColor != null && iconInfo.hbmColor.getPointer() != Pointer.NULL)
            GDI32.INSTANCE.DeleteObject(iconInfo.hbmColor);
        if (iconInfo.hbmMask != null && iconInfo.hbmMask.getPointer() != Pointer.NULL)
            GDI32.INSTANCE.DeleteObject(iconInfo.hbmMask);
    }
}
Also used : ICONINFO(com.sun.jna.platform.win32.WinGDI.ICONINFO) HICON(com.sun.jna.platform.win32.WinDef.HICON) HANDLE(com.sun.jna.platform.win32.WinNT.HANDLE) File(java.io.File) AWTException(java.awt.AWTException) Test(org.junit.Test)

Aggregations

HICON (com.sun.jna.platform.win32.WinDef.HICON)2 ICONINFO (com.sun.jna.platform.win32.WinGDI.ICONINFO)2 HANDLE (com.sun.jna.platform.win32.WinNT.HANDLE)2 File (java.io.File)2 BITMAP (com.sun.jna.platform.win32.WinGDI.BITMAP)1 AWTException (java.awt.AWTException)1 Test (org.junit.Test)1