VB6(SP6)でWinHttpGetProxyForUrlを使いたいのですが、パラメータエラーが出てしまいます。
いろいろ調べているのですが現状エラーを修正できません。
どのように修正すべきか御教授いただけますでしょうか
----------
Private Const WINHTTP_ACCESS_TYPE_DEFAULT_PROXY = 0
Private Const WINHTTP_NO_PROXY_NAME = 0
Private Const WINHTTP_NO_PROXY_BYPASS = 0
Private Const WINHTTP_FLAG_ASYNC = &H10000000
Private Const WINHTTP_AUTOPROXY_CONFIG_URL = &H2
Private Declare Function WinHttpOpen Lib "winhttp.dll" _
(ByVal pwszUserAgent As String, _
ByVal dwAccessType As Long, _
ByVal pwszProxyName As String, _
ByVal pwszProxyBypass As String, _
ByVal dwFlags As Long) As Long
Private Type WINHTTP_AUTOPROXY_OPTIONS
dwFlags As Long
dwAutoDetectFlags As Long
lpszAutoConfigUrl As String
lpvReserved As Long
dwReserved As Long
fAutoLogonIfChallenged As Long
End Type
Private Type WINHTTP_PROXY_INFO
dwAccessType As Long
lpszProxy As Long
lpszProxyBypass As Long
End Type
Private Declare Function WinHttpGetProxyForUrl Lib "winhttp.dll" _
(ByVal hSession As Long, _
ByVal lpcwszUrl As String, _
ByRef autoproxyOptions As WINHTTP_AUTOPROXY_OPTIONS, _
ByRef proxyInfo As WINHTTP_PROXY_INFO) As Boolean
Dim session As Long
session = WinHttpOpen(0, WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, WINHTTP_FLAG_ASYNC)
Dim autoproxyOptions As WINHTTP_AUTOPROXY_OPTIONS
autoproxyOptions.dwFlags = WINHTTP_AUTOPROXY_CONFIG_URL
autoproxyOptions.dwAutoDetectFlags = 0
autoproxyOptions.lpszAutoConfigUrl = ""
autoproxyOptions.lpvReserved = 0
autoproxyOptions.dwReserved = 0
autoproxyOptions.fAutoLogonIfChallenged = 0
Dim proxyInfo As WINHTTP_PROXY_INFO
proxyInfo.dwAccessType = 0
proxyInfo.lpszProxy = 0
proxyInfo.lpszProxyBypass = 0
WinHttpGetProxyForUrl(session, "http://www.yahoo.co.jp/", autoproxyOptions, proxyInfo)
----------
WinHttpOpenはうまくいきますが、WinHttpGetProxyForUrlでは
Err.LastDllErrorの値が87で「パラメータが間違っています。」になります。
よろしくお願いします。
もう解決したかもしれませんが……
WinHttpOpen() の最後の引数は、WINHTTP_FLAG_ASYNCは必要なのですか?
必要であれば、WinHttpSetStatusCallback()にてコールバック関数の設定をしていないためにパラメタエラーになるのではないでしょうか。
また、WINHTTP_FLAG_ASYNCは特にいらないのであれば、0を指定すればいいのではないでしょうか。
間違っていたらごめんなさい。
ありがとうございます。
確かに最後の引数は0でした。