51 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
| package ieproxy
 | |
| 
 | |
| import "golang.org/x/sys/windows"
 | |
| 
 | |
| var winHttp = windows.NewLazySystemDLL("winhttp.dll")
 | |
| var winHttpGetProxyForURL = winHttp.NewProc("WinHttpGetProxyForUrl")
 | |
| var winHttpOpen = winHttp.NewProc("WinHttpOpen")
 | |
| var winHttpCloseHandle = winHttp.NewProc("WinHttpCloseHandle")
 | |
| var winHttpGetIEProxyConfigForCurrentUser = winHttp.NewProc("WinHttpGetIEProxyConfigForCurrentUser")
 | |
| 
 | |
| type tWINHTTP_AUTOPROXY_OPTIONS struct {
 | |
| 	dwFlags                autoProxyFlag
 | |
| 	dwAutoDetectFlags      autoDetectFlag
 | |
| 	lpszAutoConfigUrl      *uint16
 | |
| 	lpvReserved            *uint16
 | |
| 	dwReserved             uint32
 | |
| 	fAutoLogonIfChallenged bool
 | |
| }
 | |
| type autoProxyFlag uint32
 | |
| 
 | |
| const (
 | |
| 	fWINHTTP_AUTOPROXY_AUTO_DETECT         = autoProxyFlag(0x00000001)
 | |
| 	fWINHTTP_AUTOPROXY_CONFIG_URL          = autoProxyFlag(0x00000002)
 | |
| 	fWINHTTP_AUTOPROXY_NO_CACHE_CLIENT     = autoProxyFlag(0x00080000)
 | |
| 	fWINHTTP_AUTOPROXY_NO_CACHE_SVC        = autoProxyFlag(0x00100000)
 | |
| 	fWINHTTP_AUTOPROXY_NO_DIRECTACCESS     = autoProxyFlag(0x00040000)
 | |
| 	fWINHTTP_AUTOPROXY_RUN_INPROCESS       = autoProxyFlag(0x00010000)
 | |
| 	fWINHTTP_AUTOPROXY_RUN_OUTPROCESS_ONLY = autoProxyFlag(0x00020000)
 | |
| 	fWINHTTP_AUTOPROXY_SORT_RESULTS        = autoProxyFlag(0x00400000)
 | |
| )
 | |
| 
 | |
| type autoDetectFlag uint32
 | |
| 
 | |
| const (
 | |
| 	fWINHTTP_AUTO_DETECT_TYPE_DHCP  = autoDetectFlag(0x00000001)
 | |
| 	fWINHTTP_AUTO_DETECT_TYPE_DNS_A = autoDetectFlag(0x00000002)
 | |
| )
 | |
| 
 | |
| type tWINHTTP_PROXY_INFO struct {
 | |
| 	dwAccessType    uint32
 | |
| 	lpszProxy       *uint16
 | |
| 	lpszProxyBypass *uint16
 | |
| }
 | |
| 
 | |
| type tWINHTTP_CURRENT_USER_IE_PROXY_CONFIG struct {
 | |
| 	fAutoDetect       bool
 | |
| 	lpszAutoConfigUrl *uint16
 | |
| 	lpszProxy         *uint16
 | |
| 	lpszProxyBypass   *uint16
 | |
| }
 |