, - .
URLDownloadToFile() syncronous , LPBINDSTATUSCALLBACK lpfnCB NULL.
"", , . URLDownloadToFile() TerminateThread() dlls, URLDownloadToFile() .
URLDownloadToFile() - , , .
URLDownloadToFile() , IE, IE , .
URLDownloadToFile() . URLDownloadToFile() , .
https://github.com/choptastic/OldCode-Public/blob/master/URLDownloadToFile/URLDownloadToFile.cpp
, , , - :
private:
int progress, filesize;
int AbortDownload;
public:
STDMETHOD(OnStartBinding)(
{
AbortDownload=0;
progress=0;
filesize=0;
return E_NOTIMPL; }
STDMETHOD(GetProgress)()
{ return progress; }
STDMETHOD(GetFileSize)()
{ return filesize; }
STDMETHOD(AbortDownl)()
{
AbortDownload=1;
return E_NOTIMPL; }
HRESULT DownloadStatus::OnProgress ( ULONG ulProgress, ULONG ulProgressMax,ULONG ulStatusCode, LPCWSTR wszStatusText )
{
progress=ulProgress;
filesize=ulProgressMax;
if (AbortDownload) return E_ABORT;
return S_OK;
}
.
, S_OK, URLDownloadToFile(), progress == filesize, URLDownloadToFile() S_OK, , - .
DeleteUrlCacheEntry() URLDownloadToFile(), , IE.