Search in sources :

Example 11 with CHAR

use of com.sun.jna.platform.win32.WinDef.CHAR in project jna by java-native-access.

the class Kernel32Test method testGetPrivateProfileString.

public final void testGetPrivateProfileString() throws IOException {
    final File tmp = File.createTempFile("testGetPrivateProfileString", ".ini");
    tmp.deleteOnExit();
    final PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(tmp)));
    writer.println("[Section]");
    writer.println("existingKey = ABC");
    writer.close();
    final char[] buffer = new char[8];
    DWORD len = Kernel32.INSTANCE.GetPrivateProfileString("Section", "existingKey", "DEF", buffer, new DWORD(buffer.length), tmp.getCanonicalPath());
    assertEquals(3, len.intValue());
    assertEquals("ABC", Native.toString(buffer));
    len = Kernel32.INSTANCE.GetPrivateProfileString("Section", "missingKey", "DEF", buffer, new DWORD(buffer.length), tmp.getCanonicalPath());
    assertEquals(3, len.intValue());
    assertEquals("DEF", Native.toString(buffer));
}
Also used : FileWriter(java.io.FileWriter) DWORD(com.sun.jna.platform.win32.WinDef.DWORD) File(java.io.File) PrintWriter(java.io.PrintWriter) BufferedWriter(java.io.BufferedWriter)

Example 12 with CHAR

use of com.sun.jna.platform.win32.WinDef.CHAR in project jna by java-native-access.

the class Convert method toVariant.

/**
         * Convert a java value into a VARIANT suitable for passing in a COM
         * invocation.
         * 
         * <p><i>Implementation notes</i></p>
         * 
         * <ul>
         * <li>VARIANTs are not rewrapped, but passed through unmodified</li>
         * <li>A string is wrapped into a BSTR, that is wrapped into the VARIANT.
         *  The string is allocated as native memory by the VARIANT constructor.
         *  The BSTR needs to be freed by {@link com.sun.jna.platform.win32.OleAuto#SysFreeString}.</li>
         * </ul>
         * 
         * @param value to be wrapped
         * @return wrapped VARIANT
         */
public static VARIANT toVariant(Object value) {
    if (value instanceof VARIANT) {
        return (VARIANT) value;
    } else if (value instanceof BSTR) {
        return new VARIANT((BSTR) value);
    } else if (value instanceof VARIANT_BOOL) {
        return new VARIANT((VARIANT_BOOL) value);
    } else if (value instanceof BOOL) {
        return new VARIANT((BOOL) value);
    } else if (value instanceof LONG) {
        return new VARIANT((LONG) value);
    } else if (value instanceof SHORT) {
        return new VARIANT((SHORT) value);
    } else if (value instanceof DATE) {
        return new VARIANT((DATE) value);
    } else if (value instanceof BYTE) {
        return new VARIANT((BYTE) value);
    } else if (value instanceof Byte) {
        return new VARIANT((Byte) value);
    } else if (value instanceof Character) {
        return new VARIANT((Character) value);
    } else if (value instanceof CHAR) {
        return new VARIANT((CHAR) value);
    } else if (value instanceof Short) {
        return new VARIANT((Short) value);
    } else if (value instanceof Integer) {
        return new VARIANT((Integer) value);
    } else if (value instanceof Long) {
        return new VARIANT((Long) value);
    } else if (value instanceof Float) {
        return new VARIANT((Float) value);
    } else if (value instanceof Double) {
        return new VARIANT((Double) value);
    } else if (value instanceof String) {
        return new VARIANT((String) value);
    } else if (value instanceof Boolean) {
        return new VARIANT((Boolean) value);
    } else if (value instanceof com.sun.jna.platform.win32.COM.IDispatch) {
        return new VARIANT((com.sun.jna.platform.win32.COM.IDispatch) value);
    } else if (value instanceof Date) {
        return new VARIANT((Date) value);
    } else if (value instanceof Proxy) {
        InvocationHandler ih = Proxy.getInvocationHandler(value);
        ProxyObject pobj = (ProxyObject) ih;
        return new VARIANT(pobj.getRawDispatch());
    } else if (value instanceof IComEnum) {
        IComEnum enm = (IComEnum) value;
        return new VARIANT(new WinDef.LONG(enm.getValue()));
    } else if (value instanceof SAFEARRAY) {
        return new VARIANT((SAFEARRAY) value);
    } else {
        return null;
    }
}
Also used : SAFEARRAY(com.sun.jna.platform.win32.OaIdl.SAFEARRAY) VARIANT_BOOL(com.sun.jna.platform.win32.OaIdl.VARIANT_BOOL) CHAR(com.sun.jna.platform.win32.WinDef.CHAR) VARIANT(com.sun.jna.platform.win32.Variant.VARIANT) VT_VARIANT(com.sun.jna.platform.win32.Variant.VT_VARIANT) VT_BSTR(com.sun.jna.platform.win32.Variant.VT_BSTR) BSTR(com.sun.jna.platform.win32.WTypes.BSTR) Proxy(java.lang.reflect.Proxy) BYTE(com.sun.jna.platform.win32.WinDef.BYTE) LONG(com.sun.jna.platform.win32.WinDef.LONG) InvocationHandler(java.lang.reflect.InvocationHandler) Date(java.util.Date) SHORT(com.sun.jna.platform.win32.WinDef.SHORT) DATE(com.sun.jna.platform.win32.OaIdl.DATE) VT_DATE(com.sun.jna.platform.win32.Variant.VT_DATE) VARIANT_BOOL(com.sun.jna.platform.win32.OaIdl.VARIANT_BOOL) BOOL(com.sun.jna.platform.win32.WinDef.BOOL) VT_BOOL(com.sun.jna.platform.win32.Variant.VT_BOOL)

