All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sun.jna.win32.W32APIOptions Maven / Gradle / Ivy

There is a newer version: 1.50.0
Show newest version
/*
 * The contents of this file is dual-licensed under 2
 * alternative Open Source/Free licenses: LGPL 2.1 or later and
 * Apache License 2.0. (starting with JNA version 4.0.0).
 *
 * You can freely decide which license you want to apply to
 * the project.
 *
 * You may obtain a copy of the LGPL License at:
 *
 * http://www.gnu.org/licenses/licenses.html
 *
 * A copy is also included in the downloadable source code package
 * containing JNA, in file "LGPL2.1".
 *
 * You may obtain a copy of the Apache License at:
 *
 * http://www.apache.org/licenses/
 *
 * A copy is also included in the downloadable source code package
 * containing JNA, in file "AL2.0".
 */
package com.sun.jna.win32;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public interface W32APIOptions extends StdCallLibrary {
    /** Standard options to use the unicode version of a w32 API. */
    Map UNICODE_OPTIONS = Collections.unmodifiableMap(new HashMap() {
        private static final long serialVersionUID = 1L;    // we're not serializing it

        {
            put(OPTION_TYPE_MAPPER, W32APITypeMapper.UNICODE);
            put(OPTION_FUNCTION_MAPPER, W32APIFunctionMapper.UNICODE);
        }
    });

    /** Standard options to use the ASCII/MBCS version of a w32 API. */
    Map ASCII_OPTIONS = Collections.unmodifiableMap(new HashMap() {
        private static final long serialVersionUID = 1L;    // we're not serializing it
        {
            put(OPTION_TYPE_MAPPER, W32APITypeMapper.ASCII);
            put(OPTION_FUNCTION_MAPPER, W32APIFunctionMapper.ASCII);
        }
    });

    /** Default options to use - depends on the value of {@code w32.ascii} system property */
    Map DEFAULT_OPTIONS = Boolean.getBoolean("w32.ascii") ? ASCII_OPTIONS : UNICODE_OPTIONS;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy