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

com.github.markusbernhardt.proxy.jna.win.WinHttpCurrentUserIEProxyConfig Maven / Gradle / Ivy

package com.github.markusbernhardt.proxy.jna.win;

import java.util.Arrays;
import java.util.List;

import com.sun.jna.Pointer;
import com.sun.jna.Structure;
import com.sun.jna.platform.win32.WTypes;

/**
 * The WINHTTP_CURRENT_USER_IE_PROXY_CONFIG structure contains the Internet
 * Explorer proxy configuration information.
 * 
 * @author Markus Bernhardt, Copyright 2016
 */
public class WinHttpCurrentUserIEProxyConfig extends Structure {

	/**
	 * If TRUE, indicates that the Internet Explorer proxy configuration for the
	 * current user specifies "automatically detect settings".
	 */
	public boolean fAutoDetect;

	/**
	 * Pointer to a null-terminated Unicode string that contains the
	 * auto-configuration URL if the Internet Explorer proxy configuration for
	 * the current user specifies "Use automatic proxy configuration".
	 */
	public WTypes.LPWSTR lpszAutoConfigUrl;

	/**
	 * Pointer to a null-terminated Unicode string that contains the proxy URL
	 * if the Internet Explorer proxy configuration for the current user
	 * specifies "use a proxy server".
	 */
	public WTypes.LPWSTR lpszProxy;

	/**
	 * Pointer to a null-terminated Unicode string that contains the optional
	 * proxy by-pass server list.
	 */
	public WTypes.LPWSTR lpszProxyBypass;

	/**
	 * Create WinHttpCurrentUserIeProxyConfig structure.
	 */
	public WinHttpCurrentUserIEProxyConfig() {
		super();
	}

	/**
	 * Create WinHttpCurrentUserIeProxyConfig structure cast onto pre-allocated
	 * memory.
	 * 
	 * @param pointer
	 *            pointer to pre-allocated memory
	 */
	public WinHttpCurrentUserIEProxyConfig(Pointer pointer) {
		super(pointer);
		read();
	}

	/**
	 * Return this Structure's field names in their proper order. For example,
	 * 
	 * 
	 * 
	 * protected List getFieldOrder() {
	 *     return Arrays.asList(new String[] { ... });
	 * }
	 * 
	 * 
* * IMPORTANT When deriving from an existing Structure * subclass, ensure that you augment the list provided by the superclass, * e.g. * *
	 * 
	 * protected List getFieldOrder() {
	 *     List fields = new ArrayList(super.getFieldOrder());
	 *     fields.addAll(Arrays.asList(new String[] { ... }));
	 *     return fields;
	 * }
	 * 
	 * 
* * Field order must be explicitly indicated, since the field order as * returned by {@link Class#getFields()} is not guaranteed to be * predictable. * * @return ordered list of field names */ @Override protected List getFieldOrder() { return Arrays.asList("fAutoDetect", "lpszAutoConfigUrl", "lpszProxy", "lpszProxyBypass"); } /** * Tagging interface to indicate the address of an instance of the Structure * type is to be used within a Structure definition rather than * nesting the full Structure contents. The default behavior is to inline * Structure fields. */ public static class ByReference extends WinHttpProxyInfo implements Structure.ByReference { } /** * Tagging interface to indicate the value of an instance of the * Structure type is to be used in function invocations rather * than its address. The default behavior is to treat Structure * function parameters and return values as by reference, meaning the * address of the structure is used. */ public static class ByValue extends WinHttpProxyInfo implements Structure.ByValue { } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy