HttpQueryInfoで情報を取得できない

ActiveBasicのバグと思われる不具合を発見された方は、こちらから知らせていただけると助かります。
返信する
メッセージ
作成者
西野孝雄

HttpQueryInfoで情報を取得できない

#1 投稿記事 by 西野孝雄 »

件名の通り情報が取得できません。

再現法は、新規プロジェクトをノーマルウインドウベースで作成し、
RADでウインドウにボタンを1個作っておきます。

定義は以下。

コード: 全て選択


Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _
 (ByVal sAgent As BytePtr,ByVal lAccessType As Long, ByVal sProxyName As BytePtr, _
ByVal sProxyBypass As BytePtr,ByVal lFlags As Long) As HANDLE

Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA"  _
(ByVal hInternetSession As HANDLE,ByVal sUrl As BytePtr,ByVal sHeaders As BytePtr, _
ByVal lHeadersLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As HANDLE

Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As VoidPtr) As Integer

Declare Function HttpQueryInfo Lib "wininet.dll" Alias "HttpQueryInfoA" _
(hHttpRequest As HANDLE,dwInfoLevel As Long,lpvBuffer As String, _
ByRef lpdwBufferLength As Long,ByRef lpdwIndex As Long) As Long

Const HTTP_QUERY_LAST_MODIFIED=11
ボタンのコードは以下。

コード: 全て選択


Sub MainWnd_CommandButton1_Click()

	Dim hIOpn As HANDLE
	Dim hIUrl As HANDLE
	Dim buffer As String
	Dim a As Long
	Dim Ret As Long
	Dim Size As Long


	hIOpn = InternetOpen("Test",0,0,0,0)
	If hIOpn = FALSE Then
		MessageBox(0,"InternetOpen","エラー",MB_ICONSTOP or MB_TOPMOST)
		Exit Sub
	End If

	hIUrl = InternetOpenUrl(hIOpn,"http://www.discoversoft.net/",0,0,0,0)
	If hIUrl = FALSE Then
		MessageBox(0,"InternetOpenUrl","エラー",MB_ICONSTOP or MB_TOPMOST)
		Exit Sub
	End If


	buffer = ZeroString(60)
	Size = Len(buffer)
	Ret = HttpQueryInfo(hIUrl,HTTP_QUERY_LAST_MODIFIED,buffer,Size,a)
	If Ret = FALSE Then
		MessageBox(0,"HttpQueryInfo","エラー",MB_ICONSTOP or MB_TOPMOST)
		Exit Sub
	End If

	buffer= MakeStr(buffer)

	InternetCloseHandle(hIOpn)
	InternetCloseHandle(hIUrl)

	MessageBox(0,buffer,"ok?",MB_ICONSTOP or MB_TOPMOST)

End Sub
試した所、Ver4.24.00~4.20.00では、エラーは出ず、MessageBoxには何も表示されません。
デバッグ実行すると、InternetOpenUrlの所で、例外処理 code:6BAと出ますが、何か関係あるのでしょうか。

全く同じコードを、Ver4.13.00でコンパイルすると
Sat, 08 Apr 2006 04:30:53 GMT が取得できました。

バグじゃなくて私のやり方が間違ってたらすいません。

OS WINXP Home SP2
返信する