2012-01-02 92 views
2

我使用IDownloader接口和URLDownloadToFile方法自定义IE的下载程序。 但是URLDownloadToFile返回0x80004004错误代码。 我想知道!源代码有什么问题?IDownloadManager中的URLDownloadToFile错误(0x80004004)::下载

参考:http://social.msdn.microsoft.com/Forums/en/iewebdevelopment/thread/3fbcea06-4e69-4504-82e0-f4786368a5e2

STDMETHODIMP CDownloader::Download(IMoniker* pmk, 
     IBindCtx* pbc, 
     DWORD dwBindVerb, 
     LONG grfBINDF, 
     BINDINFO* pBindInfo, 
     LPCOLESTR pszHeaders, 
     LPCOLESTR pszRedir, 
     UINT uiCP) 
{ 
    LPOLESTR sDisplayName; 
    pmk->GetDisplayName(NULL, NULL, &sDisplayName); 
    HRESULT hr = URLDownloadToFile(NULL, sDisplayName, L"C:\\downloaded.exe", 0, NULL); 
    return S_OK; 
} 

回答

2

我解决了它。

Internet Explorer上的COM对象必须在IE模板文件夹中创建文件。由于IE保护模式。

2

这是E_ABORT错误代码,所以它看起来像你的下载操作被中止

从MSDN:

“的下载操作可以通过取消从任何回调返回E_ABORT“

但由于您的回调为NULL,它可能是由其他一些问题引起的。

+0

当我从URL Moniker系统得到一个0x80004004错误代码时,我发现这非常有用,不知道它是E_ABORT,谢谢! – FruitBreak 2014-06-10 14:08:23