From a9c2a0cb11f0ed11d3ce51011c11b1be399296e7 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sat, 2 Jul 2016 13:11:50 +0000 Subject: [PATCH] [URLMON] Sync with Wine Staging 1.9.11. CORE-11368 svn path=/trunk/; revision=71737 --- reactos/dll/win32/urlmon/mimefilter.c | 2 +- reactos/dll/win32/urlmon/mk.c | 23 ++++++++++------------- reactos/media/doc/README.WINE | 2 +- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/reactos/dll/win32/urlmon/mimefilter.c b/reactos/dll/win32/urlmon/mimefilter.c index d3a5332756c..3b5dcb37c6a 100644 --- a/reactos/dll/win32/urlmon/mimefilter.c +++ b/reactos/dll/win32/urlmon/mimefilter.c @@ -686,7 +686,7 @@ HRESULT WINAPI FindMimeFromData(LPBC pBC, LPCWSTR pwzUrl, LPVOID pBuffer, if(dwReserved) WARN("dwReserved=%d\n", dwReserved); - /* pBC seams to not be used */ + /* pBC seems to not be used */ if(!ppwzMimeOut || (!pwzUrl && !pBuffer)) return E_INVALIDARG; diff --git a/reactos/dll/win32/urlmon/mk.c b/reactos/dll/win32/urlmon/mk.c index de2fd637eea..aa7b60c440e 100644 --- a/reactos/dll/win32/urlmon/mk.c +++ b/reactos/dll/win32/urlmon/mk.c @@ -197,9 +197,8 @@ static HRESULT WINAPI MkProtocol_StartEx(IInternetProtocolEx *iface, IUri *pUri, { MkProtocol *This = impl_from_IInternetProtocolEx(iface); LPWSTR mime, progid, display_name, colon_ptr; - DWORD path_size = INTERNET_MAX_URL_LENGTH; DWORD bindf=0, eaten=0, scheme=0, len; - BSTR url, path_tmp, path = NULL; + BSTR url, path = NULL; IParseDisplayName *pdn; BINDINFO bindinfo; STATSTG statstg; @@ -238,22 +237,20 @@ static HRESULT WINAPI MkProtocol_StartEx(IInternetProtocolEx *iface, IUri *pUri, CoTaskMemFree(mime); } - hres = IUri_GetPath(pUri, &path_tmp); + hres = IUri_GetPath(pUri, &path); if(FAILED(hres)) return hres; - path = heap_alloc(path_size); - hres = UrlUnescapeW((LPWSTR)path_tmp, path, &path_size, 0); - SysFreeString(path_tmp); - if (FAILED(hres)) - { - heap_free(path); + len = SysStringLen(path)+1; + hres = UrlUnescapeW(path, NULL, &len, URL_UNESCAPE_INPLACE); + if (FAILED(hres)) { + SysFreeString(path); return report_result(pOIProtSink, INET_E_RESOURCE_NOT_FOUND, ERROR_INVALID_PARAMETER); } + progid = path+1; /* skip '@' symbol */ colon_ptr = strchrW(path, ':'); - if(!colon_ptr) - { - heap_free(path); + if(!colon_ptr) { + SysFreeString(path); return report_result(pOIProtSink, INET_E_RESOURCE_NOT_FOUND, ERROR_INVALID_PARAMETER); } @@ -263,7 +260,7 @@ static HRESULT WINAPI MkProtocol_StartEx(IInternetProtocolEx *iface, IUri *pUri, progid[colon_ptr-progid] = 0; /* overwrite ':' with NULL terminator */ hres = CLSIDFromProgID(progid, &clsid); - heap_free(path); + SysFreeString(path); if(FAILED(hres)) { heap_free(display_name); diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 7860ebd3c5b..f50f07131d4 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -192,7 +192,7 @@ reactos/dll/win32/traffic # Synced to WineStaging-1.9.4 reactos/dll/win32/twain_32 # Synced to WineStaging-1.9.4 reactos/dll/win32/updspapi # Synced to WineStaging-1.9.4 reactos/dll/win32/url # Synced to WineStaging-1.9.4 -reactos/dll/win32/urlmon # Synced to WineStaging-1.9.4 +reactos/dll/win32/urlmon # Synced to WineStaging-1.9.11 reactos/dll/win32/usp10 # Synced to WineStaging-1.9.11 reactos/dll/win32/uxtheme # Forked reactos/dll/win32/vbscript # Synced to WineStaging-1.9.11