2012-01-02 91 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