Modest的专栏

专注于Microsoft软件开发技术,分享Microsoft软件开发心得、经验与体会。

原创 通过URL从Temporary Internet Files得到本地文件路径的函数收藏

新一篇: vb6内嵌汇编实现图像快速对比 | 旧一篇: VB6中使用32位图标(第二版)

通过URL从Temporary Internet Files得到本地文件路径的函数
(声明:魏滔序原创,转贴请注明出处。)
 
Option Explicit

Private Declare Function GetUrlCacheEntryInfo Lib "wininet.dll" Alias "GetUrlCacheEntryInfoW" (ByVal szUrlName As Long, ByRef lpCacheEntryInfo As Any, ByRef lpdwCacheEntryInfoBufferSize As Long) As Long
Private Declare Function SysAllocString Lib "oleaut32.dll" (ByVal pOlechar As Long) As String
Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type
Private Type INTE_CACHE_ENTRY_INFO
    dwStructSize As Long
    lpszSourceUrlName As Long
    lpszLocalFileName As Long
    CacheEntryType As Long
    dwUseCount As Long
    dwHitRate As Long
    dwSizeLow As Long
    dwSizeHigh As Long
    LastModifiedTime As FILETIME
    ExpireTime As FILETIME
    LastAccessTime As FILETIME
    LastSyncTime As FILETIME
    lpHeaderInfo As Long
    dwHeaderInfoSize As Long
    lpszFileExtension As Long
    dwReserved As Long
End Type

Private Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
'(声明:魏滔序原创,转贴请注明出处。)
Public Function GetCachePath(lpszUrl As String) As String
    Dim dwEntrySize As Long
    Dim lpCacheEntry As INTE_CACHE_ENTRY_INFO
    Dim tarr() As Byte

    Call GetUrlCacheEntryInfo(StrPtr(lpszUrl), ByVal 0, dwEntrySize)
    If dwEntrySize > 0 Then
        ReDim tarr(0 To dwEntrySize)

        Call GetUrlCacheEntryInfo(StrPtr(lpszUrl), tarr(0), dwEntrySize)

        CopyMem ByVal lpCacheEntry, tarr(0), Len(lpCacheEntry)
        GetCachePath = SysAllocString(lpCacheEntry.lpszLocalFileName)
        GetCachePath = StrConv(GetCachePath, vbFromUnicode)
    End If
End Function

发表于 @ 2008年06月04日 14:21:00|评论(loading...)|编辑|

新一篇: vb6内嵌汇编实现图像快速对比 | 旧一篇: VB6中使用32位图标(第二版)

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © Modest