VB6のコードをVB.NETに移したいのですが
WEBで見つけたVB6のサンプルコードをVB.NET用に書き直して
いるのですが、なんとか波線のエラーはなくなったものの
実行すると、思った結果が得られません。
正しい訂正方法を教えて頂きたいです。
サンプルコードは下記のサイトにありました。
http://vbnet.mvps.org/index.html?code/internet/findfirstcacheentry.htm
インターネットキャッシュに関するものです。
文字数の関係で全部は書けないのですが、現在は↓のようになっています。
その他の訂正箇所は
全部のAs Any を As Objectに変更していて、
ComboBoxのアイテムに数値が設定できないようなので、
Select Caseで判断するようにしています。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim numEntries As Long
Dim cacheType As Long
Select Case ComboBox1.SelectedIndex
Case Is = 0
cacheType = &H1S
Case Is = 1
cacheType = &H8S
Case Is = 2
cacheType = &H10S
Case Is = 3
cacheType = &H20S
Case Is = 4
cacheType = &H40S
Case Is = 5
cacheType = &H10000
Case Is = 6
cacheType = &H100000
Case Is = 7
cacheType = &H200000
Case Is = 8
cacheType = URLCACHE_FIND_DEFAULT_FILTER
End Select
Label1.Text = "Working ..."
Label1.Refresh()
ListBox1.Items.Clear()
ListBox1.Visible = False
numEntries = GetCacheURLList(cacheType)
ListBox1.Visible = True
Label1.Text = VB6.Format(numEntries, "###,###,###,##0") & "files found"
End Sub
Private Function GetCacheURLList(ByRef cacheType As Long) As Long
Dim ICEI As INTERNET_CACHE_ENTRY_INFO
Dim hFile As Long
Dim cachefile As String
Dim nCount As Long
Dim dwBuffer As Long
Dim pntrICE As Long
dwBuffer = 0
hFile = FindFirstUrlCacheEntry(vbNullString, 0, dwBuffer)
If (hFile = ERROR_CACHE_FIND_FAIL) And (Err.LastDllError = ERROR_INSUFFICIENT_BUFFER) Then
pntrICE = LocalAlloc(LMEM_FIXED, dwBuffer)
If pntrICE Then
CopyMemory(pntrICE, dwBuffer, 4)
hFile = FindFirstUrlCacheEntry(vbNullString, pntrICE, dwBuffer)
If hFile <> ERROR_CACHE_FIND_FAIL Then
Do
CopyMemory(ICEI, pntrICE, Len(ICEI))
If (ICEI.CacheEntryType And cacheType) Then
cachefile = GetStrFromPtrA(ICEI.lpszSourceUrlName)
ListBox1.Items.Add(cachefile)
nCount = nCount + 1
End If
Call LocalFree(pntrICE)
dwBuffer = 0
Call FindNextUrlCacheEntry(hFile, 0, dwBuffer)
pntrICE = LocalAlloc(LMEM_FIXED, dwBuffer)
CopyMemory(pntrICE, dwBuffer, 4)
Loop While FindNextUrlCacheEntry(hFile, pntrICE, dwBuffer)
End If
End If
End If
Call LocalFree(pntrICE)
Call FindCloseUrlCache(hFile)
GetCacheURLList = nCount
End Function
どうしてもここから分からないので、お助けいただきたいです。
よろしくお願いいたします。
お礼
解答ありがとうございましたm(._.)m。返事が遅くなって申し訳ありません。 「電卓」の作成はおかげさまで解決しました(+_+)。 どうもありがとうございました(^^ゞ。また何か問題が発生した時に回答よろしくお願いしますm(._.)m。