我想使用URLDownloadToFile下載文件,但在文件部分下載後得到INET_E_DOWNLOAD_FAILURE。我的電話是這樣的:URLDownloadToFile失敗,代碼0x800c0008(INET_E_DOWNLOAD_FAILURE)
HRESULT hRes = ::URLDownloadToFile(NULL, strTemp, strDestination, 0, pCallback);
strTemp給出了形式的網址:
的https:////
pCallback是IBindStatusCallback,IHttpSecurity和IWindowForBindingUI的實現。
我能夠讓窗口顯示一個對話框,警告我關於網站的安全證書(通過返回IHttpSecurity :: OnSecurityProblem中的S_FALSE)。
我得到了IBindStatusCallback :: OnProgress幾個電話,這個繼承ulStatus值:
BINDSTATUS_PROXYDETECTING BINDSTATUS_COOKIE_SENT BINDSTATUS_CONNECTING BINDSTATUS_SENDINGREQUEST
,去年OnProgress調用之後,數據包嗅探器顯示,我得到100 +從服務器下載的數據的KB(該文件爲18 + MB)然後,我使用hResult值INET_E_DOWNLOAD_FAILURE調用IBindStatusCallback :: OnStopBinding。
我知道寫入目標目錄的權限不成問題。
我不知道我是否正確處理IBindStatusCallback :: GetBindInfo和:: OnStartBinding。這裏是我的每個代碼:
STDMETHODIMP CDownloadCallback::GetBindInfo(DWORD* pBINDF, BINDINFO* pBindinfo)
{
*pBINDF = BINDF_PULLDATA | BINDF_NOWRITECACHE | BINDF_GETNEWESTVERSION;
return S_OK;
}
STDMETHODIMP CDownloadCallback::OnStartBinding(DWORD dwReserved, IBinding* pBinding)
{
return E_NOTIMPL;
}
有什麼想法可能會出錯?