再現法は、新規プロジェクトをノーマルウインドウベースで作成し、
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
デバッグ実行すると、InternetOpenUrlの所で、例外処理 code:6BAと出ますが、何か関係あるのでしょうか。
全く同じコードを、Ver4.13.00でコンパイルすると
Sat, 08 Apr 2006 04:30:53 GMT が取得できました。
バグじゃなくて私のやり方が間違ってたらすいません。
OS WINXP Home SP2