Module: wine Branch: master Commit: 458d27fa46457fd17b71c8de71b432d38e621d34 URL: http://source.winehq.org/git/wine.git/?a=commit;h=458d27fa46457fd17b71c8de71...
Author: Jacek Caban jacek@codeweavers.com Date: Thu Jan 31 18:17:18 2008 +0100
urlmon: Added BINDSTATUS_CACHEFILENAMEAVAILABLE support.
---
dlls/urlmon/binding.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/dlls/urlmon/binding.c b/dlls/urlmon/binding.c index 230a990..9551b7d 100644 --- a/dlls/urlmon/binding.c +++ b/dlls/urlmon/binding.c @@ -48,6 +48,8 @@ typedef struct { DWORD size; BOOL init; HRESULT hres; + + LPWSTR cache_file; } stgmed_buf_t;
typedef struct _stgmed_obj_t stgmed_obj_t; @@ -513,6 +515,7 @@ static ULONG WINAPI StgMedUnk_Release(IUnknown *iface)
if(!ref) { IInternetProtocol_Release(This->protocol); + heap_free(This->cache_file); heap_free(This);
URLMON_UnlockModule(); @@ -538,6 +541,7 @@ static stgmed_buf_t *create_stgmed_buf(IInternetProtocol *protocol) ret->size = 0; ret->init = FALSE; ret->hres = S_OK; + ret->cache_file = NULL;
IInternetProtocol_AddRef(protocol); ret->protocol = protocol; @@ -1099,6 +1103,8 @@ static HRESULT WINAPI InternetProtocolSink_ReportProgress(IInternetProtocolSink mime_available(This, szStatusText, FALSE); break; case BINDSTATUS_CACHEFILENAMEAVAILABLE: + heap_free(This->stgmed_buf->cache_file); + This->stgmed_buf->cache_file = heap_strdupW(szStatusText); break; case BINDSTATUS_DIRECTBIND: This->report_mime = FALSE; @@ -1134,6 +1140,10 @@ static void report_data(Binding *This, DWORD bscf, ULONG progress, ULONG progres sent_begindownloaddata = TRUE; IBindStatusCallback_OnProgress(This->callback, progress, progress_max, BINDSTATUS_BEGINDOWNLOADDATA, This->url); + + if(This->stgmed_buf->cache_file) + IBindStatusCallback_OnProgress(This->callback, progress, progress_max, + BINDSTATUS_CACHEFILENAMEAVAILABLE, This->stgmed_buf->cache_file); }
if(This->stgmed_buf->hres == S_FALSE || (bscf & BSCF_LASTDATANOTIFICATION)) {