Search in sources :

Example 11 with BYTE

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

the class GuidTest method testGUIDFromBinary.

/**
	 * Loads a GUID from a byte array and verify that the guid returned has the
	 * expected values in each byte.
	 */
public void testGUIDFromBinary() {
    byte[] sourceGuidBArr = new byte[] { (byte) 0xA5, (byte) 0xDC, (byte) 0xBF, (byte) 0x10, (byte) 0x65, (byte) 0x30, (byte) 0x11, (byte) 0xD2, (byte) 0x90, (byte) 0x1F, (byte) 0x00, (byte) 0xC0, (byte) 0x4F, (byte) 0xB9, (byte) 0x51, (byte) 0xED };
    // test loading via static method
    GUID targetGuid = GUID.fromBinary(sourceGuidBArr);
    byte[] targetGuidBArr = targetGuid.toByteArray();
    for (int i = 0; i < sourceGuidBArr.length; i++) {
        assertEquals(targetGuidBArr[i], sourceGuidBArr[i]);
    }
}
Also used : GUID(com.sun.jna.platform.win32.Guid.GUID)

Example 12 with BYTE

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

the class Crypt32Util method cryptProtectData.

/**
     * Protect a blob of data.
     * @param data
     *  Data to protect.
     * @param entropy
     *  Optional entropy.
     * @param flags
     *  Optional flags.
     * @param description
     *  Optional description.
     * @param prompt
     *  Prompt structure.
     * @return
     *  Protected bytes.
     */
public static byte[] cryptProtectData(byte[] data, byte[] entropy, int flags, String description, CRYPTPROTECT_PROMPTSTRUCT prompt) {
    DATA_BLOB pDataIn = new DATA_BLOB(data);
    DATA_BLOB pDataProtected = new DATA_BLOB();
    DATA_BLOB pEntropy = (entropy == null) ? null : new DATA_BLOB(entropy);
    try {
        if (!Crypt32.INSTANCE.CryptProtectData(pDataIn, description, pEntropy, null, prompt, flags, pDataProtected)) {
            throw new Win32Exception(Kernel32.INSTANCE.GetLastError());
        }
        return pDataProtected.getData();
    } finally {
        if (pDataProtected.pbData != null) {
            Kernel32Util.freeLocalMemory(pDataProtected.pbData);
        }
    }
}
Also used : DATA_BLOB(com.sun.jna.platform.win32.WinCrypt.DATA_BLOB)

Example 13 with BYTE

use of com.sun.jna.platform.win32.WinDef.BYTE 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 14 with BYTE

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

the class WindowsRegistry method valueExists.

/**
   * Check for existence of a value.
   *
   * @param rootKey root key
   * @param subKeyName key name
   * @param name value name
   * @return true if exists
   */
public static boolean valueExists(REGISTRY_ROOT_KEY rootKey, String subKeyName, String name) {
    //Advapi32 advapi32;
    //IntByReference pType, lpcbData;
    //int handle = 0;
    Advapi32 advapi32 = Advapi32.INSTANCE;
    IntByReference pType = new IntByReference();
    IntByReference lpcbData = new IntByReference();
    HKEY handle = openKey(rootKey, subKeyName, WinNT.KEY_READ);
    byte[] lpData = new byte[1];
    boolean ret = false;
    //if(handle != 0) {
    if (handle != null) {
        //if (advapi32.RegQueryValueEx(handle, name, null, pType, lpData, lpcbData) != WinError.ERROR_FILE_NOT_FOUND) {
        if (advapi32.RegQueryValueEx(handle, name, 0, pType, lpData, lpcbData) != WinError.ERROR_FILE_NOT_FOUND) {
            ret = true;
        } else {
            ret = false;
        }
        advapi32.RegCloseKey(handle);
    }
    return ret;
}
Also used : IntByReference(com.sun.jna.ptr.IntByReference) Advapi32(com.sun.jna.platform.win32.Advapi32) HKEY(com.sun.jna.platform.win32.WinReg.HKEY)

Example 15 with BYTE

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

the class WindowsRegistry method getIntValue.

/**
   * Read an int value.
   *
   * @return int or 0
   * @param rootKey root key
   * @param subKeyName key name
   * @param name value name
   */
public static int getIntValue(REGISTRY_ROOT_KEY rootKey, String subKeyName, String name) {
    Advapi32 advapi32 = Advapi32.INSTANCE;
    IntByReference pType = new IntByReference();
    IntByReference lpcbData = new IntByReference();
    HKEY handle = openKey(rootKey, subKeyName, WinNT.KEY_READ);
    int ret = 0;
    byte[] lpData = new byte[1];
    //if(handle != 0) {
    if (handle != null) {
        //if (advapi32.RegQueryValueEx(handle, name, null, pType, lpData, lpcbData) == WinError.ERROR_MORE_DATA) {
        if (advapi32.RegQueryValueEx(handle, name, 0, pType, lpData, lpcbData) == WinError.ERROR_MORE_DATA) {
            lpData = new byte[lpcbData.getValue()];
            //if(advapi32.RegQueryValueEx(handle, name, null, pType, lpData, lpcbData) == WinError.ERROR_SUCCESS) {
            if (advapi32.RegQueryValueEx(handle, name, 0, pType, lpData, lpcbData) == WinError.ERROR_SUCCESS) {
                ret = convertBufferToInt(lpData);
            }
        }
        advapi32.RegCloseKey(handle);
    }
    return ret;
}
Also used : IntByReference(com.sun.jna.ptr.IntByReference) Advapi32(com.sun.jna.platform.win32.Advapi32) HKEY(com.sun.jna.platform.win32.WinReg.HKEY)

Aggregations

IntByReference (com.sun.jna.ptr.IntByReference)12 Pointer (com.sun.jna.Pointer)8 HANDLE (com.sun.jna.platform.win32.WinNT.HANDLE)8 Advapi32 (com.sun.jna.platform.win32.Advapi32)6 HKEY (com.sun.jna.platform.win32.WinReg.HKEY)6 PointerByReference (com.sun.jna.ptr.PointerByReference)5 Memory (com.sun.jna.Memory)4 GUID (com.sun.jna.platform.win32.Guid.GUID)4 BSTR (com.sun.jna.platform.win32.WTypes.BSTR)4 File (java.io.File)4 Date (java.util.Date)4 Test (org.junit.Test)4 DATE (com.sun.jna.platform.win32.OaIdl.DATE)3 VARIANT (com.sun.jna.platform.win32.Variant.VARIANT)3 FE_EXPORT_FUNC (com.sun.jna.platform.win32.WinBase.FE_EXPORT_FUNC)3 BYTE (com.sun.jna.platform.win32.WinDef.BYTE)3 CHAR (com.sun.jna.platform.win32.WinDef.CHAR)3 DWORD (com.sun.jna.platform.win32.WinDef.DWORD)3 LONG (com.sun.jna.platform.win32.WinDef.LONG)3 SHORT (com.sun.jna.platform.win32.WinDef.SHORT)3