张硕(CathyEagle)的专栏

      ——朝闻道,夕死可矣。

原创 FAQ:如何从URL取得其在Internet Cache中的文件名收藏

问========================================

张硕,你好,
   我目前对IE编程感兴趣,在网上看到了你的文章,觉得很不错。
   我用了很长时间的MyIE(现在叫Maxthon),它里面有一个功能不错,就是按住
Ctrl键然后拖动一个图片,就可以把这个图片保存到一个默认的目录下(在设置中
设)。我刚开始以为它只是把图片再下载一次,但是我拔网线后再Ctrl+拖鼠标,还是
能够保存图片。
   我打算自己写一写,但是IOleCommandTarget::Exec()和IWebBrowser2::ExecWB()
都会弹出另存为对话框。
   请问你,有什么高招能够直接把图片从Cache中拷出来吗?
   非常感谢!

2004-11-05


答========================================

   在WinInet库中Microsoft提供了一系列的API函数来操作Internet Cache,所以你的要求很容易满足。下面的例子给出了根据url取得其在Internet临时目录中文件名的方法。得到鼠标拖动的图片的url比较简单,此处不再赘述。

DWORD dwEntrySize=0;
LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry;

char strTemp[80];
DWORD dwTemp;

//假设lpszUrl是图片的url
if (!GetUrlCacheEntryInfo(lpszUrl,NULL,&dwEntrySize))
{
        if (GetLastError()!=ERROR_INSUFFICIENT_BUFFER)
        {
                return FALSE;
        }
        else
                lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO)new char[dwEntrySize];
}
else
        return FALSE;

if (!GetUrlCacheEntryInfo(lpszUrl,lpCacheEntry,&dwEntrySize))
{
        return FALSE;
}
else
{
        //lpCacheEntry->lpszLocalFileName即是lpszUrl在缓存中的文件名
        return TRUE;
}


引用地址:FAQ:如何从URL取得其在Internet Cache中的文件名

发表于 @ 2004年11月05日 01:00:00|评论(loading...)

新一篇: 试用Microsoft Research的wallop | 旧一篇: FAQ:如何访问WebBrowser的滚动条

用户操作
[即时聊天] [发私信] [加为好友]
CathyEagle
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
CathyEagle的公告
eagleboost@21cn.com

声明:本专栏之文章及照片,除特别注明外均为本人原创,如有转载,敬请注明出处。若需商业用途,请与本人联系。

Google

文章分类
收藏
    C++
    C++ Templates 中文
    Effective STL 中文
    周星星之Blog
    Delphi
    Delphi窑洞
    Torry.net
    大富翁论坛
    源码空间
    绝好的Delphi Tips
    Java
    !Java
    Misc
    SourceForge.org
    Think in Patterns 中文
    ZoCSoft.com
    阿甘的家
    友情链接
    Stanley_Xu 的专栏
    编程手札
    综合
    CodeGuru
    The Code Project
    存档
    软件项目交易
    Csdn Blog version 3.1a
    Copyright © CathyEagle