ホーム › Networking.WinHttp › WinHttpReadProxySettings
WinHttpReadProxySettings
関数保存されたWinHTTPのプロキシ設定を読み込む。
シグネチャ
// WINHTTP.dll
#include <windows.h>
DWORD WinHttpReadProxySettings(
void* hSession,
LPCWSTR pcwszConnectionName, // optional
BOOL fFallBackToDefaultSettings,
BOOL fSetAutoDiscoverForDefaultSettings,
DWORD* pdwSettingsVersion,
BOOL* pfDefaultSettingsAreReturned,
WINHTTP_PROXY_SETTINGS* pWinHttpProxySettings
);パラメーター
| 名前 | 型 | 方向 |
|---|---|---|
| hSession | void* | in |
| pcwszConnectionName | LPCWSTR | inoptional |
| fFallBackToDefaultSettings | BOOL | in |
| fSetAutoDiscoverForDefaultSettings | BOOL | in |
| pdwSettingsVersion | DWORD* | out |
| pfDefaultSettingsAreReturned | BOOL* | out |
| pWinHttpProxySettings | WINHTTP_PROXY_SETTINGS* | out |
戻り値の型: DWORD
各言語での呼び出し定義
// WINHTTP.dll
#include <windows.h>
DWORD WinHttpReadProxySettings(
void* hSession,
LPCWSTR pcwszConnectionName, // optional
BOOL fFallBackToDefaultSettings,
BOOL fSetAutoDiscoverForDefaultSettings,
DWORD* pdwSettingsVersion,
BOOL* pfDefaultSettingsAreReturned,
WINHTTP_PROXY_SETTINGS* pWinHttpProxySettings
);[DllImport("WINHTTP.dll", ExactSpelling = true)]
static extern uint WinHttpReadProxySettings(
IntPtr hSession, // void*
[MarshalAs(UnmanagedType.LPWStr)] string pcwszConnectionName, // LPCWSTR optional
bool fFallBackToDefaultSettings, // BOOL
bool fSetAutoDiscoverForDefaultSettings, // BOOL
out uint pdwSettingsVersion, // DWORD* out
out int pfDefaultSettingsAreReturned, // BOOL* out
IntPtr pWinHttpProxySettings // WINHTTP_PROXY_SETTINGS* out
);<DllImport("WINHTTP.dll", ExactSpelling:=True)>
Public Shared Function WinHttpReadProxySettings(
hSession As IntPtr, ' void*
<MarshalAs(UnmanagedType.LPWStr)> pcwszConnectionName As String, ' LPCWSTR optional
fFallBackToDefaultSettings As Boolean, ' BOOL
fSetAutoDiscoverForDefaultSettings As Boolean, ' BOOL
<Out> ByRef pdwSettingsVersion As UInteger, ' DWORD* out
<Out> ByRef pfDefaultSettingsAreReturned As Integer, ' BOOL* out
pWinHttpProxySettings As IntPtr ' WINHTTP_PROXY_SETTINGS* out
) As UInteger
End Function' hSession : void*
' pcwszConnectionName : LPCWSTR optional
' fFallBackToDefaultSettings : BOOL
' fSetAutoDiscoverForDefaultSettings : BOOL
' pdwSettingsVersion : DWORD* out
' pfDefaultSettingsAreReturned : BOOL* out
' pWinHttpProxySettings : WINHTTP_PROXY_SETTINGS* out
Declare PtrSafe Function WinHttpReadProxySettings Lib "winhttp" ( _
ByVal hSession As LongPtr, _
ByVal pcwszConnectionName As LongPtr, _
ByVal fFallBackToDefaultSettings As Long, _
ByVal fSetAutoDiscoverForDefaultSettings As Long, _
ByRef pdwSettingsVersion As Long, _
ByRef pfDefaultSettingsAreReturned As Long, _
ByVal pWinHttpProxySettings As LongPtr) As Long
' VBA7前提(PtrSafe)。32bit Office では LongPtr→Long。Integer=16bit / Long=32bit / LongLong=64bit。import ctypes
from ctypes import wintypes
WinHttpReadProxySettings = ctypes.windll.winhttp.WinHttpReadProxySettings
WinHttpReadProxySettings.restype = wintypes.DWORD
WinHttpReadProxySettings.argtypes = [
ctypes.POINTER(None), # hSession : void*
wintypes.LPCWSTR, # pcwszConnectionName : LPCWSTR optional
wintypes.BOOL, # fFallBackToDefaultSettings : BOOL
wintypes.BOOL, # fSetAutoDiscoverForDefaultSettings : BOOL
ctypes.POINTER(wintypes.DWORD), # pdwSettingsVersion : DWORD* out
ctypes.c_void_p, # pfDefaultSettingsAreReturned : BOOL* out
ctypes.c_void_p, # pWinHttpProxySettings : WINHTTP_PROXY_SETTINGS* out
]require 'fiddle'
require 'fiddle/import'
lib = Fiddle.dlopen('WINHTTP.dll')
WinHttpReadProxySettings = Fiddle::Function.new(
lib['WinHttpReadProxySettings'],
[
Fiddle::TYPE_VOIDP, # hSession : void*
Fiddle::TYPE_VOIDP, # pcwszConnectionName : LPCWSTR optional
Fiddle::TYPE_INT, # fFallBackToDefaultSettings : BOOL
Fiddle::TYPE_INT, # fSetAutoDiscoverForDefaultSettings : BOOL
Fiddle::TYPE_VOIDP, # pdwSettingsVersion : DWORD* out
Fiddle::TYPE_VOIDP, # pfDefaultSettingsAreReturned : BOOL* out
Fiddle::TYPE_VOIDP, # pWinHttpProxySettings : WINHTTP_PROXY_SETTINGS* out
],
-Fiddle::TYPE_INT)#[link(name = "winhttp")]
extern "system" {
fn WinHttpReadProxySettings(
hSession: *mut (), // void*
pcwszConnectionName: *const u16, // LPCWSTR optional
fFallBackToDefaultSettings: i32, // BOOL
fSetAutoDiscoverForDefaultSettings: i32, // BOOL
pdwSettingsVersion: *mut u32, // DWORD* out
pfDefaultSettingsAreReturned: *mut i32, // BOOL* out
pWinHttpProxySettings: *mut WINHTTP_PROXY_SETTINGS // WINHTTP_PROXY_SETTINGS* out
) -> u32;
}
// crates: windows-sys provides ready-made bindings for this API.$sig = @"
[DllImport("WINHTTP.dll")]
public static extern uint WinHttpReadProxySettings(IntPtr hSession, [MarshalAs(UnmanagedType.LPWStr)] string pcwszConnectionName, bool fFallBackToDefaultSettings, bool fSetAutoDiscoverForDefaultSettings, out uint pdwSettingsVersion, out int pfDefaultSettingsAreReturned, IntPtr pWinHttpProxySettings);
"@
$api = Add-Type -MemberDefinition $sig -Name 'WINHTTP_WinHttpReadProxySettings' -Namespace Win32 -PassThru
# $api::WinHttpReadProxySettings(hSession, pcwszConnectionName, fFallBackToDefaultSettings, fSetAutoDiscoverForDefaultSettings, pdwSettingsVersion, pfDefaultSettingsAreReturned, pWinHttpProxySettings)#uselib "WINHTTP.dll"
#func global WinHttpReadProxySettings "WinHttpReadProxySettings" sptr, sptr, sptr, sptr, sptr, sptr, sptr
; WinHttpReadProxySettings hSession, pcwszConnectionName, fFallBackToDefaultSettings, fSetAutoDiscoverForDefaultSettings, varptr(pdwSettingsVersion), pfDefaultSettingsAreReturned, varptr(pWinHttpProxySettings) ; 戻り値は stat
; hSession : void* -> "sptr"
; pcwszConnectionName : LPCWSTR optional -> "sptr"
; fFallBackToDefaultSettings : BOOL -> "sptr"
; fSetAutoDiscoverForDefaultSettings : BOOL -> "sptr"
; pdwSettingsVersion : DWORD* out -> "sptr"
; pfDefaultSettingsAreReturned : BOOL* out -> "sptr"
; pWinHttpProxySettings : WINHTTP_PROXY_SETTINGS* out -> "sptr"
; ※HSP3.7は #func のため戻り値はシステム変数 stat に格納されます。出力引数:
#uselib "WINHTTP.dll" #cfunc global WinHttpReadProxySettings "WinHttpReadProxySettings" sptr, wstr, int, int, var, int, var ; res = WinHttpReadProxySettings(hSession, pcwszConnectionName, fFallBackToDefaultSettings, fSetAutoDiscoverForDefaultSettings, pdwSettingsVersion, pfDefaultSettingsAreReturned, pWinHttpProxySettings) ; hSession : void* -> "sptr" ; pcwszConnectionName : LPCWSTR optional -> "wstr" ; fFallBackToDefaultSettings : BOOL -> "int" ; fSetAutoDiscoverForDefaultSettings : BOOL -> "int" ; pdwSettingsVersion : DWORD* out -> "var" ; pfDefaultSettingsAreReturned : BOOL* out -> "int" ; pWinHttpProxySettings : WINHTTP_PROXY_SETTINGS* out -> "var" ; ※出力/バッファ引数は var 方式(変数を直接渡す)。varptr 方式にも切替可。#uselib "WINHTTP.dll" #cfunc global WinHttpReadProxySettings "WinHttpReadProxySettings" sptr, wstr, int, int, sptr, int, sptr ; res = WinHttpReadProxySettings(hSession, pcwszConnectionName, fFallBackToDefaultSettings, fSetAutoDiscoverForDefaultSettings, varptr(pdwSettingsVersion), pfDefaultSettingsAreReturned, varptr(pWinHttpProxySettings)) ; hSession : void* -> "sptr" ; pcwszConnectionName : LPCWSTR optional -> "wstr" ; fFallBackToDefaultSettings : BOOL -> "int" ; fSetAutoDiscoverForDefaultSettings : BOOL -> "int" ; pdwSettingsVersion : DWORD* out -> "sptr" ; pfDefaultSettingsAreReturned : BOOL* out -> "int" ; pWinHttpProxySettings : WINHTTP_PROXY_SETTINGS* out -> "sptr" ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。
出力引数:
; DWORD WinHttpReadProxySettings(void* hSession, LPCWSTR pcwszConnectionName, BOOL fFallBackToDefaultSettings, BOOL fSetAutoDiscoverForDefaultSettings, DWORD* pdwSettingsVersion, BOOL* pfDefaultSettingsAreReturned, WINHTTP_PROXY_SETTINGS* pWinHttpProxySettings) #uselib "WINHTTP.dll" #cfunc global WinHttpReadProxySettings "WinHttpReadProxySettings" intptr, wstr, int, int, var, int, var ; res = WinHttpReadProxySettings(hSession, pcwszConnectionName, fFallBackToDefaultSettings, fSetAutoDiscoverForDefaultSettings, pdwSettingsVersion, pfDefaultSettingsAreReturned, pWinHttpProxySettings) ; hSession : void* -> "intptr" ; pcwszConnectionName : LPCWSTR optional -> "wstr" ; fFallBackToDefaultSettings : BOOL -> "int" ; fSetAutoDiscoverForDefaultSettings : BOOL -> "int" ; pdwSettingsVersion : DWORD* out -> "var" ; pfDefaultSettingsAreReturned : BOOL* out -> "int" ; pWinHttpProxySettings : WINHTTP_PROXY_SETTINGS* out -> "var" ; ※出力/バッファ引数は var 方式(変数を直接渡す)。varptr 方式にも切替可。; DWORD WinHttpReadProxySettings(void* hSession, LPCWSTR pcwszConnectionName, BOOL fFallBackToDefaultSettings, BOOL fSetAutoDiscoverForDefaultSettings, DWORD* pdwSettingsVersion, BOOL* pfDefaultSettingsAreReturned, WINHTTP_PROXY_SETTINGS* pWinHttpProxySettings) #uselib "WINHTTP.dll" #cfunc global WinHttpReadProxySettings "WinHttpReadProxySettings" intptr, wstr, int, int, intptr, int, intptr ; res = WinHttpReadProxySettings(hSession, pcwszConnectionName, fFallBackToDefaultSettings, fSetAutoDiscoverForDefaultSettings, varptr(pdwSettingsVersion), pfDefaultSettingsAreReturned, varptr(pWinHttpProxySettings)) ; hSession : void* -> "intptr" ; pcwszConnectionName : LPCWSTR optional -> "wstr" ; fFallBackToDefaultSettings : BOOL -> "int" ; fSetAutoDiscoverForDefaultSettings : BOOL -> "int" ; pdwSettingsVersion : DWORD* out -> "intptr" ; pfDefaultSettingsAreReturned : BOOL* out -> "int" ; pWinHttpProxySettings : WINHTTP_PROXY_SETTINGS* out -> "intptr" ; ※出力/バッファ引数はポインタ方式(token=intptr / 呼び出しは varptr(変数))。
import (
"golang.org/x/sys/windows"
"unsafe"
)
var (
winhttp = windows.NewLazySystemDLL("WINHTTP.dll")
procWinHttpReadProxySettings = winhttp.NewProc("WinHttpReadProxySettings")
)
// hSession (void*), pcwszConnectionName (LPCWSTR optional), fFallBackToDefaultSettings (BOOL), fSetAutoDiscoverForDefaultSettings (BOOL), pdwSettingsVersion (DWORD* out), pfDefaultSettingsAreReturned (BOOL* out), pWinHttpProxySettings (WINHTTP_PROXY_SETTINGS* out)
r1, _, err := procWinHttpReadProxySettings.Call(
uintptr(hSession),
uintptr(unsafe.Pointer(windows.StringToUTF16Ptr(pcwszConnectionName))),
uintptr(fFallBackToDefaultSettings),
uintptr(fSetAutoDiscoverForDefaultSettings),
uintptr(pdwSettingsVersion),
uintptr(pfDefaultSettingsAreReturned),
uintptr(pWinHttpProxySettings),
)
_ = err // syscall.Errno (valid when the call sets last-error)
_ = r1 // DWORDfunction WinHttpReadProxySettings(
hSession: Pointer; // void*
pcwszConnectionName: PWideChar; // LPCWSTR optional
fFallBackToDefaultSettings: BOOL; // BOOL
fSetAutoDiscoverForDefaultSettings: BOOL; // BOOL
pdwSettingsVersion: Pointer; // DWORD* out
pfDefaultSettingsAreReturned: Pointer; // BOOL* out
pWinHttpProxySettings: Pointer // WINHTTP_PROXY_SETTINGS* out
): DWORD; stdcall;
external 'WINHTTP.dll' name 'WinHttpReadProxySettings';result := DllCall("WINHTTP\WinHttpReadProxySettings"
, "Ptr", hSession ; void*
, "WStr", pcwszConnectionName ; LPCWSTR optional
, "Int", fFallBackToDefaultSettings ; BOOL
, "Int", fSetAutoDiscoverForDefaultSettings ; BOOL
, "Ptr", pdwSettingsVersion ; DWORD* out
, "Ptr", pfDefaultSettingsAreReturned ; BOOL* out
, "Ptr", pWinHttpProxySettings ; WINHTTP_PROXY_SETTINGS* out
, "UInt") ; return: DWORD●WinHttpReadProxySettings(hSession, pcwszConnectionName, fFallBackToDefaultSettings, fSetAutoDiscoverForDefaultSettings, pdwSettingsVersion, pfDefaultSettingsAreReturned, pWinHttpProxySettings) = DLL("WINHTTP.dll", "dword WinHttpReadProxySettings(void*, char*, bool, bool, void*, void*, void*)")
# 呼び出し: WinHttpReadProxySettings(hSession, pcwszConnectionName, fFallBackToDefaultSettings, fSetAutoDiscoverForDefaultSettings, pdwSettingsVersion, pfDefaultSettingsAreReturned, pWinHttpProxySettings)
# hSession : void* -> "void*"
# pcwszConnectionName : LPCWSTR optional -> "char*"
# fFallBackToDefaultSettings : BOOL -> "bool"
# fSetAutoDiscoverForDefaultSettings : BOOL -> "bool"
# pdwSettingsVersion : DWORD* out -> "void*"
# pfDefaultSettingsAreReturned : BOOL* out -> "void*"
# pWinHttpProxySettings : WINHTTP_PROXY_SETTINGS* out -> "void*"
# なでしこ1は32bit・ANSI(Shift_JIS)。文字列=char*(ANSI)、ポインタ/ハンドル=void*(4byte)。