IDownloadManager::Download 中的 URLDownloadToFile 错误 (0x80004004)
Posted
技术标签:
【中文标题】IDownloadManager::Download 中的 URLDownloadToFile 错误 (0x80004004)【英文标题】:URLDownloadToFile Error(0x80004004) in IDownloadManager::Download 【发布时间】:2012-01-02 10:39:46 【问题描述】:我使用 IDownloader 接口和 URLDownloadToFile 方法制作了 IE 的自定义下载器。 但是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;
【问题讨论】:
【参考方案1】:这是 E_ABORT 的错误代码,因此看起来您的下载操作已中止
来自 MSDN:
“可以通过从任何回调中返回 E_ABORT 来取消下载操作”
但是由于你的回调是NULL,它可能是由其他一些问题引起的。
【讨论】:
当我从 URL Moniker 系统收到 0x80004004 错误代码时,我发现这非常有用,不知道它是 E_ABORT,谢谢!【参考方案2】:我解决了。
Internet Explorer 上的 COM 对象必须在 IE 模板文件夹中创建文件。因为IE保护模式。
【讨论】:
以上是关于IDownloadManager::Download 中的 URLDownloadToFile 错误 (0x80004004)的主要内容,如果未能解决你的问题,请参考以下文章