Example 13 with CHAR

use of com.sun.jna.platform.win32.WinDef.CHAR in project jna by java-native-access.

the class Ole32Util method getStringFromGUID.

/**
	 * Convert a GUID into a string.
	 * @param guid
	 *  GUID.
	 * @return
	 *  String representation of a GUID.
	 */
public static String getStringFromGUID(GUID guid) {
    GUID pguid = new GUID(guid.getPointer());
    int max = 39;
    char[] lpsz = new char[max];
    int len = Ole32.INSTANCE.StringFromGUID2(pguid, lpsz, max);
    if (len == 0) {
        throw new RuntimeException("StringFromGUID2");
    }
    lpsz[len - 1] = 0;
    return Native.toString(lpsz);
}
Also used : GUID(com.sun.jna.platform.win32.Guid.GUID)

Example 14 with CHAR

use of com.sun.jna.platform.win32.WinDef.CHAR 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);
}
Also used : HRESULT(com.sun.jna.platform.win32.WinNT.HRESULT)

Example 15 with CHAR

use of com.sun.jna.platform.win32.WinDef.CHAR in project processing by processing.

the class WindowsRegistry method getSubKeys.

/**
   * Get all sub keys of a key.
   *
   * @param rootKey root key
   * @param parent key name
   * @return array with all sub key names
   */
public static String[] getSubKeys(REGISTRY_ROOT_KEY rootKey, String parent) {
    //Advapi32 advapi32;
    //int handle = 0, dwIndex;
    //char[] lpName;
    //IntByReference lpcName;
    //WinBase.FILETIME lpftLastWriteTime;
    TreeSet<String> subKeys = new TreeSet<String>();
    Advapi32 advapi32 = Advapi32.INSTANCE;
    HKEY handle = openKey(rootKey, parent, WinNT.KEY_READ);
    char[] lpName = new char[256];
    IntByReference lpcName = new IntByReference(256);
    WinBase.FILETIME lpftLastWriteTime = new WinBase.FILETIME();
    //if(handle != 0) {
    if (handle != null) {
        int dwIndex = 0;
        while (advapi32.RegEnumKeyEx(handle, dwIndex, lpName, lpcName, null, null, null, lpftLastWriteTime) == WinError.ERROR_SUCCESS) {
            subKeys.add(new String(lpName, 0, lpcName.getValue()));
            lpcName.setValue(256);
            dwIndex++;
        }
        advapi32.RegCloseKey(handle);
    }
    return subKeys.toArray(new String[] {});
}
Also used : IntByReference(com.sun.jna.ptr.IntByReference) Advapi32(com.sun.jna.platform.win32.Advapi32) WinBase(com.sun.jna.platform.win32.WinBase) TreeSet(java.util.TreeSet) HKEY(com.sun.jna.platform.win32.WinReg.HKEY)

Aggregations

IntByReference (com.sun.jna.ptr.IntByReference)15 HKEYByReference (com.sun.jna.platform.win32.WinReg.HKEYByReference)7 HANDLE (com.sun.jna.platform.win32.WinNT.HANDLE)5 VARIANT (com.sun.jna.platform.win32.Variant.VARIANT)4 DWORD (com.sun.jna.platform.win32.WinDef.DWORD)4 File (java.io.File)4 Test (org.junit.Test)4 Memory (com.sun.jna.Memory)3 BSTR (com.sun.jna.platform.win32.WTypes.BSTR)3 BYTE (com.sun.jna.platform.win32.WinDef.BYTE)3 CHAR (com.sun.jna.platform.win32.WinDef.CHAR)3 LONG (com.sun.jna.platform.win32.WinDef.LONG)3 SHORT (com.sun.jna.platform.win32.WinDef.SHORT)3 PSID (com.sun.jna.platform.win32.WinNT.PSID)3 PointerByReference (com.sun.jna.ptr.PointerByReference)3 BufferedWriter (java.io.BufferedWriter)3 FileWriter (java.io.FileWriter)3 PrintWriter (java.io.PrintWriter)3 Pointer (com.sun.jna.Pointer)2 Advapi32 (com.sun.jna.platform.win32.Advapi32)2