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

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

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

import com.sun.jna.LastErrorException;
import com.sun.jna.Native;
import com.sun.jna.platform.win32.WinDef;
import com.sun.jna.win32.StdCallLibrary;
import com.sun.jna.win32.W32APIOptions;

/**
 * WinHttp.dll Interface.
 * 
 * @author Markus Bernhardt, Copyright 2016
 */
public interface WinHttp extends StdCallLibrary {

	WinHttp INSTANCE = Native.load("winhttp", WinHttp.class, W32APIOptions.UNICODE_OPTIONS);

	/**
	 * Use DHCP to locate the proxy auto-configuration file.
	 */
	int WINHTTP_AUTO_DETECT_TYPE_DHCP = 0x00000001;

	/**
	 * Use DNS to attempt to locate the proxy auto-configuration file at a
	 * well-known location on the domain of the local computer.
	 */
	int WINHTTP_AUTO_DETECT_TYPE_DNS_A = 0x00000002;

	/**
	 * Resolves all host names directly without a proxy.
	 */
	int WINHTTP_ACCESS_TYPE_DEFAULT_PROXY = 0;

        /**
         * Returned if WinHTTP was unable to discover the URL of the 
         * Proxy Auto-Configuration (PAC) file using the WPAD method.
         */
	int ERROR_WINHTTP_AUTODETECTION_FAILED = 12180;
        
        
	/**
	 * Retrieves the static proxy or direct configuration from the registry.
	 * WINHTTP_ACCESS_TYPE_DEFAULT_PROXY does not inherit browser proxy
	 * settings. WinHTTP does not share any proxy settings with Internet
	 * Explorer.
	 * 

* The WinHTTP proxy configuration is set by one of these mechanisms. *

    *
  • The proxycfg.exe utility on Windows XP and Windows Server 2003 or * earlier.
  • *
  • The netsh.exe utility on Windows Vista and Windows Server 2008 or * later.
  • *
  • WinHttpSetDefaultProxyConfiguration on all platforms.
  • *
*/ int WINHTTP_ACCESS_TYPE_NO_PROXY = 1; /** * Passes requests to the proxy unless a proxy bypass list is supplied and * the name to be resolved bypasses the proxy. In this case, this function * uses WINHTTP_ACCESS_TYPE_NAMED_PROXY. */ int WINHTTP_ACCESS_TYPE_NAMED_PROXY = 3; /** * The WinHttpDetectAutoProxyConfigUrl function finds the URL for the Proxy * Auto-Configuration (PAC) file. This function reports the URL of the PAC * file, but it does not download the file. * * @param dwAutoDetectFlags * A data type that specifies what protocols to use to locate the * PAC file. If both the DHCP and DNS auto detect flags are set, * DHCP is used first; if no PAC URL is discovered using DHCP, * then DNS is used. Set {@code WINHTTP_AUTO_DETECT_TYPE_DHCP}, * {@code WINHTTP_AUTO_DETECT_TYPE_DNS_A} or both. * @param ppwszAutoConfigUrl * A data type that returns a pointer to a null-terminated * Unicode string that contains the configuration URL that * receives the proxy data. You must free the string pointed to * by ppwszAutoConfigUrl using the GlobalFree function. * * @return {@code true} if successful; otherwise, {@code false}. * @see WinHttpHelpers#detectAutoProxyConfigUrl */ boolean WinHttpDetectAutoProxyConfigUrl( WinDef.DWORD dwAutoDetectFlags, WTypes2.LPWSTRByReference ppwszAutoConfigUrl) throws LastErrorException; /** * The WinHttpGetDefaultProxyConfiguration function retrieves the default * WinHTTP proxy configuration from the registry. * * @param pProxyInfo * A pointer to a variable of type WINHTTP_PROXY_INFO that * receives the default proxy configuration. * @return {@code true} if successful; otherwise, {@code false}. */ boolean WinHttpGetDefaultProxyConfiguration(WinHttpProxyInfo pProxyInfo); /** * The WinHttpGetIEProxyConfigForCurrentUser function retrieves the Internet * Explorer proxy configuration for the current user. * * @param pProxyConfig * A pointer, on input, to a WINHTTP_CURRENT_USER_IE_PROXY_CONFIG * structure. On output, the structure contains the Internet * Explorer proxy settings for the current active network * connection (for example, LAN, dial-up, or VPN connection). * @return {@code true} if successful; otherwise, {@code false}. */ boolean WinHttpGetIEProxyConfigForCurrentUser(WinHttpCurrentUserIEProxyConfig pProxyConfig); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy