Jacek Caban : urlmon: Move MIME availability handling to separated function .
Alexandre Julliard
julliard at winehq.org
Tue May 19 09:23:04 CDT 2009
Module: wine
Branch: master
Commit: 8ffd262d75c69b1ed2a07001d44e7464814b367e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=8ffd262d75c69b1ed2a07001d44e7464814b367e
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon May 18 18:30:12 2009 +0200
urlmon: Move MIME availability handling to separated function.
---
dlls/urlmon/bindprot.c | 38 +++++++++++++++++---------------------
1 files changed, 17 insertions(+), 21 deletions(-)
diff --git a/dlls/urlmon/bindprot.c b/dlls/urlmon/bindprot.c
index ec58436..6da1557 100644
--- a/dlls/urlmon/bindprot.c
+++ b/dlls/urlmon/bindprot.c
@@ -220,6 +220,20 @@ static BOOL inline do_direct_notif(BindProtocol *This)
return !(This->pi & PI_APARTMENTTHREADED) || (This->apartment_thread == GetCurrentThreadId() && !This->continue_call);
}
+static void mime_available(BindProtocol *This, LPCWSTR mime, BOOL verified)
+{
+ heap_free(This->mime);
+ This->mime = NULL;
+ This->mime = heap_strdupW(mime);
+
+ if(verified || !(This->pi & PI_MIMEVERIFICATION)) {
+ This->reported_mime = TRUE;
+
+ if(This->protocol_sink)
+ IInternetProtocolSink_ReportProgress(This->protocol_sink, BINDSTATUS_MIMETYPEAVAILABLE, mime);
+ }
+}
+
#define PROTOCOL_THIS(iface) DEFINE_THIS(BindProtocol, InternetProtocol, iface)
static HRESULT WINAPI BindProtocol_QueryInterface(IInternetProtocol *iface, REFIID riid, void **ppv)
@@ -859,25 +873,11 @@ static void report_progress(BindProtocol *This, ULONG status_code, LPCWSTR statu
break;
case BINDSTATUS_MIMETYPEAVAILABLE:
- if(!This->reported_mime) {
- heap_free(This->mime);
- This->mime = heap_strdupW(status_text);
- }
-
- if(This->protocol_sink && !(This->pi & PI_MIMEVERIFICATION))
- IInternetProtocolSink_ReportProgress(This->protocol_sink, status_code, status_text);
+ mime_available(This, status_text, FALSE);
break;
case BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE:
- if(!This->reported_mime) {
- heap_free(This->mime);
- This->mime = heap_strdupW(status_text);
- }
-
- if(This->protocol_sink) {
- This->reported_mime = TRUE;
- IInternetProtocolSink_ReportProgress(This->protocol_sink, BINDSTATUS_MIMETYPEAVAILABLE, status_text);
- }
+ mime_available(This, status_text, TRUE);
break;
default:
@@ -960,12 +960,8 @@ static HRESULT report_data(BindProtocol *This, DWORD bscf, ULONG progress, ULONG
if(FAILED(hres))
return hres;
- heap_free(This->mime);
- This->mime = heap_strdupW(mime);
+ mime_available(This, mime, TRUE);
CoTaskMemFree(mime);
-
- This->reported_mime = TRUE;
- IInternetProtocolSink_ReportProgress(This->protocol_sink, BINDSTATUS_MIMETYPEAVAILABLE, This->mime);
}
return IInternetProtocolSink_ReportData(This->protocol_sink, bscf, progress, progress_max);
More information about the wine-cvs
mailing list